kickstart.nvim/requirements.md

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 |