Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion lua/lazy/core/config.lua
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ M.defaults = {
size = { width = 0.8, height = 0.8 },
wrap = true, -- wrap the lines in the ui
-- The border to use for the UI window. Accepts same border values as |nvim_open_win()|.
border = "none",
border = nil,
-- The backdrop opacity. 0 is fully opaque, 100 is fully transparent.
backdrop = 60,
title = nil, ---@type string only works when border is not "none"
Expand Down
7 changes: 4 additions & 3 deletions lua/lazy/view/float.lua
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ function M:init(opts)
self.opts = vim.tbl_deep_extend("force", {
size = Config.options.ui.size,
style = "minimal",
border = Config.options.ui.border or "none",
border = Config.options.ui.border or vim.o.winborder or "none",
Copy link
Contributor

@seblyng seblyng Jul 10, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will not work properly with winborder now supporting custom borderchars. See here for example for how it can be supported: saghen/blink.cmp#1984

It will also probably error for users that are not using nvim 0.11. I think something like this might work:

border = Config.options.ui.border or vim.fn.exists("&winborder") == 0 and "none" or nil,

backdrop = Config.options.ui.backdrop or 60,
zindex = 50,
}, opts or {})
Expand All @@ -66,7 +66,7 @@ function M:init(opts)
self.win_opts = {
relative = "editor",
style = self.opts.style ~= "" and self.opts.style or nil,
border = self.opts.border,
border = self.opts.border or vim.o.winborder,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not needed. The line I posted in the other comment will just have the border be nil, which will default back to winborder without this.

zindex = self.opts.zindex,
noautocmd = self.opts.noautocmd,
title = self.opts.title,
Expand All @@ -92,7 +92,7 @@ function M:layout()
self.win_opts.row = math.floor((vim.o.lines - self.win_opts.height) / 2)
self.win_opts.col = math.floor((vim.o.columns - self.win_opts.width) / 2)

if self.opts.border ~= "none" then
if self.opts.border ~= "none" or vim.o.winborder then
self.win_opts.row = self.win_opts.row - 1
self.win_opts.col = self.win_opts.col - 1
end
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Something like:

  local border = self.opts.border or vim.fn.exists("&winborder") == 1 and vim.o.winborder or "none"
  if border ~= "none" or border ~= "" then

should work.

winborder defaults to "" which is the same as "none", so we should check that as well

Expand Down Expand Up @@ -149,6 +149,7 @@ function M:mount()
row = 0,
col = 0,
style = "minimal",
border = "none",
focusable = false,
zindex = self.opts.zindex - 1,
})
Expand Down