mirror of
https://github.com/LazyVim/LazyVim.git
synced 2025-08-18 00:09:27 +02:00
fix(toggle): slightly better maximize
This commit is contained in:
parent
1c583650e6
commit
452b70ad15
1 changed files with 14 additions and 9 deletions
|
@ -73,7 +73,7 @@ function M.inlay_hints(buf, value)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
---@type {width:number, height:number}?
|
---@type {k:string, v:any}[]
|
||||||
M._maximized = nil
|
M._maximized = nil
|
||||||
---@param state boolean?
|
---@param state boolean?
|
||||||
function M.maximize(state)
|
function M.maximize(state)
|
||||||
|
@ -81,17 +81,22 @@ function M.maximize(state)
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
if M._maximized then
|
if M._maximized then
|
||||||
vim.o.winwidth = M._maximized.width
|
for _, opt in ipairs(M._maximized) do
|
||||||
vim.o.winheight = M._maximized.height
|
vim.o[opt.k] = opt.v
|
||||||
|
end
|
||||||
M._maximized = nil
|
M._maximized = nil
|
||||||
vim.cmd("wincmd =")
|
vim.cmd("wincmd =")
|
||||||
else
|
else
|
||||||
M._maximized = {
|
M._maximized = {}
|
||||||
width = vim.o.winwidth,
|
local function set(k, v)
|
||||||
height = vim.o.winheight,
|
table.insert(M._maximized, 1, { k = k, v = vim.o[k] })
|
||||||
}
|
vim.o[k] = v
|
||||||
vim.o.winwidth = 999
|
end
|
||||||
vim.o.winheight = 999
|
set("winwidth", 999)
|
||||||
|
set("winheight", 999)
|
||||||
|
set("winminwidth", 10)
|
||||||
|
set("winminheight", 4)
|
||||||
|
vim.cmd("wincmd =")
|
||||||
end
|
end
|
||||||
-- `QuitPre` seems to be executed even if we quit a normal window, so we don't want that
|
-- `QuitPre` seems to be executed even if we quit a normal window, so we don't want that
|
||||||
-- `VimLeavePre` might be another consideration? Not sure about differences between the 2
|
-- `VimLeavePre` might be another consideration? Not sure about differences between the 2
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue