From 04d818b753f86aec987e7e1c00ab0127de2c08f2 Mon Sep 17 00:00:00 2001 From: triethyl Date: Mon, 11 Aug 2025 20:22:37 -0400 Subject: neovim: replace dropbar with incline & more --- pkgs/custom-neovim/config/init.lua | 2 +- pkgs/custom-neovim/config/lua/completion.lua | 8 ++++++++ pkgs/custom-neovim/config/lua/mappings.lua | 2 +- pkgs/custom-neovim/config/lua/options.lua | 2 +- pkgs/custom-neovim/config/lua/plugins/incline.lua | 5 +++++ pkgs/custom-neovim/config/lua/plugins/mini/indentscope.lua | 5 +++++ pkgs/custom-neovim/config/lua/plugins/render-markdown.lua | 1 + pkgs/custom-neovim/default.nix | 2 +- pkgs/custom-neovim/design.md | 7 +++---- 9 files changed, 26 insertions(+), 8 deletions(-) create mode 100644 pkgs/custom-neovim/config/lua/plugins/incline.lua create mode 100644 pkgs/custom-neovim/config/lua/plugins/render-markdown.lua (limited to 'pkgs/custom-neovim') diff --git a/pkgs/custom-neovim/config/init.lua b/pkgs/custom-neovim/config/init.lua index c3df542..b8d05b9 100644 --- a/pkgs/custom-neovim/config/init.lua +++ b/pkgs/custom-neovim/config/init.lua @@ -19,7 +19,7 @@ require("plugins.mini.indentscope") require("plugins.fidget") require("plugins.treesitter") require("plugins.mini.files") -require("plugins.dropbar") +require("plugins.incline") require("plugins.auto-session") require("plugins.gitsigns") require("plugins.namu") diff --git a/pkgs/custom-neovim/config/lua/completion.lua b/pkgs/custom-neovim/config/lua/completion.lua index ce87340..1ba2a91 100644 --- a/pkgs/custom-neovim/config/lua/completion.lua +++ b/pkgs/custom-neovim/config/lua/completion.lua @@ -8,6 +8,14 @@ local luasnip = require('luasnip') local select_opts = {behavior = cmp.SelectBehavior.Select} cmp.setup({ + enabled = function() -- Disable in certain circumstances + local disabled = false + disabled = disabled or (vim.api.nvim_get_option_value('buftype', { buf = 0 }) == 'prompt') -- While in prompts. + disabled = disabled or (vim.fn.reg_recording() ~= '') + disabled = disabled or (vim.fn.reg_executing() ~= '') + disabled = disabled or require('cmp.config.context').in_treesitter_capture('comment') -- While in comments. + return not disabled + end, snippet = { expand = function(args) luasnip.lsp_expand(args.body) diff --git a/pkgs/custom-neovim/config/lua/mappings.lua b/pkgs/custom-neovim/config/lua/mappings.lua index 275ff27..9b2c188 100644 --- a/pkgs/custom-neovim/config/lua/mappings.lua +++ b/pkgs/custom-neovim/config/lua/mappings.lua @@ -32,7 +32,7 @@ mapkey("n", "tT", "Go to previous tab", ":tabprev") mapkey("n", "b", "Manage buffers", "") mapkey("n", "bb", "Go to next buffer", ":bn") mapkey("n", "bB", "Go to previous buffer", ":bp") -mapkey("n", "bc", "Delete current buffer", ":bd") +mapkey("n", "bd", "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()") diff --git a/pkgs/custom-neovim/config/lua/options.lua b/pkgs/custom-neovim/config/lua/options.lua index 3899c17..844341e 100644 --- a/pkgs/custom-neovim/config/lua/options.lua +++ b/pkgs/custom-neovim/config/lua/options.lua @@ -13,7 +13,7 @@ vim.o.scrolloff = 4 -- minimal number of screen lines to keep above and below th vim.o.signcolumn = "yes" -- always show the sign column, otherwise it would shift the text each time vim.o.clipboard = "unnamedplus" -- use system clipboard -- vim.o.equalalways = true -- equalize splits -vim.o.sessionoptions = "blank,buffers,curdir,folds,help,tabpages,winsize,winpos,terminal,globals" +vim.o.sessionoptions = "blank,curdir,folds,help,tabpages,winsize,winpos,terminal,globals,buffers" -- define what is saved with the session. -- Split Behavior vim.o.splitright = true diff --git a/pkgs/custom-neovim/config/lua/plugins/incline.lua b/pkgs/custom-neovim/config/lua/plugins/incline.lua new file mode 100644 index 0000000..d9c114d --- /dev/null +++ b/pkgs/custom-neovim/config/lua/plugins/incline.lua @@ -0,0 +1,5 @@ +require("incline").setup { + hide = { + only_win = true, + }, +} diff --git a/pkgs/custom-neovim/config/lua/plugins/mini/indentscope.lua b/pkgs/custom-neovim/config/lua/plugins/mini/indentscope.lua index 86dd9f1..2543c40 100644 --- a/pkgs/custom-neovim/config/lua/plugins/mini/indentscope.lua +++ b/pkgs/custom-neovim/config/lua/plugins/mini/indentscope.lua @@ -1 +1,6 @@ require("mini.indentscope").setup() + +-- Don't work in terminal or help windows. +local f = function(args) vim.b[args.buf].miniindentscope_disable = true end +vim.api.nvim_create_autocmd('Filetype', { pattern = 'help', callback = f }) +vim.api.nvim_create_autocmd('TermOpen', {callback = f}) diff --git a/pkgs/custom-neovim/config/lua/plugins/render-markdown.lua b/pkgs/custom-neovim/config/lua/plugins/render-markdown.lua new file mode 100644 index 0000000..45bdcf2 --- /dev/null +++ b/pkgs/custom-neovim/config/lua/plugins/render-markdown.lua @@ -0,0 +1 @@ +require("render-markdown").setup() diff --git a/pkgs/custom-neovim/default.nix b/pkgs/custom-neovim/default.nix index a588086..603c66d 100644 --- a/pkgs/custom-neovim/default.nix +++ b/pkgs/custom-neovim/default.nix @@ -16,7 +16,6 @@ in nvim-lspconfig # Adds lsp presets. actions-preview-nvim # Adds a selector for LSP actions. nvim-treesitter.withAllGrammars # All treesitter grammars. - tabby-nvim # Tab bar. snacks-nvim # Many small modules. dropbar-nvim # Winbar with breadcrumbs. auto-session # Automatic session manager. @@ -28,6 +27,7 @@ in fidget-nvim # Simple notification UI focus-nvim # Automatic split resizer and manager. render-markdown-nvim # Render markdown fancily. + incline-nvim # Puts the filename in the winbar. # Completion nvim-cmp # Completer. diff --git a/pkgs/custom-neovim/design.md b/pkgs/custom-neovim/design.md index 9e9f86f..d186a8f 100644 --- a/pkgs/custom-neovim/design.md +++ b/pkgs/custom-neovim/design.md @@ -10,16 +10,15 @@ ## Todo -- find dropbar load autocommand and modify to work on winenter to prevent no dropbar when splitting +- Switch from dropbar to incline - make lazyvim launch with default shell bash -- make completion not work in pickers (namu, snacks) -- make mini scope not work in terminal or help windows - make mini tabline compatible with more colorschemes -- make custom carbon colorscheme - add quick window switch plugin - switch to maple mono font +- add force buffer delete key ## Todo if possible - make splits automatically equalize when window resized - prevent dropbar filename from truncating - make mini.git run commands from cwd instead of git root +- make custom carbon colorscheme -- cgit v1.2.3