# Neovim Configuration Requirements ## Plugin Manager | Plugin | GitHub | |--------|--------| | lazy.nvim | https://github.com/folke/lazy.nvim | --- ## Completion | Plugin | GitHub | |--------|--------| | blink.cmp | https://github.com/saghen/blink.cmp | | LuaSnip | https://github.com/L3MON4D3/LuaSnip | | friendly-snippets | https://github.com/rafamadriz/friendly-snippets | | nvim-autopairs | https://github.com/windwp/nvim-autopairs | --- ## LSP | Plugin | GitHub | |--------|--------| | nvim-lspconfig | https://github.com/neovim/nvim-lspconfig | | mason.nvim | https://github.com/mason-org/mason.nvim | | mason-lspconfig.nvim | https://github.com/mason-org/mason-lspconfig.nvim | | mason-tool-installer.nvim | https://github.com/WhoIsSethDaniel/mason-tool-installer.nvim | | lazydev.nvim | https://github.com/folke/lazydev.nvim | | fidget.nvim | https://github.com/j-hui/fidget.nvim | | lua-language-server | https://github.com/LuaLS/lua-language-server | | basedpyright | https://github.com/DetachHead/basedpyright | | clangd | https://github.com/clangd/clangd | | typescript-language-server | https://github.com/typescript-language-server/typescript-language-server | | vscode-langservers-extracted (css-lsp + html-lsp) | https://github.com/hrsh7th/vscode-langservers-extracted | --- ## Formatting & Linting | Plugin | GitHub | |--------|--------| | conform.nvim | https://github.com/stevearc/conform.nvim | | nvim-lint | https://github.com/mfussenegger/nvim-lint | | stylua | https://github.com/JohnnyMorganz/StyLua | | prettier | https://github.com/prettier/prettier | | ruff | https://github.com/astral-sh/ruff | | clang-format | https://github.com/llvm/llvm-project | | markdownlint | https://github.com/DavidAnson/markdownlint-cli | --- ## Treesitter | Plugin | GitHub | |--------|--------| | nvim-treesitter | https://github.com/nvim-treesitter/nvim-treesitter | | nvim-treesitter-context | https://github.com/nvim-treesitter/nvim-treesitter-context | | nvim-treesitter-textobjects | https://github.com/nvim-treesitter/nvim-treesitter-textobjects | --- ## UI | Plugin | GitHub | |--------|--------| | gruvbox.nvim | https://github.com/ellisonleao/gruvbox.nvim | | lualine.nvim | https://github.com/nvim-lualine/lualine.nvim | | snacks.nvim | https://github.com/folke/snacks.nvim | | noice.nvim | https://github.com/folke/noice.nvim | | nvim-notify | https://github.com/rcarriga/nvim-notify | | nui.nvim | https://github.com/MunifTanjim/nui.nvim | | neo-tree.nvim | https://github.com/nvim-neo-tree/neo-tree.nvim | | which-key.nvim | https://github.com/folke/which-key.nvim | | indent-blankline.nvim | https://github.com/lukas-reineke/indent-blankline.nvim | | render-markdown.nvim | https://github.com/MeanderingProgrammer/render-markdown.nvim | | nvim-highlight-colors | https://github.com/brenoprata10/nvim-highlight-colors | | todo-comments.nvim | https://github.com/folke/todo-comments.nvim | | log-highlight.nvim | https://github.com/fei6409/log-highlight.nvim | | nvim-web-devicons | https://github.com/nvim-tree/nvim-web-devicons | --- ## Navigation | Plugin | GitHub | |--------|--------| | telescope.nvim | https://github.com/nvim-telescope/telescope.nvim | | telescope-fzf-native.nvim | https://github.com/nvim-telescope/telescope-fzf-native.nvim | | telescope-ui-select.nvim | https://github.com/nvim-telescope/telescope-ui-select.nvim | | smart-splits.nvim | https://github.com/mrjones2014/smart-splits.nvim | | treesj | https://github.com/Wansmer/treesj | --- ## Git | Plugin | GitHub | |--------|--------| | vim-fugitive | https://github.com/tpope/vim-fugitive | | gitsigns.nvim | https://github.com/lewis6991/gitsigns.nvim | | diffview.nvim | https://github.com/sindrets/diffview.nvim | --- ## Editing | Plugin | GitHub | |--------|--------| | nvim-surround | https://github.com/kylechui/nvim-surround | | mini.ai | https://github.com/echasnovski/mini.ai | | vim-sleuth | https://github.com/tpope/vim-sleuth | --- ## Terminal | Plugin | GitHub | |--------|--------| | toggleterm.nvim | https://github.com/akinsho/toggleterm.nvim | --- ## AI | Plugin | GitHub | |--------|--------| | copilot.lua | https://github.com/zbirenbaum/copilot.lua | | blink-cmp-copilot | https://github.com/giuxtaposition/blink-cmp-copilot | | CopilotChat.nvim | https://github.com/CopilotC-Nvim/CopilotChat.nvim | | codecompanion.nvim | https://github.com/olimorris/codecompanion.nvim | --- ## Debugging (DAP) | Plugin | GitHub | |--------|--------| | nvim-dap | https://github.com/mfussenegger/nvim-dap | | nvim-dap-ui | https://github.com/rcarriga/nvim-dap-ui | | nvim-nio | https://github.com/nvim-neotest/nvim-nio | | mason-nvim-dap.nvim | https://github.com/jay-babu/mason-nvim-dap.nvim | | nvim-dap-python | https://github.com/mfussenegger/nvim-dap-python | | nvim-dap-virtual-text | https://github.com/theHamsta/nvim-dap-virtual-text | | codelldb | https://github.com/vadimcn/codelldb | | debugpy | https://github.com/microsoft/debugpy | --- ## Language Specific | Plugin | GitHub | |--------|--------| | cmake-tools.nvim | https://github.com/Civitasv/cmake-tools.nvim | | Unreal-Nvim | https://github.com/PlayKigai/Unreal-Nvim | --- ## Shared Dependencies | Plugin | GitHub | |--------|--------| | plenary.nvim | https://github.com/nvim-lua/plenary.nvim | ## Completion | Plugin | GitHub | |--------|--------| | blink.cmp | https://github.com/saghen/blink.cmp | | LuaSnip | https://github.com/L3MON4D3/LuaSnip | | friendly-snippets | https://github.com/rafamadriz/friendly-snippets | | nvim-autopairs | https://github.com/windwp/nvim-autopairs | --- ## LSP | Plugin | GitHub | |--------|--------| | nvim-lspconfig | https://github.com/neovim/nvim-lspconfig | | mason.nvim | https://github.com/mason-org/mason.nvim | | mason-lspconfig.nvim | https://github.com/mason-org/mason-lspconfig.nvim | | mason-tool-installer.nvim | https://github.com/WhoIsSethDaniel/mason-tool-installer.nvim | | lazydev.nvim | https://github.com/folke/lazydev.nvim | | fidget.nvim | https://github.com/j-hui/fidget.nvim | ### LSP Servers (installed via Mason) | Server | Language | |--------|----------| | lua-language-server | Lua | | basedpyright | Python | | clangd | C / C++ | | typescript-language-server (ts_ls) | TypeScript / JavaScript | | css-lsp | CSS | | html-lsp | HTML | ### LSP Servers — Manual Install (No Mason) > Clone or download releases directly from GitHub, build/install per each repo's README, then either put the binary on your `PATH` or set the machine-specific path in `machine.json` for servers that use `lua/machine.lua` (`basedpyright` and `clangd` in the current config). | Server | GitHub | Notes | |--------|--------|-------| | lua-language-server | https://github.com/LuaLS/lua-language-server | Pre-built releases available; add `bin/` to PATH | | basedpyright | https://github.com/DetachHead/basedpyright | Install via `pip install basedpyright`; `lsp/basedpyright.lua` can also read the binary path from `machine.json` key `basedpyright` | | clangd | https://github.com/clangd/clangd | Pre-built releases available; part of LLVM toolchain; `lsp/clangd.lua` can also read the binary path from `machine.json` key `clangd` | | typescript-language-server | https://github.com/typescript-language-server/typescript-language-server | Requires Node.js; build from source with `npm install` | | css-lsp + html-lsp | https://github.com/hrsh7th/vscode-langservers-extracted | Both servers come from this single repo; requires Node.js | > `:LspRestart` currently does a stop-then-deferred-start cycle and may hit timing issues on some buffers or roots. If a restart looks incomplete, use `:LspStop` and then `:LspStart` separately. > `:LspToggleDiagnostic` switches `virtual_text.current_line` and underline state, but custom `virtual_text` settings may need to be re-applied manually after toggling. ### Formatters & Linters (installed via Mason) | Tool | Purpose | |------|---------| | stylua | Lua formatter | | prettier | JS / TS / CSS / HTML formatter | | ruff | Python formatter / import sorter | | clang-format | C / C++ formatter | ### Formatters & Linters — Manual Install (No Mason) > Same rule: build from source or grab a release binary, put it on `PATH`. `conform.nvim` and `nvim-lint` will pick it up automatically. | Tool | GitHub | Notes | |------|--------|-------| | stylua | https://github.com/JohnnyMorganz/StyLua | Pre-built releases available for all platforms | | prettier | https://github.com/prettier/prettier | Requires Node.js; build from source with `npm install` | | ruff | https://github.com/astral-sh/ruff | Requires Python; install with `pip install ruff` from source or release | | clang-format | https://github.com/llvm/llvm-project | Pre-built releases available; part of LLVM toolchain | | markdownlint | https://github.com/DavidAnson/markdownlint-cli | Requires Node.js; install with `npm install` so `nvim-lint` can lint Markdown | ### DAP Adapters (installed via Mason) | Adapter | GitHub | |---------|--------| | codelldb | https://github.com/vadimcn/codelldb | | debugpy | https://github.com/microsoft/debugpy | ### DAP Adapters — Manual Install (No Mason) > `lua/plugins/debug.lua` configures `mason-nvim-dap.nvim` to install both `codelldb` and `debugpy`. Without Mason, install from GitHub and point `nvim-dap`'s adapter config at the binary. | Adapter | GitHub | Notes | |---------|--------|-------| | codelldb | https://github.com/vadimcn/codelldb | Pre-built releases available; point `nvim-dap` at the adapter executable if needed | | debugpy (Python) | https://github.com/microsoft/debugpy | Install with `pip install debugpy`; with Mason, `nvim-dap-python` uses the Mason `debugpy` virtualenv first and falls back to the system Python if the Mason package is missing | > Verify that the Python interpreter selected for debugging matches the current workspace, especially when Mason is installed but the project expects a different virtualenv. --- ## Treesitter | Plugin | GitHub | |--------|--------| | nvim-treesitter | https://github.com/nvim-treesitter/nvim-treesitter | | nvim-treesitter-context | https://github.com/nvim-treesitter/nvim-treesitter-context | | nvim-treesitter-textobjects | https://github.com/nvim-treesitter/nvim-treesitter-textobjects | --- ## Formatting & Linting | Plugin | GitHub | |--------|--------| | conform.nvim | https://github.com/stevearc/conform.nvim | | nvim-lint | https://github.com/mfussenegger/nvim-lint | ### Formatters / Linters (installed via Mason) | Tool | Purpose | |------|---------| | stylua | Lua formatter | | prettier | JS / TS / CSS / HTML formatter | | ruff | Python formatter / import sorter | | clang-format | C / C++ formatter | --- ## UI | Plugin | GitHub | |--------|--------| | gruvbox.nvim | https://github.com/ellisonleao/gruvbox.nvim | | lualine.nvim | https://github.com/nvim-lualine/lualine.nvim | | snacks.nvim | https://github.com/folke/snacks.nvim | | noice.nvim | https://github.com/folke/noice.nvim | | nvim-notify | https://github.com/rcarriga/nvim-notify | | nui.nvim | https://github.com/MunifTanjim/nui.nvim | | neo-tree.nvim | https://github.com/nvim-neo-tree/neo-tree.nvim | | which-key.nvim | https://github.com/folke/which-key.nvim | | indent-blankline.nvim | https://github.com/lukas-reineke/indent-blankline.nvim | | render-markdown.nvim | https://github.com/MeanderingProgrammer/render-markdown.nvim | | nvim-highlight-colors | https://github.com/brenoprata10/nvim-highlight-colors | | todo-comments.nvim | https://github.com/folke/todo-comments.nvim | | log-highlight.nvim | https://github.com/fei6409/log-highlight.nvim | | nvim-web-devicons | https://github.com/nvim-tree/nvim-web-devicons | --- ## Navigation | Plugin | GitHub | |--------|--------| | telescope.nvim | https://github.com/nvim-telescope/telescope.nvim | | telescope-fzf-native.nvim | https://github.com/nvim-telescope/telescope-fzf-native.nvim | | telescope-ui-select.nvim | https://github.com/nvim-telescope/telescope-ui-select.nvim | | smart-splits.nvim | https://github.com/mrjones2014/smart-splits.nvim | | treesj | https://github.com/Wansmer/treesj | --- ## Git | Plugin | GitHub | |--------|--------| | vim-fugitive | https://github.com/tpope/vim-fugitive | | gitsigns.nvim | https://github.com/lewis6991/gitsigns.nvim | | diffview.nvim | https://github.com/sindrets/diffview.nvim | --- ## Editing | Plugin | GitHub | |--------|--------| | nvim-surround | https://github.com/kylechui/nvim-surround | | mini.ai | https://github.com/echasnovski/mini.ai | | vim-sleuth | https://github.com/tpope/vim-sleuth | --- ## Terminal | Plugin | GitHub | |--------|--------| | toggleterm.nvim | https://github.com/akinsho/toggleterm.nvim | --- ## AI | Plugin | GitHub | |--------|--------| | copilot.lua | https://github.com/zbirenbaum/copilot.lua | | blink-cmp-copilot | https://github.com/giuxtaposition/blink-cmp-copilot | | CopilotChat.nvim | https://github.com/CopilotC-Nvim/CopilotChat.nvim | | codecompanion.nvim | https://github.com/olimorris/codecompanion.nvim | --- ## Debugging (DAP) | Plugin | GitHub | |--------|--------| | nvim-dap | https://github.com/mfussenegger/nvim-dap | | nvim-dap-ui | https://github.com/rcarriga/nvim-dap-ui | | nvim-nio | https://github.com/nvim-neotest/nvim-nio | | mason-nvim-dap.nvim | https://github.com/jay-babu/mason-nvim-dap.nvim | | nvim-dap-python | https://github.com/mfussenegger/nvim-dap-python | | nvim-dap-virtual-text | https://github.com/theHamsta/nvim-dap-virtual-text | > Current DAP setup auto-installs `codelldb` and `debugpy` through Mason; Python debugging is wired through `nvim-dap-python`, which prefers Mason's `debugpy` environment and falls back to the system Python when the Mason package is unavailable. --- ## Language Specific | Plugin | GitHub | |--------|--------| | cmake-tools.nvim | https://github.com/Civitasv/cmake-tools.nvim | | Unreal-Nvim | https://github.com/PlayKigai/Unreal-Nvim | > `lua/plugins/unreal.lua` now auto-initializes `Unreal-Nvim` when opening `*.uproject`, `*.uplugin`, `*.Build.cs`, or `*.Target.cs` files, and also when opening C/C++ files inside a working directory that contains a `.uproject`. This covers the common Unreal entry points, but edge cases may still need a manual `:Unreal` command. --- ## Shared Dependencies | Plugin | GitHub | |--------|--------| | plenary.nvim | https://github.com/nvim-lua/plenary.nvim |