From 5443baa929f42cc3d2c944e8e5a14dfca3e857da Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Sat, 7 Feb 2026 10:52:54 -0600 Subject: [PATCH 01/42] 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/42] 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/42] 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/42] 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/42] 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/42] 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/42] 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/42] 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/42] 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/42] 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/42] 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/42] 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/42] 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/42] 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/42] 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/42] 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/42] 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/42] 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/42] 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/42] 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/42] 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/42] 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/42] 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/42] 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/42] 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/42] 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/42] 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/42] 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/42] 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/42] 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/42] 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/42] 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/42] 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/42] 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 6cc8fbfd773c2d2ef6d250267d4d00685d615e79 Mon Sep 17 00:00:00 2001 From: Nick Burt Date: Sat, 14 Mar 2026 21:43:43 -0500 Subject: [PATCH 35/42] 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 36/42] 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 37/42] 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 38/42] 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 39/42] 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 40/42] 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 41/42] 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 42/42] 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