fix: don't resize on window changes
This commit is contained in:
+2
-12
@@ -7,7 +7,7 @@ local state = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
local config = {
|
local config = {
|
||||||
width = 0.4,
|
width = 0.2,
|
||||||
}
|
}
|
||||||
|
|
||||||
local function is_valid_window(win)
|
local function is_valid_window(win)
|
||||||
@@ -22,15 +22,10 @@ local function terminal_width()
|
|||||||
return math.max(1, math.floor(vim.o.columns * config.width))
|
return math.max(1, math.floor(vim.o.columns * config.width))
|
||||||
end
|
end
|
||||||
|
|
||||||
local function resize_side_window()
|
|
||||||
if is_valid_window(state.win) then
|
|
||||||
vim.api.nvim_win_set_width(state.win, terminal_width())
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
local function open_side_window()
|
local function open_side_window()
|
||||||
vim.cmd("botright vertical " .. terminal_width() .. "new")
|
vim.cmd("botright vertical " .. terminal_width() .. "new")
|
||||||
state.win = vim.api.nvim_get_current_win()
|
state.win = vim.api.nvim_get_current_win()
|
||||||
|
vim.api.nvim_set_option_value("winfixwidth", true, { win = state.win })
|
||||||
end
|
end
|
||||||
|
|
||||||
local function start_terminal()
|
local function start_terminal()
|
||||||
@@ -75,17 +70,12 @@ function M.setup(opts)
|
|||||||
)
|
)
|
||||||
|
|
||||||
config.width = opts.width
|
config.width = opts.width
|
||||||
resize_side_window()
|
|
||||||
end
|
end
|
||||||
|
|
||||||
vim.api.nvim_create_user_command("OpenCodeToggle", function()
|
vim.api.nvim_create_user_command("OpenCodeToggle", function()
|
||||||
M.toggle()
|
M.toggle()
|
||||||
end, { force = true })
|
end, { force = true })
|
||||||
|
|
||||||
vim.api.nvim_create_autocmd("VimResized", {
|
|
||||||
group = vim.api.nvim_create_augroup("opencode_terminal_width", { clear = true }),
|
|
||||||
callback = resize_side_window,
|
|
||||||
})
|
|
||||||
end
|
end
|
||||||
|
|
||||||
return M
|
return M
|
||||||
|
|||||||
Reference in New Issue
Block a user