From 5443baa929f42cc3d2c944e8e5a14dfca3e857da Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Sat, 7 Feb 2026 10:52:54 -0600 Subject: [PATCH 01/82] update name of lua language server dependency --- init.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/init.lua b/init.lua index d5ae6dc9b2a..3d97663c70f 100644 --- a/init.lua +++ b/init.lua @@ -614,7 +614,7 @@ require('lazy').setup({ -- You can press `g?` for help in this menu. local ensure_installed = vim.tbl_keys(servers or {}) vim.list_extend(ensure_installed, { - 'lua_ls', -- Lua Language server + 'lua-language-server', -- Lua Language server 'stylua', -- Used to format Lua code -- You can add other tools here that you want Mason to install }) From ba05b1f098c98501334c2f58d1a726b64755fd6d Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Sun, 8 Feb 2026 22:01:26 -0600 Subject: [PATCH 02/82] turn on nerd fonts --- init.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/init.lua b/init.lua index 3d97663c70f..efb7025038b 100644 --- a/init.lua +++ b/init.lua @@ -91,7 +91,7 @@ vim.g.mapleader = ' ' vim.g.maplocalleader = ' ' -- Set to true if you have a Nerd Font installed and selected in the terminal -vim.g.have_nerd_font = false +vim.g.have_nerd_font = true -- [[ Setting options ]] -- See `:help vim.o` From 4e33d2fdc0e9179227f2354a7ec4ef70ad463639 Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Sun, 8 Feb 2026 22:05:04 -0600 Subject: [PATCH 03/82] enable relative numbers --- init.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/init.lua b/init.lua index efb7025038b..8ee3de0c3b6 100644 --- a/init.lua +++ b/init.lua @@ -102,7 +102,7 @@ vim.g.have_nerd_font = true vim.o.number = true -- You can also add relative line numbers, to help with jumping. -- Experiment for yourself to see if you like it! --- vim.o.relativenumber = true +vim.o.relativenumber = true -- Enable mouse mode, can be useful for resizing splits for example! vim.o.mouse = 'a' From 1d5ec0d2cc1a05f0d07c8e616866c5f865d3b5bb Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Sun, 8 Feb 2026 22:12:00 -0600 Subject: [PATCH 04/82] disable arrow keys --- init.lua | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/init.lua b/init.lua index 8ee3de0c3b6..9f2aede6e85 100644 --- a/init.lua +++ b/init.lua @@ -198,10 +198,10 @@ vim.keymap.set('n', 'q', vim.diagnostic.setloclist, { desc = 'Open diagn vim.keymap.set('t', '', '', { desc = 'Exit terminal mode' }) -- TIP: Disable arrow keys in normal mode --- vim.keymap.set('n', '', 'echo "Use h to move!!"') --- vim.keymap.set('n', '', 'echo "Use l to move!!"') --- vim.keymap.set('n', '', 'echo "Use k to move!!"') --- vim.keymap.set('n', '', 'echo "Use j to move!!"') +vim.keymap.set('n', '', 'echo "Use h to move!!"') +vim.keymap.set('n', '', 'echo "Use l to move!!"') +vim.keymap.set('n', '', 'echo "Use k to move!!"') +vim.keymap.set('n', '', 'echo "Use j to move!!"') -- Keybinds to make split navigation easier. -- Use CTRL+ to switch between windows From 8562753eb950ca02d2e61d6ffbadae5ce4dd6817 Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Sun, 8 Feb 2026 22:42:32 -0600 Subject: [PATCH 05/82] enable necessary language servers requested by configuration --- init.lua | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/init.lua b/init.lua index 9f2aede6e85..c878bc0e3da 100644 --- a/init.lua +++ b/init.lua @@ -394,6 +394,7 @@ require('lazy').setup({ -- Enable Telescope extensions if they are installed pcall(require('telescope').load_extension, 'fzf') + --TODO: need to install the telescope ui-select plugin? pcall(require('telescope').load_extension, 'ui-select') -- See `:help telescope.builtin` @@ -593,16 +594,17 @@ require('lazy').setup({ -- Feel free to add/remove any LSPs that you want here. They will automatically be installed. -- See `:help lsp-config` for information about keys and how to configure local servers = { - -- clangd = {}, + clangd = {}, -- gopls = {}, - -- pyright = {}, + pyright = {}, -- rust_analyzer = {}, -- + -- TODO: look into typescript-tools.nvim -- Some languages (like typescript) have entire language plugins that can be useful: -- https://github.com/pmizio/typescript-tools.nvim -- -- But for many setups, the LSP (`ts_ls`) will work just fine - -- ts_ls = {}, + ts_ls = {}, } -- Ensure the servers and tools above are installed From c2a02f734b8d86272f0533a994145f81815e95cc Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Sun, 8 Feb 2026 22:45:50 -0600 Subject: [PATCH 06/82] remove not found typescript language server --- init.lua | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/init.lua b/init.lua index c878bc0e3da..66726833de3 100644 --- a/init.lua +++ b/init.lua @@ -604,7 +604,8 @@ require('lazy').setup({ -- https://github.com/pmizio/typescript-tools.nvim -- -- But for many setups, the LSP (`ts_ls`) will work just fine - ts_ls = {}, + -- FIX: Can not find ts_ls + -- ts_ls = {}, } -- Ensure the servers and tools above are installed From 01669b4939e7e76986a228bd676571e366ad6b8a Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Sun, 8 Feb 2026 22:47:43 -0600 Subject: [PATCH 07/82] use the ensure installed list to enable the typescript language server --- init.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/init.lua b/init.lua index 66726833de3..77a7b4d9a11 100644 --- a/init.lua +++ b/init.lua @@ -604,7 +604,6 @@ require('lazy').setup({ -- https://github.com/pmizio/typescript-tools.nvim -- -- But for many setups, the LSP (`ts_ls`) will work just fine - -- FIX: Can not find ts_ls -- ts_ls = {}, } @@ -620,6 +619,7 @@ require('lazy').setup({ 'lua-language-server', -- Lua Language server 'stylua', -- Used to format Lua code -- You can add other tools here that you want Mason to install + 'typescript-language-server', --Typescript Language Server }) require('mason-tool-installer').setup { ensure_installed = ensure_installed } From f4cf583044714a3b9e3129565d830b1e05af19ca Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Sun, 8 Feb 2026 22:50:46 -0600 Subject: [PATCH 08/82] enable prettier for javascript files --- init.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/init.lua b/init.lua index 77a7b4d9a11..9e63435a7db 100644 --- a/init.lua +++ b/init.lua @@ -693,7 +693,7 @@ require('lazy').setup({ -- python = { "isort", "black" }, -- -- You can use 'stop_after_first' to run the first available formatter from the list - -- javascript = { "prettierd", "prettier", stop_after_first = true }, + javascript = { 'prettierd', 'prettier', stop_after_first = true }, }, }, }, From 6040137c85d5bca2b9c29f71d1351915c4137112 Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Sun, 8 Feb 2026 22:58:58 -0600 Subject: [PATCH 09/82] enable rust fuzzy finder for autocompletion --- init.lua | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/init.lua b/init.lua index 9e63435a7db..5792f8fed25 100644 --- a/init.lua +++ b/init.lua @@ -717,6 +717,7 @@ require('lazy').setup({ dependencies = { -- `friendly-snippets` contains a variety of premade snippets. -- See the README about individual language/framework/plugin snippets: + -- TODO: look into friendly-snippets -- https://github.com/rafamadriz/friendly-snippets -- { -- 'rafamadriz/friendly-snippets', @@ -784,7 +785,7 @@ require('lazy').setup({ -- the rust implementation via `'prefer_rust_with_warning'` -- -- See :h blink-cmp-config-fuzzy for more information - fuzzy = { implementation = 'lua' }, + fuzzy = { implementation = 'prefer_rust_with_warning' }, -- Shows a signature help window while you type arguments for a function signature = { enabled = true }, From 40d036454a069af79666f54880151984fd3dda14 Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Sun, 8 Feb 2026 23:05:59 -0600 Subject: [PATCH 10/82] install and set default theme to catppuccin --- init.lua | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/init.lua b/init.lua index 5792f8fed25..cdee7f6ae00 100644 --- a/init.lua +++ b/init.lua @@ -792,6 +792,8 @@ require('lazy').setup({ }, }, + { 'catppuccin/nvim', name = 'catppuccin', priority = 1000 }, + { -- You can easily change to a different colorscheme. -- Change the name of the colorscheme plugin below, and then -- change the command in the config to whatever the name of that colorscheme is. @@ -810,7 +812,7 @@ require('lazy').setup({ -- Load the colorscheme here. -- Like many other themes, this one has different styles, and you could load -- any other, such as 'tokyonight-storm', 'tokyonight-moon', or 'tokyonight-day'. - vim.cmd.colorscheme 'tokyonight-night' + vim.cmd.colorscheme 'catppuccin-mocha' end, }, From 8a19e9ccf9cca3f68242b1e4dd85e0fc1be7c6c3 Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Sun, 8 Feb 2026 23:09:21 -0600 Subject: [PATCH 11/82] install and enable rose pine as default --- init.lua | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/init.lua b/init.lua index cdee7f6ae00..b1df07be4ca 100644 --- a/init.lua +++ b/init.lua @@ -793,6 +793,7 @@ require('lazy').setup({ }, { 'catppuccin/nvim', name = 'catppuccin', priority = 1000 }, + { 'rose-pine/neovim', name = 'rose-pine', priority = 1000 }, { -- You can easily change to a different colorscheme. -- Change the name of the colorscheme plugin below, and then @@ -812,7 +813,7 @@ require('lazy').setup({ -- Load the colorscheme here. -- Like many other themes, this one has different styles, and you could load -- any other, such as 'tokyonight-storm', 'tokyonight-moon', or 'tokyonight-day'. - vim.cmd.colorscheme 'catppuccin-mocha' + vim.cmd.colorscheme 'rose-pine' end, }, From 0f8b81f17d96b48432b5ce2594ef8cecda14c98d Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Sun, 8 Feb 2026 23:13:02 -0600 Subject: [PATCH 12/82] enable mini starter --- init.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/init.lua b/init.lua index b1df07be4ca..7fc73f8755c 100644 --- a/init.lua +++ b/init.lua @@ -853,6 +853,7 @@ require('lazy').setup({ -- ... and there is more! -- Check out: https://github.com/nvim-mini/mini.nvim + require('mini.starter').setup() end, }, From eec5de76df5ea1d77a2885832cd1c9d2c5220dc2 Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Sun, 8 Feb 2026 23:14:41 -0600 Subject: [PATCH 13/82] enable the custom plugin directory --- init.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/init.lua b/init.lua index 7fc73f8755c..453afbb6fed 100644 --- a/init.lua +++ b/init.lua @@ -889,7 +889,7 @@ require('lazy').setup({ -- This is the easiest way to modularize your config. -- -- Uncomment the following line and add your plugins to `lua/custom/plugins/*.lua` to get going. - -- { import = 'custom.plugins' }, + { import = 'custom.plugins' }, -- -- For additional information with loading, sourcing and examples see `:help lazy.nvim-🔌-plugin-spec` -- Or use telescope! From 4ca32d30a05b9aeb37ddbce6e79f0c0f1fb5adfe Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Mon, 9 Feb 2026 20:02:36 -0600 Subject: [PATCH 14/82] install snacks with dashboard enabled --- init.lua | 2 +- lua/custom/plugins/snacks.lua | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 lua/custom/plugins/snacks.lua diff --git a/init.lua b/init.lua index 453afbb6fed..830722c19b1 100644 --- a/init.lua +++ b/init.lua @@ -853,7 +853,7 @@ require('lazy').setup({ -- ... and there is more! -- Check out: https://github.com/nvim-mini/mini.nvim - require('mini.starter').setup() + -- require('mini.starter').setup() end, }, diff --git a/lua/custom/plugins/snacks.lua b/lua/custom/plugins/snacks.lua new file mode 100644 index 00000000000..bc3e67147a5 --- /dev/null +++ b/lua/custom/plugins/snacks.lua @@ -0,0 +1,8 @@ +return { + 'folke/snacks.nvim', + priority = 1000, + lazy = false, + opts = { + dashboard = { enabled = true }, + }, +} From 44ec0be42f37e472240cd5d9409653332179f379 Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Mon, 9 Feb 2026 20:07:27 -0600 Subject: [PATCH 15/82] load snacks types --- lua/custom/plugins/snacks.lua | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lua/custom/plugins/snacks.lua b/lua/custom/plugins/snacks.lua index bc3e67147a5..8a202fd9eba 100644 --- a/lua/custom/plugins/snacks.lua +++ b/lua/custom/plugins/snacks.lua @@ -2,7 +2,9 @@ return { 'folke/snacks.nvim', priority = 1000, lazy = false, + ---@type snacks.Config opts = { + --TODO: Use this for a bit and compare to mini dashboard dashboard = { enabled = true }, }, } From b14cb685d777b4007093f326be48580a18ee0191 Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Mon, 9 Feb 2026 20:41:11 -0600 Subject: [PATCH 16/82] install and configure keybind for lazygit --- lua/custom/plugins/snacks.lua | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lua/custom/plugins/snacks.lua b/lua/custom/plugins/snacks.lua index 8a202fd9eba..67412aea845 100644 --- a/lua/custom/plugins/snacks.lua +++ b/lua/custom/plugins/snacks.lua @@ -5,6 +5,12 @@ return { ---@type snacks.Config opts = { --TODO: Use this for a bit and compare to mini dashboard + --TODO: design a style and featuers for my dashboard dashboard = { enabled = true }, + lazygit = { enabled = true }, + }, + keys = { + { '=', function() Snacks.dashboard.open() end, desc = 'Dashboard' }, + { 'gl', function() Snacks.lazygit.open() end, desc = 'Open Lazy Git' }, }, } From 1387bb1bc7ac5346a683915aaf0279d92b5c7c13 Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Mon, 9 Feb 2026 21:02:31 -0600 Subject: [PATCH 17/82] enable and configure scratch and git browse --- lua/custom/plugins/snacks.lua | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lua/custom/plugins/snacks.lua b/lua/custom/plugins/snacks.lua index 67412aea845..cff2154c372 100644 --- a/lua/custom/plugins/snacks.lua +++ b/lua/custom/plugins/snacks.lua @@ -7,10 +7,16 @@ return { --TODO: Use this for a bit and compare to mini dashboard --TODO: design a style and featuers for my dashboard dashboard = { enabled = true }, + gitbrowse = { enabled = true }, lazygit = { enabled = true }, + scratch = { enabled = true }, }, + --TODO: set whichkey categories for keybinds keys = { { '=', function() Snacks.dashboard.open() end, desc = 'Dashboard' }, + { 'gb', function() Snacks.gitbrowse.open() end, desc = 'Open Git Repository in Browser' }, { 'gl', function() Snacks.lazygit.open() end, desc = 'Open Lazy Git' }, + { 'no', function() Snacks.scratch() end, desc = 'Open Notepad' }, + { 'ns', function() Snacks.scratch.select() end, desc = 'Select Note' }, }, } From feebbd7f31e7e1ef2e7128ad1946899d2309ee30 Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Mon, 9 Feb 2026 21:07:45 -0600 Subject: [PATCH 18/82] enable and configure terminal --- lua/custom/plugins/snacks.lua | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lua/custom/plugins/snacks.lua b/lua/custom/plugins/snacks.lua index cff2154c372..15c992122fc 100644 --- a/lua/custom/plugins/snacks.lua +++ b/lua/custom/plugins/snacks.lua @@ -9,7 +9,9 @@ return { dashboard = { enabled = true }, gitbrowse = { enabled = true }, lazygit = { enabled = true }, + --TODO: determine a method for deleting scratches easily scratch = { enabled = true }, + terminal = { enabled = true }, }, --TODO: set whichkey categories for keybinds keys = { @@ -18,5 +20,6 @@ return { { 'gl', function() Snacks.lazygit.open() end, desc = 'Open Lazy Git' }, { 'no', function() Snacks.scratch() end, desc = 'Open Notepad' }, { 'ns', function() Snacks.scratch.select() end, desc = 'Select Note' }, + { '', function() Snacks.terminal() end, desc = 'Open Terminal' }, }, } From 8bb87f44a06f7bc48c645ed511245c9fdd6cf4e2 Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Mon, 9 Feb 2026 21:18:07 -0600 Subject: [PATCH 19/82] add which-key categories for new keybinds --- init.lua | 3 +++ lua/custom/plugins/snacks.lua | 1 - 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/init.lua b/init.lua index 830722c19b1..b859a47706a 100644 --- a/init.lua +++ b/init.lua @@ -313,6 +313,9 @@ require('lazy').setup({ { 's', group = '[S]earch', mode = { 'n', 'v' } }, { 't', group = '[T]oggle' }, { 'h', group = 'Git [H]unk', mode = { 'n', 'v' } }, + + { 'g', group = '[G]it' }, + { 'n', group = '[N]otepad' }, }, }, }, diff --git a/lua/custom/plugins/snacks.lua b/lua/custom/plugins/snacks.lua index 15c992122fc..3ba6f6dfb75 100644 --- a/lua/custom/plugins/snacks.lua +++ b/lua/custom/plugins/snacks.lua @@ -13,7 +13,6 @@ return { scratch = { enabled = true }, terminal = { enabled = true }, }, - --TODO: set whichkey categories for keybinds keys = { { '=', function() Snacks.dashboard.open() end, desc = 'Dashboard' }, { 'gb', function() Snacks.gitbrowse.open() end, desc = 'Open Git Repository in Browser' }, From 0181f6c677edb862a7a1e6d3285d4f72601f0baf Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Mon, 9 Feb 2026 21:27:08 -0600 Subject: [PATCH 20/82] install and setup oil --- lua/custom/plugins/oil.lua | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 lua/custom/plugins/oil.lua diff --git a/lua/custom/plugins/oil.lua b/lua/custom/plugins/oil.lua new file mode 100644 index 00000000000..66018eb682f --- /dev/null +++ b/lua/custom/plugins/oil.lua @@ -0,0 +1,7 @@ +return { + 'stevearc/oil.nvim', + config = function() + require('oil').setup() + vim.keymap.set('n', '-', 'Oil', { desc = 'Open parent directory' }) + end, +} From 05716ef8442924fa35b1b07f44fc85e36db4a026 Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Mon, 9 Feb 2026 21:32:58 -0600 Subject: [PATCH 21/82] install vim tmux navigator --- lua/custom/plugins/snacks.lua | 2 +- lua/custom/plugins/vimtmuxnavigator.lua | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 lua/custom/plugins/vimtmuxnavigator.lua diff --git a/lua/custom/plugins/snacks.lua b/lua/custom/plugins/snacks.lua index 3ba6f6dfb75..8144c975650 100644 --- a/lua/custom/plugins/snacks.lua +++ b/lua/custom/plugins/snacks.lua @@ -5,7 +5,7 @@ return { ---@type snacks.Config opts = { --TODO: Use this for a bit and compare to mini dashboard - --TODO: design a style and featuers for my dashboard + --TODO: design a style and featuers for my dashboard (add opening parent directory with Oil) dashboard = { enabled = true }, gitbrowse = { enabled = true }, lazygit = { enabled = true }, diff --git a/lua/custom/plugins/vimtmuxnavigator.lua b/lua/custom/plugins/vimtmuxnavigator.lua new file mode 100644 index 00000000000..d4aaccb2af5 --- /dev/null +++ b/lua/custom/plugins/vimtmuxnavigator.lua @@ -0,0 +1,3 @@ +return { + 'christoomey/vim-tmux-navigator', +} From c78652da0f1e6696467db1f93ff442ac498e8bb7 Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Mon, 9 Feb 2026 21:38:11 -0600 Subject: [PATCH 22/82] enable kickstart autopairs plugin --- init.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/init.lua b/init.lua index b859a47706a..190a49109f5 100644 --- a/init.lua +++ b/init.lua @@ -884,7 +884,7 @@ require('lazy').setup({ -- require 'kickstart.plugins.debug', -- require 'kickstart.plugins.indent_line', -- require 'kickstart.plugins.lint', - -- require 'kickstart.plugins.autopairs', + require 'kickstart.plugins.autopairs', -- require 'kickstart.plugins.neo-tree', -- require 'kickstart.plugins.gitsigns', -- adds gitsigns recommend keymaps From b47ada1b0a4f7209a377659c60eb17d622ae8782 Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Mon, 9 Feb 2026 21:42:26 -0600 Subject: [PATCH 23/82] enable the indent lines kickstart plugin --- init.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/init.lua b/init.lua index 190a49109f5..5e7fd71b942 100644 --- a/init.lua +++ b/init.lua @@ -882,7 +882,7 @@ require('lazy').setup({ -- Uncomment any of the lines below to enable them (you will need to restart nvim). -- -- require 'kickstart.plugins.debug', - -- require 'kickstart.plugins.indent_line', + require 'kickstart.plugins.indent_line', -- require 'kickstart.plugins.lint', require 'kickstart.plugins.autopairs', -- require 'kickstart.plugins.neo-tree', From 8412e3aaa5069fc01f7fb87f41a940cafc6ac1a3 Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Mon, 9 Feb 2026 21:46:21 -0600 Subject: [PATCH 24/82] ensure omnisharp is installed --- init.lua | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/init.lua b/init.lua index 5e7fd71b942..f662e6d161c 100644 --- a/init.lua +++ b/init.lua @@ -622,7 +622,8 @@ require('lazy').setup({ 'lua-language-server', -- Lua Language server 'stylua', -- Used to format Lua code -- You can add other tools here that you want Mason to install - 'typescript-language-server', --Typescript Language Server + 'typescript-language-server', -- Typescript Language Server + 'omnisharp', -- C# Language Server }) require('mason-tool-installer').setup { ensure_installed = ensure_installed } From 28df0960712042f8b6d701a99a434eabaee3e638 Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Mon, 9 Feb 2026 21:55:07 -0600 Subject: [PATCH 25/82] move mini to its own file --- init.lua | 37 ------------------------------------- lua/custom/plugins/mini.lua | 24 ++++++++++++++++++++++++ 2 files changed, 24 insertions(+), 37 deletions(-) create mode 100644 lua/custom/plugins/mini.lua diff --git a/init.lua b/init.lua index f662e6d161c..ca5f28197f3 100644 --- a/init.lua +++ b/init.lua @@ -824,43 +824,6 @@ require('lazy').setup({ -- Highlight todo, notes, etc in comments { 'folke/todo-comments.nvim', event = 'VimEnter', dependencies = { 'nvim-lua/plenary.nvim' }, opts = { signs = false } }, - { -- Collection of various small independent plugins/modules - 'nvim-mini/mini.nvim', - config = function() - -- Better Around/Inside textobjects - -- - -- Examples: - -- - va) - [V]isually select [A]round [)]paren - -- - yinq - [Y]ank [I]nside [N]ext [Q]uote - -- - ci' - [C]hange [I]nside [']quote - require('mini.ai').setup { n_lines = 500 } - - -- Add/delete/replace surroundings (brackets, quotes, etc.) - -- - -- - saiw) - [S]urround [A]dd [I]nner [W]ord [)]Paren - -- - sd' - [S]urround [D]elete [']quotes - -- - sr)' - [S]urround [R]eplace [)] ['] - require('mini.surround').setup() - - -- Simple and easy statusline. - -- You could remove this setup call if you don't like it, - -- and try some other statusline plugin - local statusline = require 'mini.statusline' - -- set use_icons to true if you have a Nerd Font - statusline.setup { use_icons = vim.g.have_nerd_font } - - -- You can configure sections in the statusline by overriding their - -- default behavior. For example, here we set the section for - -- cursor location to LINE:COLUMN - ---@diagnostic disable-next-line: duplicate-set-field - statusline.section_location = function() return '%2l:%-2v' end - - -- ... and there is more! - -- Check out: https://github.com/nvim-mini/mini.nvim - -- require('mini.starter').setup() - end, - }, - { -- Highlight, edit, and navigate code 'nvim-treesitter/nvim-treesitter', config = function() diff --git a/lua/custom/plugins/mini.lua b/lua/custom/plugins/mini.lua new file mode 100644 index 00000000000..a15275ddf67 --- /dev/null +++ b/lua/custom/plugins/mini.lua @@ -0,0 +1,24 @@ +return { + 'nvim-mini/mini.nvim', + config = function() + -- Better Around/Inside textobjects + -- + -- Examples: + -- - va) - [V]isually select [A]round [)]paren + -- - yinq - [Y]ank [I]nside [N]ext [Q]uote + -- - ci' - [C]hange [I]nside [']quote + require('mini.ai').setup { n_lines = 500 } + + -- Add/delete/replace surroundings (brackets, quotes, etc.) + -- + -- - saiw) - [S]urround [A]dd [I]nner [W]ord [)]Paren + -- - sd' - [S]urround [D]elete [']quotes + -- - sr)' - [S]urround [R]eplace [)] ['] + require('mini.surround').setup() + + local statusline = require 'mini.statusline' + statusline.setup { use_icons = vim.g.have_nerd_font } + ---@diagnostic disable-next-line: duplicate-set-field + statusline.section_location = function() return '%2l:%-2v' end + end, +} From e6714eccb3dcadee67e923479f5988a8df976703 Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Mon, 9 Feb 2026 21:57:39 -0600 Subject: [PATCH 26/82] enable mini move --- lua/custom/plugins/mini.lua | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lua/custom/plugins/mini.lua b/lua/custom/plugins/mini.lua index a15275ddf67..58cb4c29c73 100644 --- a/lua/custom/plugins/mini.lua +++ b/lua/custom/plugins/mini.lua @@ -16,6 +16,8 @@ return { -- - sr)' - [S]urround [R]eplace [)] ['] require('mini.surround').setup() + require('mini.move').setup() + local statusline = require 'mini.statusline' statusline.setup { use_icons = vim.g.have_nerd_font } ---@diagnostic disable-next-line: duplicate-set-field From 7304ca7edc749e5b38c151407f07d388b2e36222 Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Mon, 9 Feb 2026 22:03:43 -0600 Subject: [PATCH 27/82] enabled mini git --- lua/custom/plugins/mini.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/lua/custom/plugins/mini.lua b/lua/custom/plugins/mini.lua index 58cb4c29c73..5668e68e94f 100644 --- a/lua/custom/plugins/mini.lua +++ b/lua/custom/plugins/mini.lua @@ -17,6 +17,7 @@ return { require('mini.surround').setup() require('mini.move').setup() + require('mini.git').setup() local statusline = require 'mini.statusline' statusline.setup { use_icons = vim.g.have_nerd_font } From 488f73d40dfe335be52bc894783b1d23fa90f4cc Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Mon, 9 Feb 2026 22:09:49 -0600 Subject: [PATCH 28/82] enable mini git and configure keybindings --- lua/custom/plugins/mini.lua | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lua/custom/plugins/mini.lua b/lua/custom/plugins/mini.lua index 5668e68e94f..3776c23904d 100644 --- a/lua/custom/plugins/mini.lua +++ b/lua/custom/plugins/mini.lua @@ -23,5 +23,9 @@ return { statusline.setup { use_icons = vim.g.have_nerd_font } ---@diagnostic disable-next-line: duplicate-set-field statusline.section_location = function() return '%2l:%-2v' end + + vim.keymap.set('n', 'ga', 'Git add -A', { desc = 'Git add all' }) + vim.keymap.set('n', 'gc', 'Git commit', { desc = 'Git commit' }) + vim.keymap.set('n', 'gs', 'Git stash', { desc = 'Git stash' }) end, } From ccf7f95669f8d782b142034418255c5479e5910e Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Mon, 9 Feb 2026 22:11:03 -0600 Subject: [PATCH 29/82] add git graph keybinding --- lua/custom/plugins/mini.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/lua/custom/plugins/mini.lua b/lua/custom/plugins/mini.lua index 3776c23904d..d7f197caebe 100644 --- a/lua/custom/plugins/mini.lua +++ b/lua/custom/plugins/mini.lua @@ -27,5 +27,6 @@ return { vim.keymap.set('n', 'ga', 'Git add -A', { desc = 'Git add all' }) vim.keymap.set('n', 'gc', 'Git commit', { desc = 'Git commit' }) vim.keymap.set('n', 'gs', 'Git stash', { desc = 'Git stash' }) + vim.keymap.set('n', 'gg', 'Git log --graph --oneline --all', { desc = 'Git graph' }) end, } From b3aff0982c6883314d5a2031f312c6ca19231f02 Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Tue, 10 Feb 2026 20:28:21 -0600 Subject: [PATCH 30/82] initialize typescript and typescriptreact files for formating --- init.lua | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/init.lua b/init.lua index ca5f28197f3..0c3b812b918 100644 --- a/init.lua +++ b/init.lua @@ -698,10 +698,13 @@ require('lazy').setup({ -- -- You can use 'stop_after_first' to run the first available formatter from the list javascript = { 'prettierd', 'prettier', stop_after_first = true }, + typescript = { 'prettierd', 'prettier', stop_after_first = true }, + typescriptreact = { 'prettierd', 'prettier', stop_after_first = true }, }, }, }, + --FIX: typescript-lsp: This is not working for typescript { -- Autocompletion 'saghen/blink.cmp', event = 'VimEnter', @@ -796,9 +799,9 @@ require('lazy').setup({ }, }, + -- THEMES { 'catppuccin/nvim', name = 'catppuccin', priority = 1000 }, { 'rose-pine/neovim', name = 'rose-pine', priority = 1000 }, - { -- You can easily change to a different colorscheme. -- Change the name of the colorscheme plugin below, and then -- change the command in the config to whatever the name of that colorscheme is. From 71005c5fa683b2a5c237c46a66e8f1a338506924 Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Tue, 10 Feb 2026 20:43:04 -0600 Subject: [PATCH 31/82] replace tsserver with typescript-tools plugin --- init.lua | 9 --------- lua/custom/plugins/typescript-tools.lua | 5 +++++ 2 files changed, 5 insertions(+), 9 deletions(-) create mode 100644 lua/custom/plugins/typescript-tools.lua diff --git a/init.lua b/init.lua index 0c3b812b918..8185fdae1f4 100644 --- a/init.lua +++ b/init.lua @@ -601,13 +601,6 @@ require('lazy').setup({ -- gopls = {}, pyright = {}, -- rust_analyzer = {}, - -- - -- TODO: look into typescript-tools.nvim - -- Some languages (like typescript) have entire language plugins that can be useful: - -- https://github.com/pmizio/typescript-tools.nvim - -- - -- But for many setups, the LSP (`ts_ls`) will work just fine - -- ts_ls = {}, } -- Ensure the servers and tools above are installed @@ -622,7 +615,6 @@ require('lazy').setup({ 'lua-language-server', -- Lua Language server 'stylua', -- Used to format Lua code -- You can add other tools here that you want Mason to install - 'typescript-language-server', -- Typescript Language Server 'omnisharp', -- C# Language Server }) @@ -704,7 +696,6 @@ require('lazy').setup({ }, }, - --FIX: typescript-lsp: This is not working for typescript { -- Autocompletion 'saghen/blink.cmp', event = 'VimEnter', diff --git a/lua/custom/plugins/typescript-tools.lua b/lua/custom/plugins/typescript-tools.lua new file mode 100644 index 00000000000..ba7fb2046e7 --- /dev/null +++ b/lua/custom/plugins/typescript-tools.lua @@ -0,0 +1,5 @@ +return { + 'pmizio/typescript-tools.nvim', + dependencies = { 'nvim-lua/plenary.nvim', 'neovim/nvim-lspconfig' }, + opts = {}, +} From b18dfa2746ad5d40e628823f760df563c857599c Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Tue, 10 Feb 2026 21:03:11 -0600 Subject: [PATCH 32/82] run a godot server when in a godot project --- init.lua | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/init.lua b/init.lua index 8185fdae1f4..ab84097be0b 100644 --- a/init.lua +++ b/init.lua @@ -878,5 +878,15 @@ require('lazy').setup({ }, }) +-- FIX: godot-server: this is preventing multiple nvim sessions from running at the same time +-- FIX: godot-server: might be launching the server despite not being in a godot directory? +-- FIX: godot-server: Also, it really should check if the server is already running first... +local gdprojectfile = vim.fn.getcwd() == '/project.godot' +if gdprojectfile then vim.fn.serverstart '127.0.0.1:55432' end + +--TODO: godot-server: delete logging logic +print(gdprojectfile) +if gdprojectfile then print 'running in gd project file' end + -- The line beneath this is called `modeline`. See `:help modeline` -- vim: ts=2 sts=2 sw=2 et From 84096697723a10d42bb5f44c9f97e8f86beeb773 Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Tue, 10 Feb 2026 21:11:59 -0600 Subject: [PATCH 33/82] fix accurate check if in godot directory --- init.lua | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/init.lua b/init.lua index ab84097be0b..644410f0bbd 100644 --- a/init.lua +++ b/init.lua @@ -881,12 +881,14 @@ require('lazy').setup({ -- FIX: godot-server: this is preventing multiple nvim sessions from running at the same time -- FIX: godot-server: might be launching the server despite not being in a godot directory? -- FIX: godot-server: Also, it really should check if the server is already running first... -local gdprojectfile = vim.fn.getcwd() == '/project.godot' -if gdprojectfile then vim.fn.serverstart '127.0.0.1:55432' end +local gdprojectfilepath = vim.fn.getcwd() .. '/project.godot' +local isInGdDirectory = vim.fn.filereadable(gdprojectfilepath) == 1 + +if isInGdDirectory then vim.fn.serverstart '127.0.0.1:55432' end --TODO: godot-server: delete logging logic -print(gdprojectfile) -if gdprojectfile then print 'running in gd project file' end +if isInGdDirectory then print 'running in gd project file' end +print(vim.fn.filereadable(gdprojectfilepath)) -- The line beneath this is called `modeline`. See `:help modeline` -- vim: ts=2 sts=2 sw=2 et From 0800f2d9948a93ed2bd6fe58a7b078c3ab439a02 Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Tue, 10 Feb 2026 21:13:28 -0600 Subject: [PATCH 34/82] remove logging logic --- init.lua | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/init.lua b/init.lua index 644410f0bbd..f80af8c1894 100644 --- a/init.lua +++ b/init.lua @@ -878,17 +878,11 @@ require('lazy').setup({ }, }) --- FIX: godot-server: this is preventing multiple nvim sessions from running at the same time --- FIX: godot-server: might be launching the server despite not being in a godot directory? --- FIX: godot-server: Also, it really should check if the server is already running first... +-- FIX: godot-server: should check if the server is already running first... local gdprojectfilepath = vim.fn.getcwd() .. '/project.godot' local isInGdDirectory = vim.fn.filereadable(gdprojectfilepath) == 1 if isInGdDirectory then vim.fn.serverstart '127.0.0.1:55432' end ---TODO: godot-server: delete logging logic -if isInGdDirectory then print 'running in gd project file' end -print(vim.fn.filereadable(gdprojectfilepath)) - -- The line beneath this is called `modeline`. See `:help modeline` -- vim: ts=2 sts=2 sw=2 et From d5d84ef6a6bec2f8aa1708ebf423d367d350f5ef Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Tue, 10 Feb 2026 21:28:05 -0600 Subject: [PATCH 35/82] install the marks plugin --- init.lua | 1 - lua/custom/plugins/marks.lua | 5 +++++ 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 lua/custom/plugins/marks.lua diff --git a/init.lua b/init.lua index f80af8c1894..eaf4ccebd75 100644 --- a/init.lua +++ b/init.lua @@ -881,7 +881,6 @@ require('lazy').setup({ -- FIX: godot-server: should check if the server is already running first... local gdprojectfilepath = vim.fn.getcwd() .. '/project.godot' local isInGdDirectory = vim.fn.filereadable(gdprojectfilepath) == 1 - if isInGdDirectory then vim.fn.serverstart '127.0.0.1:55432' end -- The line beneath this is called `modeline`. See `:help modeline` diff --git a/lua/custom/plugins/marks.lua b/lua/custom/plugins/marks.lua new file mode 100644 index 00000000000..2c63d712fe2 --- /dev/null +++ b/lua/custom/plugins/marks.lua @@ -0,0 +1,5 @@ +return { + 'chentoast/marks.nvim', + event = 'VeryLazy', + opts = {}, +} From 6cc8fbfd773c2d2ef6d250267d4d00685d615e79 Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Sat, 14 Mar 2026 21:43:43 -0500 Subject: [PATCH 36/82] remove the omnisharp language server --- init.lua | 1 - 1 file changed, 1 deletion(-) diff --git a/init.lua b/init.lua index 51af4b56087..4330569f19a 100644 --- a/init.lua +++ b/init.lua @@ -656,7 +656,6 @@ require('lazy').setup({ local ensure_installed = vim.tbl_keys(servers or {}) vim.list_extend(ensure_installed, { -- You can add other tools here that you want Mason to install - 'omnisharp', -- C# Language Server }) require('mason-tool-installer').setup { ensure_installed = ensure_installed } From c47ffa3031cfe8e0136741bcd2b60f04cdf10d8d Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Sat, 14 Mar 2026 22:10:19 -0500 Subject: [PATCH 37/82] use crashdummyy registry in mason for access to roslyn lsp --- init.lua | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/init.lua b/init.lua index 4330569f19a..7237b2e8a8d 100644 --- a/init.lua +++ b/init.lua @@ -495,7 +495,12 @@ require('lazy').setup({ ---@module 'mason.settings' ---@type MasonSettings ---@diagnostic disable-next-line: missing-fields - opts = {}, + opts = { + registries = { + 'github:mason-org/mason-registry', + 'github:Crashdummyy/mason-registry', + }, + }, }, -- Maps LSP server names between nvim-lspconfig and Mason package names. 'mason-org/mason-lspconfig.nvim', From ebc82857dc1e43b3adf18ce3f6c700290d0ac166 Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Sat, 14 Mar 2026 22:12:39 -0500 Subject: [PATCH 38/82] initial roslyn configuration --- lua/custom/plugins/roslyn.lua | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 lua/custom/plugins/roslyn.lua diff --git a/lua/custom/plugins/roslyn.lua b/lua/custom/plugins/roslyn.lua new file mode 100644 index 00000000000..71c264e2035 --- /dev/null +++ b/lua/custom/plugins/roslyn.lua @@ -0,0 +1,8 @@ +return { + 'seblyng/roslyn.nvim', + ---@module 'roslyn.config' + ---@type RoslynNvimConfig + opts = { + -- your configuration comes here; leave empty for default settings + }, +} From 00bea79e44773226e583e3d4f2808f51d7cd822e Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Sat, 14 Mar 2026 22:18:49 -0500 Subject: [PATCH 39/82] ensure roslyn installed --- init.lua | 3 +++ 1 file changed, 3 insertions(+) diff --git a/init.lua b/init.lua index 7237b2e8a8d..d210e90180b 100644 --- a/init.lua +++ b/init.lua @@ -661,6 +661,7 @@ require('lazy').setup({ local ensure_installed = vim.tbl_keys(servers or {}) vim.list_extend(ensure_installed, { -- You can add other tools here that you want Mason to install + 'roslyn', }) require('mason-tool-installer').setup { ensure_installed = ensure_installed } @@ -702,6 +703,7 @@ require('lazy').setup({ } end end, + --TODO: need formating for c#/roslyn formatters_by_ft = { lua = { 'stylua' }, -- Conform can also run multiple formatters sequentially @@ -715,6 +717,7 @@ require('lazy').setup({ }, }, + --TODO: need autocompletion for c#/roslyn { -- Autocompletion 'saghen/blink.cmp', event = 'VimEnter', From 7517fb4d7194f30a32f2440dc6ce71d1645284d2 Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Sun, 15 Mar 2026 01:21:20 -0500 Subject: [PATCH 40/82] replace roslyn with omnisharp --- init.lua | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/init.lua b/init.lua index d210e90180b..bbcbcda611e 100644 --- a/init.lua +++ b/init.lua @@ -619,6 +619,8 @@ require('lazy').setup({ -- But for many setups, the LSP (`ts_ls`) will work just fine -- ts_ls = {}, + omnisharp = {}, + stylua = {}, -- Used to format Lua code -- Special Lua Config, as recommended by neovim help docs @@ -661,7 +663,7 @@ require('lazy').setup({ local ensure_installed = vim.tbl_keys(servers or {}) vim.list_extend(ensure_installed, { -- You can add other tools here that you want Mason to install - 'roslyn', + 'omnisharp', }) require('mason-tool-installer').setup { ensure_installed = ensure_installed } From 341741faeb06518eee0e3207dd0db236ffdc7868 Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Sun, 15 Mar 2026 01:21:47 -0500 Subject: [PATCH 41/82] remove custom roslyn plugin --- lua/custom/plugins/roslyn.lua | 8 -------- 1 file changed, 8 deletions(-) delete mode 100644 lua/custom/plugins/roslyn.lua diff --git a/lua/custom/plugins/roslyn.lua b/lua/custom/plugins/roslyn.lua deleted file mode 100644 index 71c264e2035..00000000000 --- a/lua/custom/plugins/roslyn.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - 'seblyng/roslyn.nvim', - ---@module 'roslyn.config' - ---@type RoslynNvimConfig - opts = { - -- your configuration comes here; leave empty for default settings - }, -} From 65e93fd6fca6a4ed0433db61b0009d4013312dce Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Sun, 15 Mar 2026 01:26:37 -0500 Subject: [PATCH 42/82] accept autocomplete suggestions with tab --- init.lua | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/init.lua b/init.lua index bbcbcda611e..bea5aebdec5 100644 --- a/init.lua +++ b/init.lua @@ -705,7 +705,7 @@ require('lazy').setup({ } end end, - --TODO: need formating for c#/roslyn + --TODO: need formating for c#/omnisharp formatters_by_ft = { lua = { 'stylua' }, -- Conform can also run multiple formatters sequentially @@ -719,7 +719,6 @@ require('lazy').setup({ }, }, - --TODO: need autocompletion for c#/roslyn { -- Autocompletion 'saghen/blink.cmp', event = 'VimEnter', @@ -776,7 +775,7 @@ require('lazy').setup({ -- : Toggle signature help -- -- See :h blink-cmp-config-keymap for defining your own keymap - preset = 'default', + preset = 'super-tab', -- For more advanced Luasnip keymaps (e.g. selecting choice nodes, expansion) see: -- https://github.com/L3MON4D3/LuaSnip?tab=readme-ov-file#keymaps From b8c00e8ab5edb4d4bcc0a59cbd3f244a44f07e42 Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Sun, 15 Mar 2026 01:28:39 -0500 Subject: [PATCH 43/82] remove todo requiring formatting for omnisharp. already complete --- init.lua | 1 - 1 file changed, 1 deletion(-) diff --git a/init.lua b/init.lua index bea5aebdec5..84a718e3c45 100644 --- a/init.lua +++ b/init.lua @@ -705,7 +705,6 @@ require('lazy').setup({ } end end, - --TODO: need formating for c#/omnisharp formatters_by_ft = { lua = { 'stylua' }, -- Conform can also run multiple formatters sequentially From be56786798e41dc3179d6561e34bfb1febdb4727 Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Sun, 15 Mar 2026 01:42:52 -0500 Subject: [PATCH 44/82] replace marks plugin with guttermarks --- lua/custom/plugins/guttermarks.lua | 4 ++++ lua/custom/plugins/marks.lua | 5 ----- 2 files changed, 4 insertions(+), 5 deletions(-) create mode 100644 lua/custom/plugins/guttermarks.lua delete mode 100644 lua/custom/plugins/marks.lua diff --git a/lua/custom/plugins/guttermarks.lua b/lua/custom/plugins/guttermarks.lua new file mode 100644 index 00000000000..fbc79a63b27 --- /dev/null +++ b/lua/custom/plugins/guttermarks.lua @@ -0,0 +1,4 @@ +return { + 'dimtion/guttermarks.nvim', + event = { 'BufReadPost', 'BufNewFile', 'BufWritePre', 'FileType' }, +} diff --git a/lua/custom/plugins/marks.lua b/lua/custom/plugins/marks.lua deleted file mode 100644 index 2c63d712fe2..00000000000 --- a/lua/custom/plugins/marks.lua +++ /dev/null @@ -1,5 +0,0 @@ -return { - 'chentoast/marks.nvim', - event = 'VeryLazy', - opts = {}, -} From 939a1c7fdeb115d8149edc1b5833f49a41ff85d6 Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Sat, 11 Apr 2026 19:31:16 -0500 Subject: [PATCH 45/82] add the remote sshfs plugin --- lua/custom/plugins/remote-sshfs.lua | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 lua/custom/plugins/remote-sshfs.lua diff --git a/lua/custom/plugins/remote-sshfs.lua b/lua/custom/plugins/remote-sshfs.lua new file mode 100644 index 00000000000..9d51315c113 --- /dev/null +++ b/lua/custom/plugins/remote-sshfs.lua @@ -0,0 +1,5 @@ +return { + 'nosduco/remote-sshfs.nvim', + dependencies = { 'nvim-telescope/telescope.nvim', 'nvim-lua/plenary.nvim' }, + opts = {}, +} From 5cd972fd06ebf2aa54d248a24722866d57ea93a3 Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Sat, 11 Apr 2026 19:32:58 -0500 Subject: [PATCH 46/82] comment for remote sshfs plugin usage --- lua/custom/plugins/remote-sshfs.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/lua/custom/plugins/remote-sshfs.lua b/lua/custom/plugins/remote-sshfs.lua index 9d51315c113..8c64b6c2bda 100644 --- a/lua/custom/plugins/remote-sshfs.lua +++ b/lua/custom/plugins/remote-sshfs.lua @@ -1,3 +1,4 @@ +-- Usage: :RemoteSSHFSConnect @:/path/to/file return { 'nosduco/remote-sshfs.nvim', dependencies = { 'nvim-telescope/telescope.nvim', 'nvim-lua/plenary.nvim' }, From 85d4b8dfc5fbf3f2b036146998a2fc1648946b4e Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Tue, 28 Apr 2026 19:32:38 -0500 Subject: [PATCH 47/82] add documentation comments for using remote sshfs --- init.lua | 1 + lua/custom/plugins/remote-sshfs.lua | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/init.lua b/init.lua index 01daf5f49f1..a18a5629b7b 100644 --- a/init.lua +++ b/init.lua @@ -711,6 +711,7 @@ require('lazy').setup({ -- python = { "isort", "black" }, -- -- You can use 'stop_after_first' to run the first available formatter from the list + json = { 'prettierd', 'prettier', stop_after_first = true }, javascript = { 'prettierd', 'prettier', stop_after_first = true }, typescript = { 'prettierd', 'prettier', stop_after_first = true }, typescriptreact = { 'prettierd', 'prettier', stop_after_first = true }, diff --git a/lua/custom/plugins/remote-sshfs.lua b/lua/custom/plugins/remote-sshfs.lua index 8c64b6c2bda..dda4fd04b8c 100644 --- a/lua/custom/plugins/remote-sshfs.lua +++ b/lua/custom/plugins/remote-sshfs.lua @@ -1,6 +1,10 @@ --- Usage: :RemoteSSHFSConnect @:/path/to/file return { 'nosduco/remote-sshfs.nvim', dependencies = { 'nvim-telescope/telescope.nvim', 'nvim-lua/plenary.nvim' }, opts = {}, } + +-- Usage: :RemoteSSHFSConnect @:/path/to/file +-- Sometimes you have to force close, and that causes permission failed on reconnect. +-- When that happens DO NOT DELETE THE DIRECTORY under .sshfd. That will delete everything that mountpoint is connected to *at the connection* +-- Instead safely unmount with `umount -l ~/.sshfd/[MOUNT_POINT]` From 12100e87e54732045c528d125fd00eae448241a0 Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Tue, 28 Apr 2026 19:33:06 -0500 Subject: [PATCH 48/82] use gs for git status --- lua/custom/plugins/mini.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/custom/plugins/mini.lua b/lua/custom/plugins/mini.lua index d7f197caebe..bea310bab2b 100644 --- a/lua/custom/plugins/mini.lua +++ b/lua/custom/plugins/mini.lua @@ -26,7 +26,7 @@ return { vim.keymap.set('n', 'ga', 'Git add -A', { desc = 'Git add all' }) vim.keymap.set('n', 'gc', 'Git commit', { desc = 'Git commit' }) - vim.keymap.set('n', 'gs', 'Git stash', { desc = 'Git stash' }) + vim.keymap.set('n', 'gs', 'Git status', { desc = 'Git status' }) vim.keymap.set('n', 'gg', 'Git log --graph --oneline --all', { desc = 'Git graph' }) end, } From 136d55c8307f295f1398de2fd48529fbe6153435 Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Tue, 28 Apr 2026 21:32:18 -0500 Subject: [PATCH 49/82] format typescript and javascript on save --- init.lua | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/init.lua b/init.lua index 2692faa7b65..a5c8743d53d 100644 --- a/init.lua +++ b/init.lua @@ -699,7 +699,10 @@ require('lazy').setup({ format_on_save = function(bufnr) -- You can specify filetypes to autoformat on save here: local enabled_filetypes = { - -- lua = true, + lua = true, + javascript = true, + typescript = true, + typescriptreact = true, -- python = true, } if enabled_filetypes[vim.bo[bufnr].filetype] then From fe72847a40423d754a4f209adc1716bb9d5a21d1 Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Tue, 28 Apr 2026 21:48:04 -0500 Subject: [PATCH 50/82] revert change to godot server section --- init.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/init.lua b/init.lua index fd577378cf4..124f0b5bb80 100644 --- a/init.lua +++ b/init.lua @@ -963,6 +963,7 @@ require('lazy').setup({ -- FIX: godot-server: should check if the server is already running first... local gdprojectfilepath = vim.fn.getcwd() .. '/project.godot' local isInGdDirectory = vim.fn.filereadable(gdprojectfilepath) == 1 + if isInGdDirectory then vim.fn.serverstart '127.0.0.1:55432' end -- The line beneath this is called `modeline`. See `:help modeline` From 049902a802fc3339ce88ed9672a819ab86d551f8 Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Wed, 3 Jun 2026 20:33:20 -0500 Subject: [PATCH 51/82] add quick no-wrap configuration --- init.lua | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/init.lua b/init.lua index 78f48dbaab6..766bd5d616e 100644 --- a/init.lua +++ b/init.lua @@ -104,6 +104,9 @@ vim.o.number = true -- Experiment for yourself to see if you like it! vim.o.relativenumber = true +-- Set to nowrap //TODO: can this be in a separate file than the init.lua to avoid conflicts with upstream? +vim.o.wrap = false + -- Enable mouse mode, can be useful for resizing splits for example! vim.o.mouse = 'a' @@ -703,6 +706,7 @@ require('lazy').setup({ javascript = true, typescript = true, typescriptreact = true, + cs = true, -- python = true, } if enabled_filetypes[vim.bo[bufnr].filetype] then From 6e93058d91d22b92b449cca3427913b7debb40f3 Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Wed, 1 Jul 2026 11:39:19 -0500 Subject: [PATCH 52/82] initial svelte configuration and document issues --- init.lua | 3 +++ 1 file changed, 3 insertions(+) diff --git a/init.lua b/init.lua index 766bd5d616e..94609fbe8d5 100644 --- a/init.lua +++ b/init.lua @@ -707,6 +707,8 @@ require('lazy').setup({ typescript = true, typescriptreact = true, cs = true, + --TODO: not getting any lsp completion for svelte files + svelte = true, -- python = true, } if enabled_filetypes[vim.bo[bufnr].filetype] then @@ -729,6 +731,7 @@ require('lazy').setup({ javascript = { 'prettierd', 'prettier', stop_after_first = true }, typescript = { 'prettierd', 'prettier', stop_after_first = true }, typescriptreact = { 'prettierd', 'prettier', stop_after_first = true }, + svelte = { 'prettierd', 'prettier', stop_after_first = true }, }, }, }, From bf15bb77fbbc80c1c55bdd9bd8dc392d4d9e0b87 Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Wed, 1 Jul 2026 12:36:36 -0500 Subject: [PATCH 53/82] load themes from repository --- init.lua | 3 +++ 1 file changed, 3 insertions(+) diff --git a/init.lua b/init.lua index 8719106cc9c..3ba1301bc12 100644 --- a/init.lua +++ b/init.lua @@ -390,6 +390,9 @@ do }, } + vim.pack.add { gh 'catppuccin/nvim' } + vim.pack.add { gh 'rose-pine/neovim' } + -- Load the colorscheme here. -- Like many other themes, this one has different styles, and you could load -- any other, such as 'tokyonight-storm', 'tokyonight-moon', or 'tokyonight-day'. From 977a6babc2b2c4d92e1489716affa7864c3e4878 Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Wed, 1 Jul 2026 12:37:56 -0500 Subject: [PATCH 54/82] initial smoketest document --- doc/smoketest.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 doc/smoketest.md diff --git a/doc/smoketest.md b/doc/smoketest.md new file mode 100644 index 00000000000..7d6dd40f9ba --- /dev/null +++ b/doc/smoketest.md @@ -0,0 +1,7 @@ +# Smoketest + +A manual smoketest checklist to ensure features are working: + +## Plugins Load +- [ ] Catppuccin Theme +- [ ] Rose Pine Theme From 79901a1270ee6ad636846476f9b6529d75993eda Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Wed, 1 Jul 2026 12:43:48 -0500 Subject: [PATCH 55/82] update oil configuration to vim pack --- doc/smoketest.md | 8 +++++++- lua/custom/plugins/oil.lua | 17 +++++++++++------ 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/doc/smoketest.md b/doc/smoketest.md index 7d6dd40f9ba..8c7bc57162a 100644 --- a/doc/smoketest.md +++ b/doc/smoketest.md @@ -2,6 +2,12 @@ A manual smoketest checklist to ensure features are working: -## Plugins Load +## Plugin + +### Custom +- [ ] Oil + - Shortcut `-` should open Oil + +### Themes - [ ] Catppuccin Theme - [ ] Rose Pine Theme diff --git a/lua/custom/plugins/oil.lua b/lua/custom/plugins/oil.lua index 66018eb682f..d1ce8092f2b 100644 --- a/lua/custom/plugins/oil.lua +++ b/lua/custom/plugins/oil.lua @@ -1,7 +1,12 @@ -return { - 'stevearc/oil.nvim', - config = function() - require('oil').setup() - vim.keymap.set('n', '-', 'Oil', { desc = 'Open parent directory' }) - end, +-- return { +-- 'stevearc/oil.nvim', +-- config = function() +-- require('oil').setup() +-- vim.keymap.set('n', '-', 'Oil', { desc = 'Open parent directory' }) +-- end, +-- } + +vim.pack.add { 'https://github.com/stevearc/oil.nvim' } +require('oil').setup { + vim.keymap.set('n', '-', 'Oil', { desc = 'Open parent directory' }), } From 5e4274bb8276e5ba9d44d0361ca959c4f56895e5 Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Wed, 1 Jul 2026 12:49:04 -0500 Subject: [PATCH 56/82] configure vimtmuxnavigator with vim pack --- doc/smoketest.md | 2 ++ lua/custom/plugins/mini.lua | 1 + lua/custom/plugins/oil.lua | 8 -------- lua/custom/plugins/vimtmuxnavigator.lua | 4 +--- 4 files changed, 4 insertions(+), 11 deletions(-) diff --git a/doc/smoketest.md b/doc/smoketest.md index 8c7bc57162a..f5b281e3a0d 100644 --- a/doc/smoketest.md +++ b/doc/smoketest.md @@ -7,6 +7,8 @@ A manual smoketest checklist to ensure features are working: ### Custom - [ ] Oil - Shortcut `-` should open Oil +- [ ] VimTmuxNavigator + - Should be able to navigate between nvim and tmux panes using `j`, `k`, `h`, `l` for each respective direction ### Themes - [ ] Catppuccin Theme diff --git a/lua/custom/plugins/mini.lua b/lua/custom/plugins/mini.lua index bea310bab2b..11a72641b06 100644 --- a/lua/custom/plugins/mini.lua +++ b/lua/custom/plugins/mini.lua @@ -1,3 +1,4 @@ +--FIX: fix/postmerge-20260701: make sure this configuration applies to upstreams version of mini return { 'nvim-mini/mini.nvim', config = function() diff --git a/lua/custom/plugins/oil.lua b/lua/custom/plugins/oil.lua index d1ce8092f2b..016895d26f6 100644 --- a/lua/custom/plugins/oil.lua +++ b/lua/custom/plugins/oil.lua @@ -1,11 +1,3 @@ --- return { --- 'stevearc/oil.nvim', --- config = function() --- require('oil').setup() --- vim.keymap.set('n', '-', 'Oil', { desc = 'Open parent directory' }) --- end, --- } - vim.pack.add { 'https://github.com/stevearc/oil.nvim' } require('oil').setup { vim.keymap.set('n', '-', 'Oil', { desc = 'Open parent directory' }), diff --git a/lua/custom/plugins/vimtmuxnavigator.lua b/lua/custom/plugins/vimtmuxnavigator.lua index d4aaccb2af5..c4e21b1bd0d 100644 --- a/lua/custom/plugins/vimtmuxnavigator.lua +++ b/lua/custom/plugins/vimtmuxnavigator.lua @@ -1,3 +1 @@ -return { - 'christoomey/vim-tmux-navigator', -} +vim.pack.add { 'https://github.com/christoomey/vim-tmux-navigator' } From dae771e520c9a6b0cd65a3bbe57b1fbb266505e5 Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Wed, 1 Jul 2026 13:08:39 -0500 Subject: [PATCH 57/82] configure snacks with vim pack --- doc/smoketest.md | 9 ++++- lua/custom/plugins/snacks.lua | 63 ++++++++++++++++++++++------------- 2 files changed, 48 insertions(+), 24 deletions(-) diff --git a/doc/smoketest.md b/doc/smoketest.md index f5b281e3a0d..0dcf2209583 100644 --- a/doc/smoketest.md +++ b/doc/smoketest.md @@ -7,8 +7,15 @@ A manual smoketest checklist to ensure features are working: ### Custom - [ ] Oil - Shortcut `-` should open Oil +- [ ] Snacks + - Should load dashboard at start, and `=` should open dashboard + - `gb` should open the remote git repository in a browser + - `gl` should open lazy git + - `no` should open a scratchpad + - `ns` browses existing notes in scratchpad + - `` should open a terminal - [ ] VimTmuxNavigator - - Should be able to navigate between nvim and tmux panes using `j`, `k`, `h`, `l` for each respective direction + - Should be able to navigate between nvim and tmux panes using ``, ``, ``, `` for each respective direction ### Themes - [ ] Catppuccin Theme diff --git a/lua/custom/plugins/snacks.lua b/lua/custom/plugins/snacks.lua index 8144c975650..76325a2567c 100644 --- a/lua/custom/plugins/snacks.lua +++ b/lua/custom/plugins/snacks.lua @@ -1,24 +1,41 @@ -return { - 'folke/snacks.nvim', - priority = 1000, - lazy = false, - ---@type snacks.Config - opts = { - --TODO: Use this for a bit and compare to mini dashboard - --TODO: design a style and featuers for my dashboard (add opening parent directory with Oil) - dashboard = { enabled = true }, - gitbrowse = { enabled = true }, - lazygit = { enabled = true }, - --TODO: determine a method for deleting scratches easily - scratch = { enabled = true }, - terminal = { enabled = true }, - }, - keys = { - { '=', function() Snacks.dashboard.open() end, desc = 'Dashboard' }, - { 'gb', function() Snacks.gitbrowse.open() end, desc = 'Open Git Repository in Browser' }, - { 'gl', function() Snacks.lazygit.open() end, desc = 'Open Lazy Git' }, - { 'no', function() Snacks.scratch() end, desc = 'Open Notepad' }, - { 'ns', function() Snacks.scratch.select() end, desc = 'Select Note' }, - { '', function() Snacks.terminal() end, desc = 'Open Terminal' }, - }, +-- return { +-- 'folke/snacks.nvim', +-- priority = 1000, +-- lazy = false, +-- ---@type snacks.Config +-- opts = { +-- dashboard = { enabled = true }, +-- gitbrowse = { enabled = true }, +-- lazygit = { enabled = true }, +-- scratch = { enabled = true }, +-- terminal = { enabled = true }, +-- }, +-- keys = { +-- { '=', function() Snacks.dashboard.open() end, desc = 'Dashboard' }, +-- { 'gb', function() Snacks.gitbrowse.open() end, desc = 'Open Git Repository in Browser' }, +-- { 'gl', function() Snacks.lazygit.open() end, desc = 'Open Lazy Git' }, +-- { 'no', function() Snacks.scratch() end, desc = 'Open Notepad' }, +-- { 'ns', function() Snacks.scratch.select() end, desc = 'Select Note' }, +-- { '', function() Snacks.terminal() end, desc = 'Open Terminal' }, +-- }, +-- } + +--TODO: design a style and features for my dashboard (add opening parent directory with Oil) +--TODO: determine a method for deleting scratches easily + +--FIX: postmerge-20260701: Dashboard not working +vim.pack.add { 'https://github.com/folke/snacks.nvim' } +require('snacks').setup { + -- dashboard = { enabled = true }, + gitbrowse = { enabled = true }, + lazygit = { enabled = true }, + scratch = { enabled = true }, + terminal = { enabled = true }, } + +-- vim.keymap.set('n', '=', function() Snacks.dashboard.open() end, { desc = 'Dashboard' }) +vim.keymap.set('n', 'gb', function() Snacks.gitbrowse.open() end, { desc = 'Open [G]it Repository in [B]rowser' }) +vim.keymap.set('n', 'gl', function() Snacks.lazygit.open() end, { desc = 'Open [L]azy [G]it' }) +vim.keymap.set('n', 'no', function() Snacks.scratch() end, { desc = '[O]pen [N]otepad' }) +vim.keymap.set('n', 'ns', function() Snacks.scratch.select() end, { desc = '[S]elect [N]ote' }) +vim.keymap.set('n', '', function() Snacks.terminal() end, { desc = 'Open [T]erminal' }) From 36247a0bad6f789483f3ed6ef8c1a0a1160652eb Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Wed, 1 Jul 2026 13:34:28 -0500 Subject: [PATCH 58/82] define snacks dashboard sections --- lua/custom/plugins/snacks.lua | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/lua/custom/plugins/snacks.lua b/lua/custom/plugins/snacks.lua index 76325a2567c..7018d1d766b 100644 --- a/lua/custom/plugins/snacks.lua +++ b/lua/custom/plugins/snacks.lua @@ -26,14 +26,20 @@ --FIX: postmerge-20260701: Dashboard not working vim.pack.add { 'https://github.com/folke/snacks.nvim' } require('snacks').setup { - -- dashboard = { enabled = true }, + dashboard = { + enabled = true, + sections = { + { section = 'header' }, + { section = 'keys', gap = 1, padding = 1 }, + }, + }, gitbrowse = { enabled = true }, lazygit = { enabled = true }, scratch = { enabled = true }, terminal = { enabled = true }, } --- vim.keymap.set('n', '=', function() Snacks.dashboard.open() end, { desc = 'Dashboard' }) +vim.keymap.set('n', '=', function() Snacks.dashboard.open() end, { desc = 'Dashboard' }) vim.keymap.set('n', 'gb', function() Snacks.gitbrowse.open() end, { desc = 'Open [G]it Repository in [B]rowser' }) vim.keymap.set('n', 'gl', function() Snacks.lazygit.open() end, { desc = 'Open [L]azy [G]it' }) vim.keymap.set('n', 'no', function() Snacks.scratch() end, { desc = '[O]pen [N]otepad' }) From ce1ed6710329907c7d6ec0e5958b1446eb6dca4c Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Wed, 1 Jul 2026 13:40:54 -0500 Subject: [PATCH 59/82] configure guttermakrs with vim pack --- doc/smoketest.md | 2 ++ lua/custom/plugins/guttermarks.lua | 5 +---- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/doc/smoketest.md b/doc/smoketest.md index 0dcf2209583..1dcea1b5e1d 100644 --- a/doc/smoketest.md +++ b/doc/smoketest.md @@ -16,6 +16,8 @@ A manual smoketest checklist to ensure features are working: - `` should open a terminal - [ ] VimTmuxNavigator - Should be able to navigate between nvim and tmux panes using ``, ``, ``, `` for each respective direction +- [ ] Guttermarks + - Marks (place a mark with `m`) should be displayed in the gutter by their character ### Themes - [ ] Catppuccin Theme diff --git a/lua/custom/plugins/guttermarks.lua b/lua/custom/plugins/guttermarks.lua index fbc79a63b27..8fa1d3d6d22 100644 --- a/lua/custom/plugins/guttermarks.lua +++ b/lua/custom/plugins/guttermarks.lua @@ -1,4 +1 @@ -return { - 'dimtion/guttermarks.nvim', - event = { 'BufReadPost', 'BufNewFile', 'BufWritePre', 'FileType' }, -} +vim.pack.add { "https://github.com/dimtion/guttermarks.nvim" } From c7972483e9290c6e0dde8ea6a4f68707a0f9d45c Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Wed, 1 Jul 2026 13:47:17 -0500 Subject: [PATCH 60/82] configure remote sshfs with vim pack --- doc/smoketest.md | 2 ++ lua/custom/plugins/remote-sshfs.lua | 13 ++++++++----- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/doc/smoketest.md b/doc/smoketest.md index 1dcea1b5e1d..1f2d0e737b1 100644 --- a/doc/smoketest.md +++ b/doc/smoketest.md @@ -16,6 +16,8 @@ A manual smoketest checklist to ensure features are working: - `` should open a terminal - [ ] VimTmuxNavigator - Should be able to navigate between nvim and tmux panes using ``, ``, ``, `` for each respective direction +- [ ] Remote SSHFS + - Should be able to remotely access a directory using the `:RemoteSSHFSConnect` command - [ ] Guttermarks - Marks (place a mark with `m`) should be displayed in the gutter by their character diff --git a/lua/custom/plugins/remote-sshfs.lua b/lua/custom/plugins/remote-sshfs.lua index dda4fd04b8c..a5937a2789a 100644 --- a/lua/custom/plugins/remote-sshfs.lua +++ b/lua/custom/plugins/remote-sshfs.lua @@ -1,8 +1,11 @@ -return { - 'nosduco/remote-sshfs.nvim', - dependencies = { 'nvim-telescope/telescope.nvim', 'nvim-lua/plenary.nvim' }, - opts = {}, -} +-- return { +-- 'nosduco/remote-sshfs.nvim', +-- dependencies = { 'nvim-telescope/telescope.nvim', 'nvim-lua/plenary.nvim' }, +-- opts = {}, +-- } + +vim.pack.add { "https://github.com/nosduco/remote-sshfs.nvim"} +require('remote-sshfs').setup() -- Usage: :RemoteSSHFSConnect @:/path/to/file -- Sometimes you have to force close, and that causes permission failed on reconnect. From 42a028a955a744943631a675c47af8cec763021d Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Wed, 1 Jul 2026 13:55:06 -0500 Subject: [PATCH 61/82] create smoketests for kickstart plugins --- doc/smoketest.md | 9 ++++++++- lua/custom/plugins/typescript-tools.lua | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/doc/smoketest.md b/doc/smoketest.md index 1f2d0e737b1..239737d0cf7 100644 --- a/doc/smoketest.md +++ b/doc/smoketest.md @@ -2,9 +2,16 @@ A manual smoketest checklist to ensure features are working: -## Plugin +## Plugins +### Kickstart +Kickstart plugins *that are enabled* should be working +- [ ] Autopairs + - Brackets, parenthesis, etc, should automatically close +- [ ] IndentLine + - Should see visual indentation guides for indented lines ### Custom +Custom plugins should be working - [ ] Oil - Shortcut `-` should open Oil - [ ] Snacks diff --git a/lua/custom/plugins/typescript-tools.lua b/lua/custom/plugins/typescript-tools.lua index ba7fb2046e7..4d2aea2fdbf 100644 --- a/lua/custom/plugins/typescript-tools.lua +++ b/lua/custom/plugins/typescript-tools.lua @@ -1,3 +1,4 @@ +--TODO: fix/postmerge: what does this do? is it needed? does the typescript-language-server cover this? return { 'pmizio/typescript-tools.nvim', dependencies = { 'nvim-lua/plenary.nvim', 'neovim/nvim-lspconfig' }, From 7f27bec8876b0acc8b8adc8a8b7098ea53b2bc3f Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Wed, 1 Jul 2026 14:07:23 -0500 Subject: [PATCH 62/82] include smoketests for settings --- doc/smoketest.md | 11 +++++++++++ init.lua | 13 +++++++------ 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/doc/smoketest.md b/doc/smoketest.md index 239737d0cf7..3ef6c8cedf6 100644 --- a/doc/smoketest.md +++ b/doc/smoketest.md @@ -31,3 +31,14 @@ Custom plugins should be working ### Themes - [ ] Catppuccin Theme - [ ] Rose Pine Theme + +## Settings +- [ ] Nerd fonts should be enabled +- [ ] Line numbers should be relative +- [ ] Virtual Diagnostic Lines (errors/warnings) should be beneath the applicable line +- [ ] Arrow key navigation should be disabled +- [ ] Should connect to godot server when running + +## LSP + +### Formatting diff --git a/init.lua b/init.lua index 3ba1301bc12..ff4b22c5407 100644 --- a/init.lua +++ b/init.lua @@ -194,8 +194,8 @@ do underline = { severity = { min = vim.diagnostic.severity.WARN } }, -- Can switch between these as you prefer - virtual_text = true, -- Text shows up at the end of the line - virtual_lines = false, -- Text shows up underneath the line, with virtual lines + virtual_text = false, -- Text shows up at the end of the line + virtual_lines = true, -- Text shows up underneath the line, with virtual lines -- Auto open the float, so you can easily read the errors when jumping with `[d` and `]d` jump = { @@ -220,10 +220,10 @@ do vim.keymap.set('t', '', '', { desc = 'Exit terminal mode' }) -- TIP: Disable arrow keys in normal mode - -- vim.keymap.set('n', '', 'echo "Use h to move!!"') - -- vim.keymap.set('n', '', 'echo "Use l to move!!"') - -- vim.keymap.set('n', '', 'echo "Use k to move!!"') - -- vim.keymap.set('n', '', 'echo "Use j to move!!"') + vim.keymap.set('n', '', 'echo "Use h to move!!"') + vim.keymap.set('n', '', 'echo "Use l to move!!"') + vim.keymap.set('n', '', 'echo "Use k to move!!"') + vim.keymap.set('n', '', 'echo "Use j to move!!"') -- Keybinds to make split navigation easier. -- Use CTRL+ to switch between windows @@ -372,6 +372,7 @@ do { 's', group = '[S]earch', mode = { 'n', 'v' } }, { 't', group = '[T]oggle' }, { 'h', group = 'Git [H]unk', mode = { 'n', 'v' } }, -- Enable gitsigns recommended keymaps first + -- TODO: LSP actions should be with the leader key { 'gr', group = 'LSP Actions', mode = { 'n' } }, }, } From d732fe7b59179560b6ff56ff6b0c228c186bacf0 Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Wed, 1 Jul 2026 14:27:27 -0500 Subject: [PATCH 63/82] reenable lsps for common filetypes --- doc/smoketest.md | 11 ++++++++++- init.lua | 11 ++++++++--- lua/custom/plugins/typescript-tools.lua | 8 ++------ 3 files changed, 20 insertions(+), 10 deletions(-) diff --git a/doc/smoketest.md b/doc/smoketest.md index 3ef6c8cedf6..1fadc999af8 100644 --- a/doc/smoketest.md +++ b/doc/smoketest.md @@ -41,4 +41,13 @@ Custom plugins should be working ## LSP -### Formatting +- [ ] LSP, autocomplete, and formatting should work for the following file types + - Javascript `.js`, `.jsx` + - Typescript `.ts`, `.tsx` + - Svelte `.svelte` + - C# `.cs` + - Lua `.lua` +- [ ] Mason should ensure that the following tools are installed + - Clangd + - Pyright + - Omnisharp diff --git a/init.lua b/init.lua index ff4b22c5407..5f988bce53f 100644 --- a/init.lua +++ b/init.lua @@ -372,7 +372,7 @@ do { 's', group = '[S]earch', mode = { 'n', 'v' } }, { 't', group = '[T]oggle' }, { 'h', group = 'Git [H]unk', mode = { 'n', 'v' } }, -- Enable gitsigns recommended keymaps first - -- TODO: LSP actions should be with the leader key + -- TODO: LSP actions (anything with `gr`) should be with the leader key { 'gr', group = 'LSP Actions', mode = { 'n' } }, }, } @@ -697,9 +697,9 @@ do -- See `:help lsp-config` for information about keys and how to configure ---@type table local servers = { - -- clangd = {}, + clangd = {}, -- gopls = {}, - -- pyright = {}, + pyright = {}, -- rust_analyzer = {}, -- -- Some languages (like typescript) have entire language plugins that can be useful: @@ -708,6 +708,8 @@ do -- But for many setups, the LSP (`ts_ls`) will work just fine -- ts_ls = {}, + omnisharp = {}, -- Used to format C# code + stylua = {}, -- Used to format Lua code -- Special Lua Config, as recommended by neovim help docs @@ -765,6 +767,9 @@ do local ensure_installed = vim.tbl_keys(servers or {}) vim.list_extend(ensure_installed, { -- You can add other tools here that you want Mason to install + 'clangd', + 'pyright', + 'omnisharp', }) require('mason-tool-installer').setup { ensure_installed = ensure_installed } diff --git a/lua/custom/plugins/typescript-tools.lua b/lua/custom/plugins/typescript-tools.lua index 4d2aea2fdbf..f35d3fdb200 100644 --- a/lua/custom/plugins/typescript-tools.lua +++ b/lua/custom/plugins/typescript-tools.lua @@ -1,6 +1,2 @@ ---TODO: fix/postmerge: what does this do? is it needed? does the typescript-language-server cover this? -return { - 'pmizio/typescript-tools.nvim', - dependencies = { 'nvim-lua/plenary.nvim', 'neovim/nvim-lspconfig' }, - opts = {}, -} +vim.pack.add { 'https://github.com/pmizio/typescript-tools.nvim' } +require('typescript-tools').setup {} From c5a6106f59a03661fa5201ea1b5fd518fbc4b7c8 Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Wed, 1 Jul 2026 14:39:30 -0500 Subject: [PATCH 64/82] enabme mini git and mini move configurations --- init.lua | 2 ++ lua/custom/plugins/mini.lua | 38 +++++++------------------------------ 2 files changed, 9 insertions(+), 31 deletions(-) diff --git a/init.lua b/init.lua index 5f988bce53f..f5318d28f48 100644 --- a/init.lua +++ b/init.lua @@ -420,6 +420,7 @@ do -- - va) - [V]isually select [A]round [)]paren -- - yiiq - [Y]ank [I]nside [I]+1 [Q]uote -- - ci' - [C]hange [I]nside [']quote + --FIX: mini.ai does not seem to be working correctly. Conflicts? require('mini.ai').setup { -- NOTE: Avoid conflicts with the built-in incremental selection mappings on Neovim>=0.12 (see `:help treesitter-incremental-selection`) mappings = { @@ -434,6 +435,7 @@ do -- - saiw) - [S]urround [A]dd [I]nner [W]ord [)]Paren -- - sd' - [S]urround [D]elete [']quotes -- - sr)' - [S]urround [R]eplace [)] ['] + --FIX: mini.surround does not seem to be working correctly. Conflicts? require('mini.surround').setup() -- Simple and easy statusline. diff --git a/lua/custom/plugins/mini.lua b/lua/custom/plugins/mini.lua index 11a72641b06..061127a8321 100644 --- a/lua/custom/plugins/mini.lua +++ b/lua/custom/plugins/mini.lua @@ -1,33 +1,9 @@ ---FIX: fix/postmerge-20260701: make sure this configuration applies to upstreams version of mini -return { - 'nvim-mini/mini.nvim', - config = function() - -- Better Around/Inside textobjects - -- - -- Examples: - -- - va) - [V]isually select [A]round [)]paren - -- - yinq - [Y]ank [I]nside [N]ext [Q]uote - -- - ci' - [C]hange [I]nside [']quote - require('mini.ai').setup { n_lines = 500 } +require('mini.git').setup() - -- Add/delete/replace surroundings (brackets, quotes, etc.) - -- - -- - saiw) - [S]urround [A]dd [I]nner [W]ord [)]Paren - -- - sd' - [S]urround [D]elete [']quotes - -- - sr)' - [S]urround [R]eplace [)] ['] - require('mini.surround').setup() +vim.keymap.set('n', 'ga', 'Git add -A', { desc = 'Git add all' }) +vim.keymap.set('n', 'gc', 'Git commit', { desc = 'Git commit' }) +vim.keymap.set('n', 'gs', 'Git status', { desc = 'Git status' }) +vim.keymap.set('n', 'gg', 'Git log --graph --oneline --all', { desc = 'Git graph' }) - require('mini.move').setup() - require('mini.git').setup() - - local statusline = require 'mini.statusline' - statusline.setup { use_icons = vim.g.have_nerd_font } - ---@diagnostic disable-next-line: duplicate-set-field - statusline.section_location = function() return '%2l:%-2v' end - - vim.keymap.set('n', 'ga', 'Git add -A', { desc = 'Git add all' }) - vim.keymap.set('n', 'gc', 'Git commit', { desc = 'Git commit' }) - vim.keymap.set('n', 'gs', 'Git status', { desc = 'Git status' }) - vim.keymap.set('n', 'gg', 'Git log --graph --oneline --all', { desc = 'Git graph' }) - end, -} +require('mini.move').setup() +-- usage: Alt = directional keys should move the line in normal mode From c7262b832c4cb724f2d894c0fb69d91dd84fd971 Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Wed, 1 Jul 2026 14:42:34 -0500 Subject: [PATCH 65/82] add git and notepad actions to whichkey --- init.lua | 2 ++ 1 file changed, 2 insertions(+) diff --git a/init.lua b/init.lua index f5318d28f48..ae53f0363b2 100644 --- a/init.lua +++ b/init.lua @@ -374,6 +374,8 @@ do { 'h', group = 'Git [H]unk', mode = { 'n', 'v' } }, -- Enable gitsigns recommended keymaps first -- TODO: LSP actions (anything with `gr`) should be with the leader key { 'gr', group = 'LSP Actions', mode = { 'n' } }, + { 'g', group = '[G]it' }, + { 'n', group = '[N]otepad' }, }, } From 665f1bd6a3d766c1d6ac0024216e64ac054b824d Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Wed, 1 Jul 2026 14:44:38 -0500 Subject: [PATCH 66/82] add which key records to smoketest --- doc/smoketest.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/doc/smoketest.md b/doc/smoketest.md index 1fadc999af8..6f0d3ef3ee5 100644 --- a/doc/smoketest.md +++ b/doc/smoketest.md @@ -3,6 +3,13 @@ A manual smoketest checklist to ensure features are working: ## Plugins +### Default +- [ ] Whichkey should have accurate keybindings + - g -> [G]it + - n -> [N]otepad + - s -> [S]earch + - t -> [T]oggle + ### Kickstart Kickstart plugins *that are enabled* should be working - [ ] Autopairs From 44e0f9468a66ebf5cd2cd98dbb6528b5418e9f9d Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Wed, 1 Jul 2026 14:47:14 -0500 Subject: [PATCH 67/82] clean up todos and commented code --- lua/custom/plugins/remote-sshfs.lua | 6 ------ lua/custom/plugins/snacks.lua | 24 ------------------------ 2 files changed, 30 deletions(-) diff --git a/lua/custom/plugins/remote-sshfs.lua b/lua/custom/plugins/remote-sshfs.lua index a5937a2789a..60abac3cbe3 100644 --- a/lua/custom/plugins/remote-sshfs.lua +++ b/lua/custom/plugins/remote-sshfs.lua @@ -1,9 +1,3 @@ --- return { --- 'nosduco/remote-sshfs.nvim', --- dependencies = { 'nvim-telescope/telescope.nvim', 'nvim-lua/plenary.nvim' }, --- opts = {}, --- } - vim.pack.add { "https://github.com/nosduco/remote-sshfs.nvim"} require('remote-sshfs').setup() diff --git a/lua/custom/plugins/snacks.lua b/lua/custom/plugins/snacks.lua index 7018d1d766b..8294405626f 100644 --- a/lua/custom/plugins/snacks.lua +++ b/lua/custom/plugins/snacks.lua @@ -1,29 +1,5 @@ --- return { --- 'folke/snacks.nvim', --- priority = 1000, --- lazy = false, --- ---@type snacks.Config --- opts = { --- dashboard = { enabled = true }, --- gitbrowse = { enabled = true }, --- lazygit = { enabled = true }, --- scratch = { enabled = true }, --- terminal = { enabled = true }, --- }, --- keys = { --- { '=', function() Snacks.dashboard.open() end, desc = 'Dashboard' }, --- { 'gb', function() Snacks.gitbrowse.open() end, desc = 'Open Git Repository in Browser' }, --- { 'gl', function() Snacks.lazygit.open() end, desc = 'Open Lazy Git' }, --- { 'no', function() Snacks.scratch() end, desc = 'Open Notepad' }, --- { 'ns', function() Snacks.scratch.select() end, desc = 'Select Note' }, --- { '', function() Snacks.terminal() end, desc = 'Open Terminal' }, --- }, --- } - --TODO: design a style and features for my dashboard (add opening parent directory with Oil) --TODO: determine a method for deleting scratches easily - ---FIX: postmerge-20260701: Dashboard not working vim.pack.add { 'https://github.com/folke/snacks.nvim' } require('snacks').setup { dashboard = { From 0c7103a269b0d5e965e1150392905a4e6701e9cc Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Wed, 1 Jul 2026 15:00:36 -0500 Subject: [PATCH 68/82] remove all commented and disabld filetypes --- init.lua | 1 - 1 file changed, 1 deletion(-) diff --git a/init.lua b/init.lua index 65bf54dd0cb..18b1f11dc57 100644 --- a/init.lua +++ b/init.lua @@ -806,7 +806,6 @@ do cs = true, --TODO: not getting any lsp completion for svelte files svelte = true, - -- python = true, } if enabled_filetypes[vim.bo[bufnr].filetype] then return { timeout_ms = 500 } From eb65659eee8985f4059567755e36da25e121dc5a Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Wed, 1 Jul 2026 15:02:19 -0500 Subject: [PATCH 69/82] add format on save to smoketest --- doc/smoketest.md | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/smoketest.md b/doc/smoketest.md index 6f0d3ef3ee5..d2ec964b011 100644 --- a/doc/smoketest.md +++ b/doc/smoketest.md @@ -45,6 +45,7 @@ Custom plugins should be working - [ ] Virtual Diagnostic Lines (errors/warnings) should be beneath the applicable line - [ ] Arrow key navigation should be disabled - [ ] Should connect to godot server when running +- [ ] Files should format on save ## LSP From 6c6003453aac4819d339e0517d145d63bcfef838 Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Wed, 1 Jul 2026 15:10:58 -0500 Subject: [PATCH 70/82] set rename keybinding --- init.lua | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/init.lua b/init.lua index 18b1f11dc57..25c52ddc31c 100644 --- a/init.lua +++ b/init.lua @@ -379,6 +379,7 @@ do { 'gr', group = 'LSP Actions', mode = { 'n' } }, { 'g', group = '[G]it' }, { 'n', group = '[N]otepad' }, + { 'r', group = '[R]e[N]ame' }, }, } @@ -650,9 +651,9 @@ do -- Rename the variable under your cursor. -- Most Language Servers support renaming across files, etc. - map('grn', vim.lsp.buf.rename, '[R]e[n]ame') - + map('rn', vim.lsp.buf.rename, '[R]e[n]ame') -- Execute a code action, usually your cursor needs to be on top of an error + -- or a suggestion from your LSP for this to activate. map('gra', vim.lsp.buf.code_action, '[G]oto Code [A]ction', { 'n', 'x' }) From 10b75f8e09e818a4dadb41d1f4c127b9dce517ca Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Wed, 1 Jul 2026 15:17:50 -0500 Subject: [PATCH 71/82] define lsp code group --- init.lua | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/init.lua b/init.lua index 25c52ddc31c..9e49f3d63d6 100644 --- a/init.lua +++ b/init.lua @@ -379,7 +379,9 @@ do { 'gr', group = 'LSP Actions', mode = { 'n' } }, { 'g', group = '[G]it' }, { 'n', group = '[N]otepad' }, - { 'r', group = '[R]e[N]ame' }, + { 'r', group = '[R]e[N]ame', mode = { 'n' } }, + { 'c', group = 'LSP: [C]ode', mode = { 'n' } }, + { 'cg', group = 'LSP: [G]oto', mode = { 'n' } }, }, } @@ -655,11 +657,11 @@ do -- Execute a code action, usually your cursor needs to be on top of an error -- or a suggestion from your LSP for this to activate. - map('gra', vim.lsp.buf.code_action, '[G]oto Code [A]ction', { 'n', 'x' }) + map('ca', vim.lsp.buf.code_action, '[C]ode [A]ction', { 'n', 'x' }) -- WARN: This is not Goto Definition, this is Goto Declaration. -- For example, in C this would take you to the header. - map('grD', vim.lsp.buf.declaration, '[G]oto [D]eclaration') + map('cgD', vim.lsp.buf.declaration, '[G]oto [D]eclaration') -- The following two autocommands are used to highlight references of the -- word under your cursor when your cursor rests there for a little while. From 3726a1656bc2020379df89997cc8c430af08b3f8 Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Wed, 1 Jul 2026 15:23:01 -0500 Subject: [PATCH 72/82] assign general lsp commands to correct group --- init.lua | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/init.lua b/init.lua index 9e49f3d63d6..a92063577fe 100644 --- a/init.lua +++ b/init.lua @@ -546,29 +546,29 @@ do local buf = event.buf -- Find references for the word under your cursor. - vim.keymap.set('n', 'grr', builtin.lsp_references, { buffer = buf, desc = '[G]oto [R]eferences' }) + vim.keymap.set('n', 'cgr', builtin.lsp_references, { buffer = buf, desc = '[G]oto [R]eferences' }) -- Jump to the implementation of the word under your cursor. -- Useful when your language has ways of declaring types without an actual implementation. - vim.keymap.set('n', 'gri', builtin.lsp_implementations, { buffer = buf, desc = '[G]oto [I]mplementation' }) + vim.keymap.set('n', 'cgi', builtin.lsp_implementations, { buffer = buf, desc = '[G]oto [I]mplementation' }) -- Jump to the definition of the word under your cursor. -- This is where a variable was first declared, or where a function is defined, etc. -- To jump back, press . - vim.keymap.set('n', 'grd', builtin.lsp_definitions, { buffer = buf, desc = '[G]oto [D]efinition' }) + vim.keymap.set('n', 'cgd', builtin.lsp_definitions, { buffer = buf, desc = '[G]oto [D]efinition' }) -- Fuzzy find all the symbols in your current document. -- Symbols are things like variables, functions, types, etc. - vim.keymap.set('n', 'gO', builtin.lsp_document_symbols, { buffer = buf, desc = 'Open Document Symbols' }) + vim.keymap.set('n', 'cgO', builtin.lsp_document_symbols, { buffer = buf, desc = 'Open Document Symbols' }) -- Fuzzy find all the symbols in your current workspace. -- Similar to document symbols, except searches over your entire project. - vim.keymap.set('n', 'gW', builtin.lsp_dynamic_workspace_symbols, { buffer = buf, desc = 'Open Workspace Symbols' }) + vim.keymap.set('n', 'cgW', builtin.lsp_dynamic_workspace_symbols, { buffer = buf, desc = 'Open Workspace Symbols' }) -- Jump to the type of the word under your cursor. -- Useful when you're not sure what type a variable is and you want to see -- the definition of its *type*, not where it was *defined*. - vim.keymap.set('n', 'grt', builtin.lsp_type_definitions, { buffer = buf, desc = '[G]oto [T]ype Definition' }) + vim.keymap.set('n', 'cgt', builtin.lsp_type_definitions, { buffer = buf, desc = '[G]oto [T]ype Definition' }) end, }) From 280c611a6aa8ab4e5c417b3b45b5f509e97a6d39 Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Wed, 1 Jul 2026 15:26:14 -0500 Subject: [PATCH 73/82] remove the old lsp group --- init.lua | 2 -- 1 file changed, 2 deletions(-) diff --git a/init.lua b/init.lua index a92063577fe..419eb22b082 100644 --- a/init.lua +++ b/init.lua @@ -375,8 +375,6 @@ do { 's', group = '[S]earch', mode = { 'n', 'v' } }, { 't', group = '[T]oggle' }, { 'h', group = 'Git [H]unk', mode = { 'n', 'v' } }, -- Enable gitsigns recommended keymaps first - -- TODO: LSP actions (anything with `gr`) should be with the leader key - { 'gr', group = 'LSP Actions', mode = { 'n' } }, { 'g', group = '[G]it' }, { 'n', group = '[N]otepad' }, { 'r', group = '[R]e[N]ame', mode = { 'n' } }, From 553b4c709927b85b78a717717bf5d04d1795e53d Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Wed, 1 Jul 2026 15:27:47 -0500 Subject: [PATCH 74/82] update the lsp code group in the smoketest --- doc/smoketest.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/doc/smoketest.md b/doc/smoketest.md index d2ec964b011..d78975ba53a 100644 --- a/doc/smoketest.md +++ b/doc/smoketest.md @@ -4,9 +4,11 @@ A manual smoketest checklist to ensure features are working: ## Plugins ### Default -- [ ] Whichkey should have accurate keybindings +- [ ] Whichkey groups should have accurate keybindings + - c -> LSP: [C]ode - g -> [G]it - n -> [N]otepad + - r -> [R]e[N]ame - s -> [S]earch - t -> [T]oggle From 4742f012e048e6bfe30a0e1291f2b5cb5cdd49b3 Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Wed, 1 Jul 2026 15:32:43 -0500 Subject: [PATCH 75/82] enable git signs plugin --- init.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/init.lua b/init.lua index 419eb22b082..a90db4a907c 100644 --- a/init.lua +++ b/init.lua @@ -999,7 +999,7 @@ do -- require 'kickstart.plugins.lint' require 'kickstart.plugins.autopairs' -- require 'kickstart.plugins.neo-tree' - -- require 'kickstart.plugins.gitsigns' -- adds gitsigns recommended keymaps + require 'kickstart.plugins.gitsigns' -- adds gitsigns recommended keymaps -- NOTE: You can add your own plugins, configuration, etc from `lua/custom/plugins/*.lua` -- From 1ed814a30d7cd25b2e70da72d73c26cb2d81a8c4 Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Wed, 1 Jul 2026 15:42:52 -0500 Subject: [PATCH 76/82] group git hunk commands with other git commands --- lua/kickstart/plugins/gitsigns.lua | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/lua/kickstart/plugins/gitsigns.lua b/lua/kickstart/plugins/gitsigns.lua index b7e40a87cfc..2bdae715af0 100644 --- a/lua/kickstart/plugins/gitsigns.lua +++ b/lua/kickstart/plugins/gitsigns.lua @@ -33,15 +33,14 @@ require('gitsigns').setup { -- Actions -- visual mode - map('v', 'hs', function() gitsigns.stage_hunk { vim.fn.line '.', vim.fn.line 'v' } end, { desc = 'git [s]tage hunk' }) - map('v', 'hr', function() gitsigns.reset_hunk { vim.fn.line '.', vim.fn.line 'v' } end, { desc = 'git [r]eset hunk' }) + map('v', 'ghs', function() gitsigns.stage_hunk { vim.fn.line '.', vim.fn.line 'v' } end, { desc = '[g]it [s]tage [h]unk' }) + map('v', 'ghr', function() gitsigns.reset_hunk { vim.fn.line '.', vim.fn.line 'v' } end, { desc = '[g]it [r]eset hunk' }) -- normal mode - map('n', 'hs', gitsigns.stage_hunk, { desc = 'git [s]tage hunk' }) - map('n', 'hr', gitsigns.reset_hunk, { desc = 'git [r]eset hunk' }) - map('n', 'hS', gitsigns.stage_buffer, { desc = 'git [S]tage buffer' }) - map('n', 'hR', gitsigns.reset_buffer, { desc = 'git [R]eset buffer' }) - map('n', 'hp', gitsigns.preview_hunk, { desc = 'git [p]review hunk' }) - map('n', 'hi', gitsigns.preview_hunk_inline, { desc = 'git preview hunk [i]nline' }) + map('n', 'ghs', gitsigns.stage_hunk, { desc = '[g]it [s]tage [h]unk' }) + map('n', 'ghr', gitsigns.reset_hunk, { desc = '[g]it [r]eset [h]unk' }) + map('n', 'ghS', gitsigns.stage_buffer, { desc = '[g]it [S]tage buffer' }) + map('n', 'ghR', gitsigns.reset_buffer, { desc = '[g]it [R]eset buffer' }) + map('n', 'ghp', gitsigns.preview_hunk_inline, { desc = '[g]it [p]review [h]unk inline' }) map('n', 'hb', function() gitsigns.blame_line { full = true } end, { desc = 'git [b]lame line' }) map('n', 'hd', gitsigns.diffthis, { desc = 'git [d]iff against index' }) map('n', 'hD', function() gitsigns.diffthis '@' end, { desc = 'git [D]iff against last commit' }) From f05defd848555e713a8df954ee3fb8d1bc22a0bd Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Wed, 1 Jul 2026 15:46:52 -0500 Subject: [PATCH 77/82] configure git blame and diff commands --- lua/custom/plugins/snacks.lua | 2 +- lua/kickstart/plugins/gitsigns.lua | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lua/custom/plugins/snacks.lua b/lua/custom/plugins/snacks.lua index 8294405626f..d14f66f0228 100644 --- a/lua/custom/plugins/snacks.lua +++ b/lua/custom/plugins/snacks.lua @@ -16,7 +16,7 @@ require('snacks').setup { } vim.keymap.set('n', '=', function() Snacks.dashboard.open() end, { desc = 'Dashboard' }) -vim.keymap.set('n', 'gb', function() Snacks.gitbrowse.open() end, { desc = 'Open [G]it Repository in [B]rowser' }) +vim.keymap.set('n', 'gr', function() Snacks.gitbrowse.open() end, { desc = 'Open [G]it [R]emore Repository in Browser' }) vim.keymap.set('n', 'gl', function() Snacks.lazygit.open() end, { desc = 'Open [L]azy [G]it' }) vim.keymap.set('n', 'no', function() Snacks.scratch() end, { desc = '[O]pen [N]otepad' }) vim.keymap.set('n', 'ns', function() Snacks.scratch.select() end, { desc = '[S]elect [N]ote' }) diff --git a/lua/kickstart/plugins/gitsigns.lua b/lua/kickstart/plugins/gitsigns.lua index 2bdae715af0..84e62290686 100644 --- a/lua/kickstart/plugins/gitsigns.lua +++ b/lua/kickstart/plugins/gitsigns.lua @@ -41,9 +41,9 @@ require('gitsigns').setup { map('n', 'ghS', gitsigns.stage_buffer, { desc = '[g]it [S]tage buffer' }) map('n', 'ghR', gitsigns.reset_buffer, { desc = '[g]it [R]eset buffer' }) map('n', 'ghp', gitsigns.preview_hunk_inline, { desc = '[g]it [p]review [h]unk inline' }) - map('n', 'hb', function() gitsigns.blame_line { full = true } end, { desc = 'git [b]lame line' }) - map('n', 'hd', gitsigns.diffthis, { desc = 'git [d]iff against index' }) - map('n', 'hD', function() gitsigns.diffthis '@' end, { desc = 'git [D]iff against last commit' }) + map('n', 'gb', function() gitsigns.blame_line { full = true } end, { desc = 'git [b]lame line' }) + map('n', 'gd', gitsigns.diffthis, { desc = 'git [d]iff against index' }) + map('n', 'gD', function() gitsigns.diffthis '@' end, { desc = 'git [D]iff against last commit' }) map('n', 'hQ', function() gitsigns.setqflist 'all' end, { desc = 'git hunk [Q]uickfix list (all files in repo)' }) map('n', 'hq', gitsigns.setqflist, { desc = 'git hunk [q]uickfix list (all changes in this file)' }) -- Toggles From 5302bb13dc0a6dd78a7a074e8e8d2ec87c35bd50 Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Wed, 1 Jul 2026 15:50:30 -0500 Subject: [PATCH 78/82] finalize git hotkeys --- lua/kickstart/plugins/gitsigns.lua | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lua/kickstart/plugins/gitsigns.lua b/lua/kickstart/plugins/gitsigns.lua index 84e62290686..7597c7056d9 100644 --- a/lua/kickstart/plugins/gitsigns.lua +++ b/lua/kickstart/plugins/gitsigns.lua @@ -44,13 +44,13 @@ require('gitsigns').setup { map('n', 'gb', function() gitsigns.blame_line { full = true } end, { desc = 'git [b]lame line' }) map('n', 'gd', gitsigns.diffthis, { desc = 'git [d]iff against index' }) map('n', 'gD', function() gitsigns.diffthis '@' end, { desc = 'git [D]iff against last commit' }) - map('n', 'hQ', function() gitsigns.setqflist 'all' end, { desc = 'git hunk [Q]uickfix list (all files in repo)' }) - map('n', 'hq', gitsigns.setqflist, { desc = 'git hunk [q]uickfix list (all changes in this file)' }) + map('n', 'gQ', function() gitsigns.setqflist 'all' end, { desc = 'git hunk [Q]uickfix list (all files in repo)' }) + map('n', 'gq', gitsigns.setqflist, { desc = 'git hunk [q]uickfix list (all changes in this file)' }) -- Toggles - map('n', 'tb', gitsigns.toggle_current_line_blame, { desc = '[T]oggle git show [b]lame line' }) - map('n', 'tw', gitsigns.toggle_word_diff, { desc = '[T]oggle git intra-line [w]ord diff' }) + map('n', 'gtb', gitsigns.toggle_current_line_blame, { desc = '[T]oggle git show [b]lame line' }) + map('n', 'gtw', gitsigns.toggle_word_diff, { desc = '[T]oggle git intra-line [w]ord diff' }) -- Text object - map({ 'o', 'x' }, 'ih', gitsigns.select_hunk) + map({ 'o', 'x' }, 'gih', gitsigns.select_hunk) end, } From e638a8ddf9e8aaaf842ca8520da4a921f123ee03 Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Wed, 1 Jul 2026 15:52:58 -0500 Subject: [PATCH 79/82] update git groups in which key --- init.lua | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/init.lua b/init.lua index a90db4a907c..6cf79469970 100644 --- a/init.lua +++ b/init.lua @@ -374,8 +374,9 @@ do spec = { { 's', group = '[S]earch', mode = { 'n', 'v' } }, { 't', group = '[T]oggle' }, - { 'h', group = 'Git [H]unk', mode = { 'n', 'v' } }, -- Enable gitsigns recommended keymaps first { 'g', group = '[G]it' }, + { 'gh', group = '[G]it [H]unk', mode = { 'n', 'v' } }, -- Enable gitsigns recommended keymaps first + { 'gt', group = '[G]it [T]oggle', mode = { 'n', 'v' } }, -- Enable gitsigns recommended keymaps first { 'n', group = '[N]otepad' }, { 'r', group = '[R]e[N]ame', mode = { 'n' } }, { 'c', group = 'LSP: [C]ode', mode = { 'n' } }, From 0ded7b55c8add724c9698a261ad4ea015f7a219b Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Wed, 1 Jul 2026 15:58:39 -0500 Subject: [PATCH 80/82] add git signs to the smoketest --- doc/smoketest.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/doc/smoketest.md b/doc/smoketest.md index d78975ba53a..b485602d4dc 100644 --- a/doc/smoketest.md +++ b/doc/smoketest.md @@ -16,6 +16,15 @@ A manual smoketest checklist to ensure features are working: Kickstart plugins *that are enabled* should be working - [ ] Autopairs - Brackets, parenthesis, etc, should automatically close +- [ ] Git Signs + - `ghs` should stage a hunk of changes + - `ghr` should reset a hunk of changes + - `ghS` should stage a buffer of changes + - `ghR` should reset a buffer of changes + - `ghp` should preview changes in a git hunk + - `gb` should show the git blame line + - `gd` should show the git diff since the index + - `gD` should show the git diff since the last commit - [ ] IndentLine - Should see visual indentation guides for indented lines @@ -25,7 +34,7 @@ Custom plugins should be working - Shortcut `-` should open Oil - [ ] Snacks - Should load dashboard at start, and `=` should open dashboard - - `gb` should open the remote git repository in a browser + - `gr` should open the remote git repository in a browser - `gl` should open lazy git - `no` should open a scratchpad - `ns` browses existing notes in scratchpad From 052277d2eb95d3c3193d737ec2a80740a1b4225b Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Wed, 1 Jul 2026 16:01:22 -0500 Subject: [PATCH 81/82] use full git blame window opposed to inline --- lua/kickstart/plugins/gitsigns.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/kickstart/plugins/gitsigns.lua b/lua/kickstart/plugins/gitsigns.lua index 7597c7056d9..c0f4adf24a1 100644 --- a/lua/kickstart/plugins/gitsigns.lua +++ b/lua/kickstart/plugins/gitsigns.lua @@ -41,7 +41,7 @@ require('gitsigns').setup { map('n', 'ghS', gitsigns.stage_buffer, { desc = '[g]it [S]tage buffer' }) map('n', 'ghR', gitsigns.reset_buffer, { desc = '[g]it [R]eset buffer' }) map('n', 'ghp', gitsigns.preview_hunk_inline, { desc = '[g]it [p]review [h]unk inline' }) - map('n', 'gb', function() gitsigns.blame_line { full = true } end, { desc = 'git [b]lame line' }) + map('n', 'gb', function() gitsigns.blame { full = true } end, { desc = 'git [b]lame' }) map('n', 'gd', gitsigns.diffthis, { desc = 'git [d]iff against index' }) map('n', 'gD', function() gitsigns.diffthis '@' end, { desc = 'git [D]iff against last commit' }) map('n', 'gQ', function() gitsigns.setqflist 'all' end, { desc = 'git hunk [Q]uickfix list (all files in repo)' }) From e80d59af54f74501f79a99554b08a713f684e96c Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Wed, 1 Jul 2026 16:05:03 -0500 Subject: [PATCH 82/82] remove redundant plugin loading for git signs --- init.lua | 1 - lua/kickstart/plugins/gitsigns.lua | 2 -- 2 files changed, 3 deletions(-) diff --git a/init.lua b/init.lua index 6cf79469970..92fd34900da 100644 --- a/init.lua +++ b/init.lua @@ -538,7 +538,6 @@ do -- Add Telescope-based LSP pickers when an LSP attaches to a buffer. -- If you later switch picker plugins, this is where to update these mappings. - --TODO: I should redo these mappings vim.api.nvim_create_autocmd('LspAttach', { group = vim.api.nvim_create_augroup('telescope-lsp-attach', { clear = true }), callback = function(event) diff --git a/lua/kickstart/plugins/gitsigns.lua b/lua/kickstart/plugins/gitsigns.lua index c0f4adf24a1..3ee1c5cf856 100644 --- a/lua/kickstart/plugins/gitsigns.lua +++ b/lua/kickstart/plugins/gitsigns.lua @@ -2,8 +2,6 @@ -- NOTE: gitsigns is already included in init.lua but contains only the base -- config. This will add also the recommended keymaps. -vim.pack.add { 'https://github.com/lewis6991/gitsigns.nvim' } - require('gitsigns').setup { on_attach = function(bufnr) local gitsigns = require 'gitsigns'