14 KiB
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
PATHor set the machine-specific path inmachine.jsonfor servers that uselua/machine.lua(basedpyrightandclangdin 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 |
:LspRestartcurrently does a stop-then-deferred-start cycle and may hit timing issues on some buffers or roots. If a restart looks incomplete, use:LspStopand then:LspStartseparately.
:LspToggleDiagnosticswitchesvirtual_text.current_lineand underline state, but customvirtual_textsettings 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.nvimandnvim-lintwill 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.luaconfiguresmason-nvim-dap.nvimto install bothcodelldbanddebugpy. Without Mason, install from GitHub and pointnvim-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
codelldbanddebugpythrough Mason; Python debugging is wired throughnvim-dap-python, which prefers Mason'sdebugpyenvironment 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.luanow auto-initializesUnreal-Nvimwhen opening*.uproject,*.uplugin,*.Build.cs, or*.Target.csfiles, 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:Unrealcommand.
Shared Dependencies
| Plugin | GitHub |
|---|---|
| plenary.nvim | https://github.com/nvim-lua/plenary.nvim |