mirror of
https://github.com/neovim/neovim.git
synced 2026-05-25 22:38:29 +00:00
feat(options): add 'winpinned' to pin a window #39157
Problem: - Unable to "pin" a window to prevent closing without specifically being targeted. - :fclose closes hidden windows (even before visible windows). Solution: - Add 'winpinned' window-local option. When set, window is skipped by :fclose and :only. Pin the ui2 cmdline window (which should always be visible), so that it is not closed by :only/fclose. - Skip over hidden (and pinned) windows with :fclose. Co-authored-by: glepnir <glephunter@gmail.com>
This commit is contained in:
@@ -130,6 +130,8 @@ function M.check_targets()
|
||||
hl = 'Normal:MsgArea'
|
||||
elseif type == 'msg' then
|
||||
hl = search_hide
|
||||
elseif type == 'cmd' then
|
||||
api.nvim_set_option_value('winpinned', true, { scope = 'local' })
|
||||
end
|
||||
api.nvim_set_option_value('winhighlight', hl, { scope = 'local' })
|
||||
end)
|
||||
|
||||
10
runtime/lua/vim/_meta/options.gen.lua
generated
10
runtime/lua/vim/_meta/options.gen.lua
generated
@@ -8324,6 +8324,16 @@ vim.o.wmw = vim.o.winminwidth
|
||||
vim.go.winminwidth = vim.o.winminwidth
|
||||
vim.go.wmw = vim.go.winminwidth
|
||||
|
||||
--- If enabled, the window is pinned and will not be closed by `:only`
|
||||
--- and `:fclose`. Only commands specifically targeting the window can
|
||||
--- close it.
|
||||
---
|
||||
--- @type boolean
|
||||
vim.o.winpinned = false
|
||||
vim.o.wp = vim.o.winpinned
|
||||
vim.wo.winpinned = vim.o.winpinned
|
||||
vim.wo.wp = vim.wo.winpinned
|
||||
|
||||
--- Minimal number of columns for the current window. This is not a hard
|
||||
--- minimum, Vim will use fewer columns if there is not enough room. If
|
||||
--- the current window is smaller, its size is increased, at the cost of
|
||||
|
||||
Reference in New Issue
Block a user