Remove the hardcoded statusline_offset from calculate_position() and
let padding.y serve as the sole offset from the bottom edge. Bump
default padding.y to 3 to preserve the original visual position.
Add indicator.padding (x, y) to offset the status indicator from the
editor edges. Defaults to 1 cell on each axis, moving the indicator
away from the right edge and bottom of the buffer.
Rewrite init.lua to expose setup(), run(), stop(), and toggle() that
coordinate across config, runner, window, and indicator modules. Replace
the placeholder SayHello command in plugin/watchexec.lua with keymaps
(<Leader>wx{t,s,r}), :WatchexecRun/:WatchexecStop/:WatchexecToggle
commands, VimLeavePre cleanup, and VimResized auto-resize.
Implement runner module for spawning and managing watchexec child processes
via vim.fn.jobstart with stdout/stderr piping and ANSI stripping. Add
indicator module for displaying a small non-focusable float that shows the
last command outcome (success/failure) when the main window is hidden.
Introduce config module for managing user options, defaults, and watchexec
binary discovery. Add window module for creating and managing the output
window (float or split) with append, clear, resize, and keymap support.