make the padding resize automatically
This commit is contained in:
+34
-14
@@ -224,6 +224,24 @@ do
|
|||||||
return ok
|
return ok
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local function calculate_padding()
|
||||||
|
local screen_width = vim.o.columns
|
||||||
|
local padding = math.floor((screen_width / 2 - 84 / 2) + 0.5)
|
||||||
|
if padding <= 0 then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
return padding
|
||||||
|
end
|
||||||
|
|
||||||
|
local function get_padding_window()
|
||||||
|
local windows = vim.api.nvim_list_wins()
|
||||||
|
for _, win in ipairs(windows) do
|
||||||
|
if is_padding_window(win) then
|
||||||
|
return win
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
|
||||||
local buf = _G[ID]
|
local buf = _G[ID]
|
||||||
if buf == nil then
|
if buf == nil then
|
||||||
@@ -251,31 +269,33 @@ do
|
|||||||
vim.api.nvim_set_current_win(leftmost_win)
|
vim.api.nvim_set_current_win(leftmost_win)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
vim.api.nvim_create_autocmd('VimResized', {
|
||||||
|
callback = function()
|
||||||
|
local padding_window = get_padding_window()
|
||||||
|
if padding_window ~= nil then
|
||||||
|
local padding = calculate_padding()
|
||||||
|
if padding == nil then
|
||||||
|
vim.api.nvim_win_close(padding_window, true)
|
||||||
|
else
|
||||||
|
vim.api.nvim_win_set_width(padding_window, padding)
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
vim.cmd"wincmd ="
|
||||||
|
end,
|
||||||
})
|
})
|
||||||
vim.api.nvim_buf_set_var(buf, ID, true)
|
vim.api.nvim_buf_set_var(buf, ID, true)
|
||||||
_G[ID] = buf
|
_G[ID] = buf
|
||||||
end
|
end
|
||||||
|
|
||||||
local function get_padding_window()
|
|
||||||
local windows = vim.api.nvim_list_wins()
|
|
||||||
for _, win in ipairs(windows) do
|
|
||||||
if is_padding_window(win) then
|
|
||||||
return win
|
|
||||||
end
|
|
||||||
end
|
|
||||||
return nil
|
|
||||||
end
|
|
||||||
|
|
||||||
vim.keymap.set('n', ',z', function()
|
vim.keymap.set('n', ',z', function()
|
||||||
local padding_window = get_padding_window()
|
local padding_window = get_padding_window()
|
||||||
if padding_window == nil then
|
if padding_window == nil then
|
||||||
local screen_width = vim.o.columns
|
local padding = calculate_padding()
|
||||||
local padding = math.floor((screen_width / 2 - 84 / 2) + 0.5)
|
if padding == nil then
|
||||||
if padding <= 0 then
|
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
local win = vim.api.nvim_open_win(buf, false, {
|
local win = vim.api.nvim_open_win(buf, false, {
|
||||||
split = 'left',
|
split = 'left',
|
||||||
win = -1,
|
win = -1,
|
||||||
|
|||||||
Reference in New Issue
Block a user