This is a Nix language server that directly uses (i.e., is linked with) the official Nix library (https://github.com/NixOS/nix).
Some notable features provided by linking with the Nix library include:
- Diagnostics and evaluation that produce identical results as the real Nix command.
- Shared eval caches (flake, file) with your system's Nix.
- Native support for cross-file analysis.
- Precise Nix language support. We do not maintain "yet another parser & evaluator".
- Support for built-ins, including Nix plugins.
This project is working in progress, and does not vendored dedicated derivation yet. However, if you'd like to help us improve this work, please enter the devShell, and build this project via meson.
Here are a short snippet used in our CI, should works fine and reproducible in your environment.
meson setup build/ --buildtype=${{ matrix.buildtype }} -Db_sanitize=${{ matrix.sanitizer }} -Db_ndebug=${{ matrix.ndebug }}
meson compile -C build
meson test -C build
We do not provide a custom editor extension or plugins now, configuring nixd like other nix lsp should work out of box.
We provide some extra tools based on our codebase.
Used for dumping internal data structures in nix parser.
Demo: all-grammar.nix
- Developers' Manual (internal design, contributing): Developers' Manual
- Project matrix room: https://matrix.to/#/#nixd:matrix.org