mirror of
https://github.com/itme-brain/nvim.git
synced 2026-05-08 07:00:13 -04:00
docs: update neovim setup overview
This commit is contained in:
parent
d41a3d64a7
commit
17bf7e4973
3 changed files with 40 additions and 17 deletions
48
README.md
48
README.md
|
|
@ -1,6 +1,6 @@
|
||||||
# Neovim Configuration
|
# Neovim Configuration
|
||||||
|
|
||||||
Portable Neovim configuration using lazy.nvim and native LSP (Neovim 0.11+, tested on 0.12.1).
|
Portable Neovim configuration using lazy.nvim, Mason-managed tooling, native LSP, Treesitter, Telescope, and DAP (Neovim 0.11+, tested on 0.12.1).
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
|
|
@ -19,16 +19,13 @@ git clone --recurse-submodules git@github.com:itme-brain/nixos.git
|
||||||
- **Native LSP** (`vim.lsp.config` / `vim.lsp.enable`) - no manual server list needed
|
- **Native LSP** (`vim.lsp.config` / `vim.lsp.enable`) - no manual server list needed
|
||||||
- **Smart LSP picker** (`<leader>css`) - auto-detects installed servers for current filetype
|
- **Smart LSP picker** (`<leader>css`) - auto-detects installed servers for current filetype
|
||||||
- **Neovim 0.12 compatible** - uses built-in `:lsp` commands and keeps legacy `:Lsp*` aliases working
|
- **Neovim 0.12 compatible** - uses built-in `:lsp` commands and keeps legacy `:Lsp*` aliases working
|
||||||
- **Portable** - works on NixOS (LSPs via extraPackages) or any system (LSPs via Mason)
|
- **Portable** - Mason is the source of truth for LSP servers, debug adapters, and tree-sitter-cli
|
||||||
- **Mason** - auto-disabled on NixOS, auto-installs essentials elsewhere
|
- **Treesitter** - starts via Neovim's native `vim.treesitter.start`
|
||||||
|
- **Debugging** - lazy-loaded `nvim-dap` stack with Mason-managed adapters
|
||||||
|
|
||||||
## LSP Setup
|
## LSP Setup
|
||||||
|
|
||||||
On NixOS, LSPs come from:
|
Mason installs the shared LSP baseline on every system:
|
||||||
- `neovim.extraPackages` (global essentials)
|
|
||||||
- Project `devShell` (project-specific)
|
|
||||||
|
|
||||||
On other systems, Mason auto-installs:
|
|
||||||
- `lua_ls` - Lua/Neovim
|
- `lua_ls` - Lua/Neovim
|
||||||
- `nil_ls` - Nix
|
- `nil_ls` - Nix
|
||||||
- `bashls` - Bash/Shell
|
- `bashls` - Bash/Shell
|
||||||
|
|
@ -39,9 +36,30 @@ On other systems, Mason auto-installs:
|
||||||
- `taplo` - TOML
|
- `taplo` - TOML
|
||||||
- `yamlls` - YAML
|
- `yamlls` - YAML
|
||||||
|
|
||||||
|
On NixOS, Mason-installed binaries require `nix-ld` so downloaded tools can execute. The NixOS module should provide `nix-ld`; Neovim itself does not keep a separate Nix-only LSP package list.
|
||||||
|
|
||||||
The smart picker (`<leader>css`) scans all lspconfig servers and shows only those with binaries installed.
|
The smart picker (`<leader>css`) scans all lspconfig servers and shows only those with binaries installed.
|
||||||
On Neovim 0.12+, start/stop/restart uses the built-in `:lsp` commands under the hood.
|
On Neovim 0.12+, start/stop/restart uses the built-in `:lsp` commands under the hood.
|
||||||
|
|
||||||
|
## Treesitter
|
||||||
|
|
||||||
|
Treesitter uses the current `nvim-treesitter` main branch API:
|
||||||
|
- Parsers are installed with `nvim-treesitter`
|
||||||
|
- Highlighting starts through `vim.treesitter.start`
|
||||||
|
- `tree-sitter-cli` is bootstrapped through Mason when needed for parser installs/updates
|
||||||
|
|
||||||
|
## Debugging
|
||||||
|
|
||||||
|
Debugging uses `nvim-dap`, `nvim-dap-ui`, `nvim-dap-virtual-text`, `telescope-dap.nvim`, and `mason-nvim-dap.nvim`.
|
||||||
|
|
||||||
|
The DAP stack is lazy-loaded. Normal startup does not load DAP; it loads only when a `:Dap...` command runs or a `<leader>d...` mapping is used.
|
||||||
|
|
||||||
|
Mason installs:
|
||||||
|
- `debugpy` - Python
|
||||||
|
- `codelldb` - C/C++/Rust
|
||||||
|
- `bash-debug-adapter` - Bash
|
||||||
|
- `js-debug-adapter` - JavaScript/TypeScript
|
||||||
|
|
||||||
## Key Bindings
|
## Key Bindings
|
||||||
|
|
||||||
| Key | Action |
|
| Key | Action |
|
||||||
|
|
@ -58,6 +76,17 @@ On Neovim 0.12+, start/stop/restart uses the built-in `:lsp` commands under the
|
||||||
| `<leader>bd` | Delete buffer |
|
| `<leader>bd` | Delete buffer |
|
||||||
| `<leader>/` | Live grep from git root |
|
| `<leader>/` | Live grep from git root |
|
||||||
| `<leader>ff` | Find files from git root |
|
| `<leader>ff` | Find files from git root |
|
||||||
|
| `<leader>db` | Toggle breakpoint |
|
||||||
|
| `<leader>dB` | Set conditional breakpoint |
|
||||||
|
| `<leader>dc` | Continue debugging |
|
||||||
|
| `<leader>di` | Step into |
|
||||||
|
| `<leader>do` | Step over |
|
||||||
|
| `<leader>dO` | Step out |
|
||||||
|
| `<leader>du` | Toggle debug UI |
|
||||||
|
| `<leader>dt` | Terminate debug session |
|
||||||
|
| `<leader>de` | Evaluate expression |
|
||||||
|
| `<leader>ds` | Debug configurations |
|
||||||
|
| `<leader>dS` | Debug breakpoints |
|
||||||
|
|
||||||
## Plugins
|
## Plugins
|
||||||
|
|
||||||
|
|
@ -66,6 +95,9 @@ On Neovim 0.12+, start/stop/restart uses the built-in `:lsp` commands under the
|
||||||
- **nvim-cmp** - completion
|
- **nvim-cmp** - completion
|
||||||
- **telescope.nvim** - fuzzy finder
|
- **telescope.nvim** - fuzzy finder
|
||||||
- **nvim-treesitter** - syntax highlighting
|
- **nvim-treesitter** - syntax highlighting
|
||||||
|
- **nvim-dap** - debug adapter client
|
||||||
|
- **nvim-dap-ui** - debugging UI panes
|
||||||
|
- **mason-nvim-dap.nvim** - Mason debug adapter integration
|
||||||
- **neo-tree.nvim** - file explorer
|
- **neo-tree.nvim** - file explorer
|
||||||
- **gitsigns.nvim** - git integration
|
- **gitsigns.nvim** - git integration
|
||||||
- **lualine.nvim** - statusline
|
- **lualine.nvim** - statusline
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@
|
||||||
"LuaSnip": { "branch": "master", "commit": "642b0c595e11608b4c18219e93b88d7637af27bc" },
|
"LuaSnip": { "branch": "master", "commit": "642b0c595e11608b4c18219e93b88d7637af27bc" },
|
||||||
"autoclose.nvim": { "branch": "main", "commit": "bafd0368716216fa6a7bb2a43ecd889b44efdb46" },
|
"autoclose.nvim": { "branch": "main", "commit": "bafd0368716216fa6a7bb2a43ecd889b44efdb46" },
|
||||||
"base16-vim": { "branch": "master", "commit": "3be3cd82cd31acfcab9a41bad853d9c68d30478d" },
|
"base16-vim": { "branch": "master", "commit": "3be3cd82cd31acfcab9a41bad853d9c68d30478d" },
|
||||||
"bitcoin-script-hints.nvim": { "branch": "main", "commit": "628badbb09a230e3838d863b21dcc07cdd2429bc" },
|
|
||||||
"bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" },
|
"bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" },
|
||||||
"cmp-nvim-lsp": { "branch": "main", "commit": "cbc7b02bb99fae35cb42f514762b89b5126651ef" },
|
"cmp-nvim-lsp": { "branch": "main", "commit": "cbc7b02bb99fae35cb42f514762b89b5126651ef" },
|
||||||
"cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
|
"cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
|
||||||
|
|
|
||||||
|
|
@ -435,12 +435,4 @@ return {
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
|
||||||
"taproot-wizards/bitcoin-script-hints.nvim",
|
|
||||||
dependencies = { "nvim-treesitter" },
|
|
||||||
config = function()
|
|
||||||
require("bitcoin-script-hints").setup()
|
|
||||||
end
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue