Skip to content

Harshal662/nixd

 
 

Repository files navigation

nixd

Nix language server

About

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:

  • Nixpkgs option support, for all option system (NixOS/home-manager/flake-parts).
  • 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.

Features Preview

Home-manager options auto-complete & goto declaration

hm-options-decl

See how to configure option system: https://github.com/nix-community/nixd/blob/main/docs/user-guide.md#options

Write a package using nixd

package

Native cross-file analysis

package

See how to configure the evaluator for cross-file analysis: https://github.com/nix-community/nixd/blob/main/docs/user-guide.md#evaluation

Handle evaluations exactly same as nix evaluator

infinte-recursion

Support *all* builtins

eval-builtin-json

And diagnostic:

eval-builtin-diagnostic

Resources

Tooling

We provide some extra tools based on our codebase.

nix-ast-dump

Used for dumping internal data structures in nix parser.

Demo: all-grammar.nix

About

Nix language server, based on nix libraries [maintainer=@inclyc]

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 96.3%
  • Nix 2.1%
  • Meson 1.1%
  • Other 0.5%