Lua configuration for Neovim, based on kickstart.nvim.
This configuration targets the stable Neovim 0.12.5 release on Linux x86-64
and macOS (Apple Silicon or Intel). The bootstrap detects the platform, installs
the matching checksum-verified official Neovim archive under
~/.local/share/nvim-bootstrap, links it as ~/.local/bin/nvim, synchronizes
the locked plugins, installs the configured Mason tools, and runs the smoke
suite:
scripts/bootstrapMake sure ~/.local/bin appears before /usr/local/bin in PATH. The script
will not replace an existing non-symlink at ~/.local/bin/nvim.
The following base tools must already be supplied by the operating system:
- Git, curl, tar, gzip, unzip, and SHA-256 utilities
- A C/C++ build toolchain
- Node.js and npm
fd(fd-findon Debian/Devuan)- ripgrep
- A clipboard provider such as
xclipon Linux (pbcopyis built into macOS)
On Debian or Devuan, the bootstrap prints the appropriate apt command if a
required base tool is missing. On macOS, install the Xcode Command Line Tools,
Node.js/npm, and ripgrep first. The script uses sha256sum on Linux or built-in
shasum on macOS, clears macOS quarantine metadata before extracting Neovim,
and does not require GNU timeout. The clipboard provider remains optional for
headless startup but is needed for system clipboard integration.
Mason owns the editor-specific tools, including language servers, Ruff,
goimports, jq, SuperHTML, Terraform, Terraform LS, and Tree-sitter CLI.
The Tree-sitter CLI must be at least 0.26.1; the current Mason registry installs
0.26.13. It is deliberately not installed through npm, following
nvim-treesitter's requirements.
The Neovim and fd versions and per-platform checksums in scripts/bootstrap
are intentionally pinned. Update each asset and checksum together when moving
to a newer stable release. See the
official Neovim releases and
official fd releases.
Test the current plugin installation:
scripts/check-nvimThe suite verifies the exact Neovim version, plain startup, eager loading of all
plugins, and representative Lua, JSON, Markdown, Go, Go-template, HTML, CSS,
Python, YAML, and Terraform buffers. It also verifies HTML/CSS language-server
attachment, formatting, and diagnostics, plus template-safe HTML formatting.
For supported filetypes it verifies that Tree-sitter highlighting actually
starts. Error output is treated as failure even when Neovim exits with status
0. Logs and a health report are saved under .nvim-debug/latest/.
Reproduce a day-0 install without modifying the live Neovim data directory:
scripts/check-nvim --cleanClean mode copies the config and lockfile into temporary XDG directories,
installs the locked plugins, Mason tools, and Tree-sitter parsers, runs the same
checks, and removes the temporary installation. Diagnostic logs remain under
.nvim-debug/latest/.