summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLostNeophyte <[email protected]>2022-11-05 10:42:26 +0100
committerGitHub <[email protected]>2022-11-05 10:42:26 +0100
commit9aa9bce3bcd6619b79e2c2814114c0b3fe8adc1e (patch)
tree9fe981332d3855528fb9c264abf1eff478ae7b47
parent08d3c056ffe989b97b11afee9ad1db108d3ccfb5 (diff)
fix(bufferline): use buf kill on close (#3422)
-rw-r--r--lua/lvim/core/bufferline.lua8
1 files changed, 4 insertions, 4 deletions
diff --git a/lua/lvim/core/bufferline.lua b/lua/lvim/core/bufferline.lua
index b8143813..4d3f8adf 100644
--- a/lua/lvim/core/bufferline.lua
+++ b/lua/lvim/core/bufferline.lua
@@ -58,7 +58,9 @@ M.config = function()
options = {
mode = "buffers", -- set to "tabs" to only show tabpages instead
numbers = "none", -- can be "none" | "ordinal" | "buffer_id" | "both" | function
- close_command = "bdelete! %d", -- can be a string | function, see "Mouse actions"
+ close_command = function(bufnr) -- can be a string | function, see "Mouse actions"
+ M.buf_kill("bd", bufnr, false)
+ end,
right_mouse_command = "vert sbuffer %d", -- can be a string | function, see "Mouse actions"
left_mouse_command = "buffer %d", -- can be a string | function, see "Mouse actions"
middle_mouse_command = nil, -- can be a string | function, see "Mouse actions"
@@ -203,8 +205,6 @@ function M.buf_kill(kill_command, bufnr, force)
return api.nvim_win_get_buf(win) == bufnr
end, api.nvim_list_wins())
- if #windows == 0 then return end
-
if force then
kill_command = kill_command .. "!"
end
@@ -217,7 +217,7 @@ function M.buf_kill(kill_command, bufnr, force)
-- If there is only one buffer (which has to be the current one), vim will
-- create a new buffer on :bd.
-- For more than one buffer, pick the previous buffer (wrapping around if necessary)
- if #buffers > 1 then
+ if #buffers > 1 and #windows > 0 then
for i, v in ipairs(buffers) do
if v == bufnr then
local prev_buf_idx = i == 1 and (#buffers - 1) or (i - 1)