Skip to content

Commit dc40118

Browse files
committed
fix(autocmds): auto-close if file deleted
1 parent 263af1d commit dc40118

4 files changed

Lines changed: 17 additions & 8 deletions

File tree

lua/plugins/sidekick.lua

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ return {
5555
{ "<c-bslash>", a.send("{selection}"), mode = { "x" }, desc = "Sidekick: Send Visual Selection" },
5656
{ "<c-bslash>", a.show, mode = { "n", "t", "i" }, desc = "Sidekick: Focus" },
5757
{ "<c-w><c-bslash>", a.toggle, mode = { "n", "t", "i" }, desc = "Sidekick: Toggle" },
58+
{ "<c-w><bslash>", a.toggle, mode = { "n", "t", "i" }, desc = "Sidekick: Toggle" },
5859
}
5960
end,
6061
}

plugin/autocmds/auto-close-buffer-if-deleted.lua

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,27 +18,37 @@ local IGNORE_BUFTYPES = {
1818
"terminal",
1919
}
2020

21-
vim.api.nvim_create_autocmd("BufEnter", {
21+
vim.api.nvim_create_autocmd("FileChangedShell", {
2222
group = augroup,
2323
callback = function(args)
2424
local buf = args.buf
25+
if not vim.api.nvim_buf_is_valid(buf) then
26+
return
27+
end
28+
2529
local name = vim.api.nvim_buf_get_name(buf)
26-
local buftype = vim.bo.buftype
30+
local buftype = vim.bo[buf].buftype
2731
local ft = vim.bo[buf].filetype
2832

2933
if
3034
name == ""
3135
or vim.tbl_contains(IGNORE_BUFTYPES, buftype)
32-
or vim.wo.diff
3336
or ft == ""
3437
or vim.tbl_contains(IGNORE_FILETYPES, ft)
3538
then
3639
return
3740
end
3841

42+
-- Check if buffer is visible in a diff window
43+
for _, win_id in ipairs(vim.api.nvim_list_wins()) do
44+
if vim.api.nvim_win_get_buf(win_id) == buf and vim.wo[win_id].diff then
45+
return
46+
end
47+
end
48+
3949
if vim.fn.filereadable(name) == 0 then
4050
vim.schedule(function()
41-
if vim.api.nvim_buf_is_loaded(buf) then
51+
if vim.api.nvim_buf_is_valid(buf) and vim.api.nvim_buf_is_loaded(buf) then
4252
vim.api.nvim_buf_delete(buf, { force = true })
4353
end
4454
end)

plugin/keymaps/normal.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ k("q", function()
120120
local buf = vim.api.nvim_get_current_buf()
121121
local bufname = vim.api.nvim_buf_get_name(buf)
122122
if bufname == "" then
123-
return ""
123+
return "<nop>"
124124
end
125125
end
126126

plugin/options.lua

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,12 +62,10 @@ o.tabclose = "uselast" -- Close tab and go to last used tab. `:h 'tabclose'`
6262

6363
-- 8 terminal {{{
6464
o.title = false -- Show info in the window title. `:h 'title'`
65-
o.titlelen = 1 -- No limit on title length. `:h 'titlelen'`
66-
o.titlestring = "" -- Show relative path in terminal title. `:h 'titlestring'`
6765
-- }}}
6866

6967
-- 9 using the mouse {{{
70-
o.mouse = "nic" -- Don't enable mouse on Visual mode. `:h 'mouse'`
68+
o.mouse = "n" -- Only on normal mode. `:h 'mouse'`
7169
o.mousescroll = "ver:1,hor:0" -- Disable horizonal scroll. `:h 'mousescroll'`
7270
-- }}}
7371

0 commit comments

Comments
 (0)