Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
5443baa
update name of lua language server dependency
nbur4556 Feb 7, 2026
ba05b1f
turn on nerd fonts
nbur4556 Feb 9, 2026
4e33d2f
enable relative numbers
nbur4556 Feb 9, 2026
1d5ec0d
disable arrow keys
nbur4556 Feb 9, 2026
8562753
enable necessary language servers requested by configuration
nbur4556 Feb 9, 2026
c2a02f7
remove not found typescript language server
nbur4556 Feb 9, 2026
01669b4
use the ensure installed list to enable the typescript language server
nbur4556 Feb 9, 2026
f4cf583
enable prettier for javascript files
nbur4556 Feb 9, 2026
6040137
enable rust fuzzy finder for autocompletion
nbur4556 Feb 9, 2026
40d0364
install and set default theme to catppuccin
nbur4556 Feb 9, 2026
8a19e9c
install and enable rose pine as default
nbur4556 Feb 9, 2026
0f8b81f
enable mini starter
nbur4556 Feb 9, 2026
eec5de7
enable the custom plugin directory
nbur4556 Feb 9, 2026
4ca32d3
install snacks with dashboard enabled
nbur4556 Feb 10, 2026
44ec0be
load snacks types
nbur4556 Feb 10, 2026
b14cb68
install and configure keybind for lazygit
nbur4556 Feb 10, 2026
1387bb1
enable and configure scratch and git browse
nbur4556 Feb 10, 2026
feebbd7
enable and configure terminal
nbur4556 Feb 10, 2026
8bb87f4
add which-key categories for new keybinds
nbur4556 Feb 10, 2026
0181f6c
install and setup oil
nbur4556 Feb 10, 2026
05716ef
install vim tmux navigator
nbur4556 Feb 10, 2026
c78652d
enable kickstart autopairs plugin
nbur4556 Feb 10, 2026
b47ada1
enable the indent lines kickstart plugin
nbur4556 Feb 10, 2026
8412e3a
ensure omnisharp is installed
nbur4556 Feb 10, 2026
28df096
move mini to its own file
nbur4556 Feb 10, 2026
e6714ec
enable mini move
nbur4556 Feb 10, 2026
7304ca7
enabled mini git
nbur4556 Feb 10, 2026
488f73d
enable mini git and configure keybindings
nbur4556 Feb 10, 2026
ccf7f95
add git graph keybinding
nbur4556 Feb 10, 2026
86d7e7d
Merge pull request #12 from nbur4556/snacks
nbur4556 Feb 10, 2026
6a0a68f
Merge pull request #11 from nbur4556/primary-plugins
nbur4556 Feb 10, 2026
1845e71
Merge pull request #13 from nbur4556/mini
nbur4556 Feb 10, 2026
b3aff09
initialize typescript and typescriptreact files for formating
nbur4556 Feb 11, 2026
71005c5
replace tsserver with typescript-tools plugin
nbur4556 Feb 11, 2026
a7c5c96
Merge pull request #14 from nbur4556/typescript-lsp
nbur4556 Feb 11, 2026
b18dfa2
run a godot server when in a godot project
nbur4556 Feb 11, 2026
8409669
fix accurate check if in godot directory
nbur4556 Feb 11, 2026
0800f2d
remove logging logic
nbur4556 Feb 11, 2026
236f01e
Merge branch 'main' into upstream
nbur4556 Mar 15, 2026
f481489
Merge pull request #15 from nbur4556/upstream
nbur4556 Mar 15, 2026
6cc8fbf
remove the omnisharp language server
nbur4556 Mar 15, 2026
c47ffa3
use crashdummyy registry in mason for access to roslyn lsp
nbur4556 Mar 15, 2026
ebc8285
initial roslyn configuration
nbur4556 Mar 15, 2026
00bea79
ensure roslyn installed
nbur4556 Mar 15, 2026
7517fb4
replace roslyn with omnisharp
nbur4556 Mar 15, 2026
341741f
remove custom roslyn plugin
nbur4556 Mar 15, 2026
65e93fd
accept autocomplete suggestions with tab
nbur4556 Mar 15, 2026
b8c00e8
remove todo requiring formatting for omnisharp. already complete
nbur4556 Mar 15, 2026
e5b97b0
Merge pull request #16 from nbur4556/fix-c-sharp
nbur4556 Mar 15, 2026
17be73f
Merge branch 'main' into godot-server
nbur4556 Mar 15, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
91 changes: 39 additions & 52 deletions init.lua
Original file line number Diff line number Diff line change
Expand Up @@ -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`
Expand All @@ -102,7 +102,7 @@ vim.g.have_nerd_font = false
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'
Expand Down Expand Up @@ -198,10 +198,10 @@ vim.keymap.set('n', '<leader>q', vim.diagnostic.setloclist, { desc = 'Open diagn
vim.keymap.set('t', '<Esc><Esc>', '<C-\\><C-n>', { desc = 'Exit terminal mode' })

-- TIP: Disable arrow keys in normal mode
-- vim.keymap.set('n', '<left>', '<cmd>echo "Use h to move!!"<CR>')
-- vim.keymap.set('n', '<right>', '<cmd>echo "Use l to move!!"<CR>')
-- vim.keymap.set('n', '<up>', '<cmd>echo "Use k to move!!"<CR>')
-- vim.keymap.set('n', '<down>', '<cmd>echo "Use j to move!!"<CR>')
vim.keymap.set('n', '<left>', '<cmd>echo "Use h to move!!"<CR>')
vim.keymap.set('n', '<right>', '<cmd>echo "Use l to move!!"<CR>')
vim.keymap.set('n', '<up>', '<cmd>echo "Use k to move!!"<CR>')
vim.keymap.set('n', '<down>', '<cmd>echo "Use j to move!!"<CR>')

-- Keybinds to make split navigation easier.
-- Use CTRL+<hjkl> to switch between windows
Expand Down Expand Up @@ -320,6 +320,8 @@ require('lazy').setup({
{ '<leader>t', group = '[T]oggle' },
{ '<leader>h', group = 'Git [H]unk', mode = { 'n', 'v' } }, -- Enable gitsigns recommended keymaps first
{ 'gr', group = 'LSP Actions', mode = { 'n' } },
{ '<leader>g', group = '[G]it' },
{ '<leader>n', group = '[N]otepad' },
},
},
},
Expand Down Expand Up @@ -401,6 +403,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`
Expand Down Expand Up @@ -492,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',
Expand Down Expand Up @@ -600,9 +608,9 @@ require('lazy').setup({
-- See `:help lsp-config` for information about keys and how to configure
---@type table<string, vim.lsp.Config>
local servers = {
-- clangd = {},
clangd = {},
-- gopls = {},
-- pyright = {},
pyright = {},
-- rust_analyzer = {},
--
-- Some languages (like typescript) have entire language plugins that can be useful:
Expand All @@ -611,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
Expand Down Expand Up @@ -653,6 +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
'omnisharp',
})

require('mason-tool-installer').setup { ensure_installed = ensure_installed }
Expand Down Expand Up @@ -700,7 +711,9 @@ 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 },
typescript = { 'prettierd', 'prettier', stop_after_first = true },
typescriptreact = { 'prettierd', 'prettier', stop_after_first = true },
},
},
},
Expand All @@ -724,6 +737,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',
Expand Down Expand Up @@ -760,7 +774,7 @@ require('lazy').setup({
-- <c-k>: 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
Expand Down Expand Up @@ -791,13 +805,16 @@ 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 },
},
},

-- 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.
Expand All @@ -816,7 +833,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 'rose-pine'
end,
},

Expand All @@ -831,42 +848,6 @@ require('lazy').setup({
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
end,
},

{ -- Highlight, edit, and navigate code
'nvim-treesitter/nvim-treesitter',
lazy = false,
Expand Down Expand Up @@ -910,17 +891,17 @@ 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.autopairs',
-- require 'kickstart.plugins.neo-tree',
-- require 'kickstart.plugins.gitsigns', -- adds gitsigns recommended keymaps

-- NOTE: The import below can automatically add your own plugins, configuration, etc from `lua/custom/plugins/*.lua`
-- 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!
Expand Down Expand Up @@ -948,5 +929,11 @@ 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`
-- vim: ts=2 sts=2 sw=2 et
32 changes: 32 additions & 0 deletions lua/custom/plugins/mini.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
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()

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', '<leader>ga', '<cmd>Git add -A<CR>', { desc = 'Git add all' })
vim.keymap.set('n', '<leader>gc', '<cmd>Git commit<CR>', { desc = 'Git commit' })
vim.keymap.set('n', '<leader>gs', '<cmd>Git stash<CR>', { desc = 'Git stash' })
vim.keymap.set('n', '<leader>gg', '<cmd>Git log --graph --oneline --all<CR>', { desc = 'Git graph' })
end,
}
7 changes: 7 additions & 0 deletions lua/custom/plugins/oil.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
return {
'stevearc/oil.nvim',
config = function()
require('oil').setup()
vim.keymap.set('n', '-', '<CMD>Oil<CR>', { desc = 'Open parent directory' })
end,
}
24 changes: 24 additions & 0 deletions lua/custom/plugins/snacks.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
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 = {
{ '<leader>=', function() Snacks.dashboard.open() end, desc = 'Dashboard' },
{ '<leader>gb', function() Snacks.gitbrowse.open() end, desc = 'Open Git Repository in Browser' },
{ '<leader>gl', function() Snacks.lazygit.open() end, desc = 'Open Lazy Git' },
{ '<leader>no', function() Snacks.scratch() end, desc = 'Open Notepad' },
{ '<leader>ns', function() Snacks.scratch.select() end, desc = 'Select Note' },
{ '<leader><C-t>', function() Snacks.terminal() end, desc = 'Open Terminal' },
},
}
5 changes: 5 additions & 0 deletions lua/custom/plugins/typescript-tools.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
return {
'pmizio/typescript-tools.nvim',
dependencies = { 'nvim-lua/plenary.nvim', 'neovim/nvim-lspconfig' },
opts = {},
}
3 changes: 3 additions & 0 deletions lua/custom/plugins/vimtmuxnavigator.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
return {
'christoomey/vim-tmux-navigator',
}
Loading