diff --git a/lua/watchexec/config.lua b/lua/watchexec/config.lua index 44e6d78..6ae1d60 100644 --- a/lua/watchexec/config.lua +++ b/lua/watchexec/config.lua @@ -16,6 +16,10 @@ ---@field bin? string ---@field args? string[] +---@class watchexec.IndicatorPadding +---@field x? integer +---@field y? integer + ---@class watchexec.IndicatorPatterns ---@field success? string ---@field running? string @@ -27,6 +31,7 @@ ---@field failure_hl? string ---@field width? integer ---@field height? integer +---@field padding? watchexec.IndicatorPadding ---@field patterns? watchexec.IndicatorPatterns ---@class watchexec.Config @@ -64,6 +69,7 @@ local defaults = { failure_hl = "WatchexecFailure", width = 2, height = 1, + padding = { x = 1, y = 1 }, patterns = { success = "%[Command was successful%]", running = "%[Running", diff --git a/lua/watchexec/indicator.lua b/lua/watchexec/indicator.lua index cadabf9..f1aeca0 100644 --- a/lua/watchexec/indicator.lua +++ b/lua/watchexec/indicator.lua @@ -35,18 +35,21 @@ local function calculate_position() local cfg = config.get().indicator local width = cfg.width or 2 local height = cfg.height or 1 + local pad_x = cfg.padding and cfg.padding.x or 1 + local pad_y = cfg.padding and cfg.padding.y or 1 + local statusline_offset = 2 if cfg.position == "bottom-left" then - return vim.o.lines - height - 3, 0 + return vim.o.lines - height - statusline_offset, pad_x elseif cfg.position == "bottom-right" then - return vim.o.lines - height - 3, vim.o.columns - width + return vim.o.lines - height - statusline_offset, vim.o.columns - width - pad_x elseif cfg.position == "top-left" then - return 0, 0 + return pad_y, pad_x elseif cfg.position == "top-right" then - return 0, vim.o.columns - width + return pad_y, vim.o.columns - width - pad_x end - return vim.o.lines - height - 3, 0 + return vim.o.lines - height - statusline_offset, pad_x end local function close_float()