From 0f588b826771f4843e28531cb503403a0785ae57 Mon Sep 17 00:00:00 2001 From: triethyl Date: Mon, 11 Aug 2025 22:12:38 -0400 Subject: neovim: fixed incline and improved buffer management --- pkgs/custom-neovim/config/init.lua | 1 + pkgs/custom-neovim/config/lua/mappings.lua | 10 ++++++++++ pkgs/custom-neovim/config/lua/plugins/incline.lua | 23 +++++++++++++++++++--- .../config/lua/plugins/mini/icons.lua | 2 ++ .../config/lua/plugins/mini/tabline.lua | 6 ------ pkgs/custom-neovim/design.md | 1 + 6 files changed, 34 insertions(+), 9 deletions(-) diff --git a/pkgs/custom-neovim/config/init.lua b/pkgs/custom-neovim/config/init.lua index b8d05b9..9d21de2 100644 --- a/pkgs/custom-neovim/config/init.lua +++ b/pkgs/custom-neovim/config/init.lua @@ -13,6 +13,7 @@ require("completion") require("lsp") -- UI Plugins: +require("plugins.mini.icons") require("plugins.mini.tabline") require("plugins.mini.clue") require("plugins.mini.indentscope") diff --git a/pkgs/custom-neovim/config/lua/mappings.lua b/pkgs/custom-neovim/config/lua/mappings.lua index 9b2c188..569ad25 100644 --- a/pkgs/custom-neovim/config/lua/mappings.lua +++ b/pkgs/custom-neovim/config/lua/mappings.lua @@ -33,8 +33,18 @@ mapkey("n", "b", "Manage buffers", "") mapkey("n", "bb", "Go to next buffer", ":bn") mapkey("n", "bB", "Go to previous buffer", ":bp") mapkey("n", "bd", "Delete current buffer", ":bd") +mapkey("n", "bd", "Force delete current buffer", ":bd!") mapkey("n", "bp", "Open buffer picker", ":lua Snacks.picker.buffers()") mapkey("n", "bg", "Open buffer live grep picker", ":lua Snacks.picker.grep_buffers()") +mapkey("n", "bc", "Clear invisible buffers", function () + local bufinfos = vim.fn.getbufinfo({buflisted = 1}) + vim.tbl_map(function (bufinfo) + if bufinfo.changed == 0 and (not bufinfo.windows or #bufinfo.windows == 0) then + print(('Deleting buffer %d : %s'):format(bufinfo.bufnr, bufinfo.name)) + vim.api.nvim_buf_delete(bufinfo.bufnr, {force = false, unload = false}) + end + end, bufinfos) +end) -- Windows mapkey("n", "w", "Manage windows", "") diff --git a/pkgs/custom-neovim/config/lua/plugins/incline.lua b/pkgs/custom-neovim/config/lua/plugins/incline.lua index cfdf281..b17a9c9 100644 --- a/pkgs/custom-neovim/config/lua/plugins/incline.lua +++ b/pkgs/custom-neovim/config/lua/plugins/incline.lua @@ -1,5 +1,22 @@ -require("incline").setup { - hide = { - -- only_win = true, +local icons = require 'mini.icons' +require('incline').setup { + window = { + padding = 0, + margin = { horizontal = 0 }, }, + render = function(props) + local filename = vim.fn.fnamemodify(vim.api.nvim_buf_get_name(props.buf), ':t') + if filename == '' then + filename = '[No Name]' + end + local ft_icon, ft_hl = icons.get("file", filename) + local modified = vim.bo[props.buf].modified + return { + ft_icon and { ' ', ft_icon, ' ', gui = ft_hl } or '', + ' ', + { filename, gui = 'bold' }, + ' ', + modified and '[+] ' or '', + } + end, } diff --git a/pkgs/custom-neovim/config/lua/plugins/mini/icons.lua b/pkgs/custom-neovim/config/lua/plugins/mini/icons.lua index 8faf487..fd2c5f9 100644 --- a/pkgs/custom-neovim/config/lua/plugins/mini/icons.lua +++ b/pkgs/custom-neovim/config/lua/plugins/mini/icons.lua @@ -1 +1,3 @@ require("mini.icons").setup() + +MiniIcons.mock_nvim_web_devicons() diff --git a/pkgs/custom-neovim/config/lua/plugins/mini/tabline.lua b/pkgs/custom-neovim/config/lua/plugins/mini/tabline.lua index 7eccb36..1ec6e7f 100644 --- a/pkgs/custom-neovim/config/lua/plugins/mini/tabline.lua +++ b/pkgs/custom-neovim/config/lua/plugins/mini/tabline.lua @@ -11,16 +11,10 @@ vim.api.nvim_create_autocmd({"Colorscheme", "VimEnter"}, { callback = function() -- Change colors. - link_hl("MiniTablineHidden", "MiniStatuslineFilename") - link_hl("MiniTablineVisible", "MiniStatuslineFilename") - link_hl("MiniTablineVisible", "Italic") - -- link_hl("MiniTablineCurrent", "MiniFilesCursorLine") - link_hl("MiniTablineCurrent", "Bold") -- Make modified buffers the same color. link_hl("MiniTablineModifiedHidden", "MiniTablineHidden") link_hl("MiniTablineModifiedVisible", "MiniTablineVisible") - link_hl("MiniTablineCurrent", "MiniFilesCursorLine") link_hl("MiniTablineModifiedCurrent", "MiniTablineCurrent") end, }) diff --git a/pkgs/custom-neovim/design.md b/pkgs/custom-neovim/design.md index d186a8f..85cbf7c 100644 --- a/pkgs/custom-neovim/design.md +++ b/pkgs/custom-neovim/design.md @@ -16,6 +16,7 @@ - add quick window switch plugin - switch to maple mono font - add force buffer delete key +- profile and optimize ## Todo if possible - make splits automatically equalize when window resized -- cgit v1.2.3