irongit

feat: add BufClean command

huncholanehuncholaneauthored
parent 2ff43f8commit e709d339b3d099357dee6f12ee193d44e3c601e8Browse files

3 files changed, +30 -3

+1-1nvim/lazy-lock.json
@@ -6,7 +6,7 @@
66 "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" },
77 "leetcode.nvim": { "branch": "master", "commit": "fdd3f91800b3983e27bc9fcfb99cfa7293d7f11a" },
88 "mason.nvim": { "branch": "main", "commit": "7dc4facca9702f95353d5a1f87daf23d78e31c2a" },
9- "mini.ai": { "branch": "main", "commit": "dcd346a3eda9121e917950680e5eb59f59f78aae" },
9+ "mini.ai": { "branch": "main", "commit": "11c57180bc9084089206e211ac7aa598bedc9673" },
1010 "none-ls-extras.nvim": { "branch": "main", "commit": "fcbae66f72f8406815f38dfa1f25109edfe9e18e" },
1111 "none-ls.nvim": { "branch": "main", "commit": "6617d47fbf275d197e3335022a3d33ff310a4b93" },
1212 "nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" },
+27-0nvim/lua/commands.lua
@@ -11,6 +11,33 @@ vim.api.nvim_create_autocmd("BufEnter", {
1111 end
1212 })
1313
14+vim.api.nvim_create_user_command("TabRename", function(opts)
15+ vim.t.tabname = opts.args
16+ vim.cmd.redrawtabline()
17+end, { nargs = 1, complete = "file", desc = "Rename current tab" })
18+
19+vim.api.nvim_create_user_command("BufClean", function()
20+ -- Collect all visible buffers from every tab/window
21+ local visible = {}
22+ for _, win in ipairs(vim.api.nvim_list_wins()) do
23+ local buf = vim.api.nvim_win_get_buf(win)
24+ visible[buf] = true
25+ end
26+
27+ local deleted = 0
28+ for _, buf in ipairs(vim.api.nvim_list_bufs()) do
29+ if vim.api.nvim_buf_is_loaded(buf)
30+ and not visible[buf]
31+ and vim.api.nvim_buf_get_option(buf, "buflisted")
32+ then
33+ vim.api.nvim_buf_delete(buf, { force = true })
34+ deleted = deleted + 1
35+ end
36+ end
37+
38+ vim.notify("🧹 Deleted " .. deleted .. " hidden buffers (tabs kept intact)")
39+end, { desc = "Delete hidden buffers but keep tab buffers intact" })
40+
1441 local last_buf = nil
1542 vim.api.nvim_create_autocmd("BufLeave", {
1643 callback = function(args)
+2-2nvim/lua/options.lua
@@ -7,7 +7,6 @@ end
77 vim.lsp.enable(lsplist)
88
99 vim.cmd([[
10-set showtabline=2
1110 set formatoptions-=cro
1211 set errorformat^=%m@%f
1312 set fdo=
@@ -25,6 +24,7 @@ set expandtab
2524 set ignorecase
2625 set smartcase
2726 set foldlevel=99
27+set showtabline=2
28+set tabline=%!NumberedTabPages()
2829 set statusline=[%{getcwd()}]\ %f:%{nvim_treesitter#statusline(1000)}
29-"set tabline=%!NumberedTabPages()
3030 ]])