An incremental analysis language server for the Nix language, providing IDE-like features for Nix development.
nil is a language server implementation for the Nix programming language, providing IDE-like features such as code completion, diagnostics, and formatting for Nix development. It acts as an incremental analysis assistant that helps developers write and maintain Nix expressions more efficiently by integrating with their preferred code editors.
Nix developers and system administrators who write Nix expressions and want enhanced editor support with features like real-time error checking and code suggestions.
Developers choose nil for its specialized focus on the Nix language, incremental analysis for performance, and broad editor compatibility through the Language Server Protocol, making it a dedicated tool for improving Nix development workflows.
NIx Language server, an incremental analysis assistant for writing in Nix.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides fast, real-time feedback by analyzing code changes incrementally, which enhances development speed for Nix expressions.
Officially supports Neovim, Vim, Emacs, VSCode, and Kate through standard LSP clients, ensuring integration with popular editing environments.
Allows seamless integration with external formatters like nixfmt, as shown in the configuration examples for various editors in the README.
Recognizes flake.nix files as project roots, improving project-aware analysis for modern Nix workflows that use flakes.
Enhances code readability by highlighting symbols based on meaning, though with noted performance considerations in Neovim.
There is a known performance problem with semantic highlighting in Neovim native LSP, as explicitly mentioned in the README, which can degrade the editing experience.
The README points to 'docs/features.md' as an incomplete list, indicating that documentation may be lacking or features are still under development.
Building from source requires a stable Rust toolchain and Nix installed, adding setup complexity compared to pre-packaged alternatives.
While configurable, it often requires manual tweaking of editor-specific settings, which might not suit users wanting immediate, no-fuss setup.