commit 5b1b46ea5a4f5412a59c8295ed5b7f6454d1b532
parent b4c092a0927cff3e57374cd6953e31675b83a0d1
Author: glepnir <glephunter@gmail.com>
Date: Wed, 6 Aug 2025 21:25:55 +0800
fix(lsp): show title when global winborder is set (#35181)
Problem: make_floating_popup_options only shows when opts.border is explicitly set, ignoring global winborder setting
Solution: check both opts.border and vim.o.winborder when determining whether to show title
Diffstat:
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/runtime/lua/vim/lsp/util.lua b/runtime/lua/vim/lsp/util.lua
@@ -942,7 +942,7 @@ function M.make_floating_popup_options(width, height, opts)
col = 1
end
- local title = (opts.border and opts.title) and opts.title or nil
+ local title = ((opts.border or vim.o.winborder ~= '') and opts.title) and opts.title or nil
local title_pos --- @type 'left'|'center'|'right'?
if title then
diff --git a/test/functional/plugin/lsp/utils_spec.lua b/test/functional/plugin/lsp/utils_spec.lua
@@ -267,6 +267,14 @@ describe('vim.lsp.util', function()
eq(56, opts.height)
end)
+
+ it('title with winborder option #35179', function()
+ local opts = exec_lua(function()
+ vim.o.winborder = 'single'
+ return vim.lsp.util.make_floating_popup_options(100, 100, { title = 'Title' })
+ end)
+ eq('Title', opts.title)
+ end)
end)
end)