nix-mode
nix-mode copied to clipboard
Add shebang support for files using flakes.
Docs: https://nixos.org/manual/nix/stable/command-ref/new-cli/nix.html#shebang-interpreter
This is slightly more complicated than nix-shell detection due to the #!nix ...
not appearing directly after the shebang, so re-search-forward is used to find the matching line. This does mean that opening a huge file may slow down emacs while the search is running.
There are two mitigations for that:
-
nix-shebang will try to parse the nix-shell line first.
-
Users can keep
nix-shell -i ...
as the second line in your nix script. This won't affect the script at runtime (i.e. it will still use flakes) and keeps the old detection behavior. -
An option could be added to disable flake support entirely.