Editor Modes for Nix Files: Difference between revisions

imported>Jnoortheen
m added link to my project on vscode extension for Nix
The rnix repository was archived and is no longer maintained (can be seen be just clicking the link).
 
(12 intermediate revisions by 10 users not shown)
Line 1: Line 1:
This is a list of editor modes for Nix syntax.
{{Merge|Nix (language)}}
 
Nix language has decent syntax highlighting (SH) support among popular code editors, but refactoring/autocomplete is still rare. Below is a list of editor modes for Nix syntax.
 
== Language servers ==
Most popular editors have support for the [https://microsoft.github.io/language-server-protocol language server protocol], the following language servers can be used to provide features like completions and go-to-definition.
* [https://github.com/oxalica/nil nil]
* [https://github.com/nix-community/nixd nixd]
* [https://github.com/nix-community/rnix-lsp rnix-lsp] (deprecated)


== Emacs ==
== Emacs ==
Line 6: Line 14:
* [https://github.com/shlevy/nix-buffer nix-buffer]
* [https://github.com/shlevy/nix-buffer nix-buffer]
* [https://github.com/jwiegley/nix-update-el nix-update-el]
* [https://github.com/jwiegley/nix-update-el nix-update-el]
== Vim ==
== Vim ==
=== vim-addon-nix ===
=== vim-addon-nix ===
This plugin supports syntax highlighting and simple syntax and undeclared variable checking.
This plugin supports syntax highlighting and simple syntax and undeclared variable checking.
Line 39: Line 49:
   ];
   ];
}</syntaxHighlight>
}</syntaxHighlight>
== Neovim ==
In addition to the Vim plugins listed above, [https://github.com/nvim-treesitter/nvim-treesitter nvim-treesitter] also has support for nix.
<syntaxHighlight lang="nix">{
  programs.neovim = {
    configure = {
      packages.all.start = with pkgs.vimPlugins; [
        (nvim-treesitter.withPlugins (ps: [ ps.nix ]))
        # or
        nvim-treesitter.withAllGrammars # to install all grammars (including nix)
      ];
    };
  };
}
</syntaxHighlight>


== IntelliJ IDEA ==
== IntelliJ IDEA ==
Line 58: Line 84:
== nano ==
== nano ==
* [https://github.com/seitz/nanonix nanonix]
* [https://github.com/seitz/nanonix nanonix]
== micro ==
Syntax highlighting is built-in. LSP support is available through the [https://github.com/AndCake/micro-plugin-lsp <code>lsp</code> plugin].
== Codemirror ==
* [https://github.com/replit/codemirror-lang-nix codemirror-lang-nix]
== Zed ==
* [https://github.com/hasit/zed-nix zed-nix on github]
== Relevant pages ==
* [[Overview of the Nix Expression Language]]
* [[Nix Expression Language: Tips & Tricks]]
* [[Nix Expression Language: Learning resources|Learning resources]]
[[Category:Nix Language]]
[[Category:Guide]]
[[Category:Text Editor]]