388 lines
14 KiB
Markdown
388 lines
14 KiB
Markdown
# 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 |
|