neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

commit 33b0a004eb20fd5a0013b832414596190c059828
parent 5e83d0f5ad4a3214d26e15eaecf675f55412ca18
Author: Luuk van Baal <luukvbaal@gmail.com>
Date:   Mon,  2 Jun 2025 13:05:54 +0200

fix(extui): properly setup "more" window for changed buffer

Problem:  Buffer setup after moving the message buffer to the "more"
          window after ff95d7ff is incomplete.
Solution: Adjust and invoke tab_check_wins() to do the setup instead.

Diffstat:
Mruntime/lua/vim/_extui/messages.lua | 3+--
Mruntime/lua/vim/_extui/shared.lua | 14++++++++------
2 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/runtime/lua/vim/_extui/messages.lua b/runtime/lua/vim/_extui/messages.lua @@ -170,11 +170,10 @@ end --- Move message buffer to more window. local function msg_to_more(tar) - api.nvim_win_set_buf(ext.wins[ext.tab].more, ext.bufs[tar]) api.nvim_buf_delete(ext.bufs.more, { force = true }) api.nvim_buf_set_name(ext.bufs[tar], 'vim._extui.more') ext.bufs.more, ext.bufs[tar], M[tar].count = ext.bufs[tar], -1, 0 - ext.tab_check_wins() + ext.tab_check_wins() -- Create and setup new/moved buffer. M.set_pos('more') end diff --git a/runtime/lua/vim/_extui/shared.lua b/runtime/lua/vim/_extui/shared.lua @@ -39,20 +39,16 @@ function M.tab_check_wins() end for _, type in ipairs({ 'box', 'cmd', 'more', 'prompt' }) do - if not api.nvim_buf_is_valid(M.bufs[type]) then + local setopt = not api.nvim_buf_is_valid(M.bufs[type]) + if setopt then M.bufs[type] = api.nvim_create_buf(false, true) - api.nvim_buf_set_name(M.bufs[type], 'vim._extui.' .. type) if type == 'cmd' then -- Attach highlighter to the cmdline buffer. local parser = assert(vim.treesitter.get_parser(M.bufs.cmd, 'vim', {})) M.cmd.highlighter = vim.treesitter.highlighter.new(parser) - elseif type == 'more' then - -- Close more window with `q`, same as `checkhealth` - api.nvim_buf_set_keymap(M.bufs.more, 'n', 'q', '<Cmd>wincmd c<CR>', {}) end end - local setopt = false if not api.nvim_win_is_valid(M.wins[M.tab][type]) or not api.nvim_win_get_config(M.wins[M.tab][type]).zindex -- no longer floating @@ -81,6 +77,12 @@ function M.tab_check_wins() end if setopt then + api.nvim_buf_set_name(M.bufs[type], 'vim._extui.' .. type) + if type == 'more' then + -- Close more window with `q`, same as `checkhealth` + api.nvim_buf_set_keymap(M.bufs.more, 'n', 'q', '<Cmd>wincmd c<CR>', {}) + end + -- Fire a FileType autocommand with window context to let the user reconfigure local options. api.nvim_win_call(M.wins[M.tab][type], function() api.nvim_set_option_value('wrap', true, { scope = 'local' })