Editor Modes for Nix Files: Difference between revisions

imported>Fricklerhandwerk
No edit summary
imported>Figsoda
No edit summary
Line 1: Line 1:
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.  
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 l[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/rnix-lsp rnix-lsp]


== Emacs ==
== Emacs ==
Line 6: Line 11:
* [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]
* [https://github.com/nix-community/rnix-lsp rnix-lsp]
 
== Vim ==
== Vim ==
=== rnix-lsp ===
* [https://github.com/nix-community/rnix-lsp rnix-lsp on github]
instructions are in the readme


=== vim-addon-nix ===
=== vim-addon-nix ===
Line 45: Line 46:
   ];
   ];
}</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 ==