Nix
Nix syntax highlighting for Sublime Text
Details
Installs
- Total 5K
- Win 485
- Mac 2K
- Linux 3K
Jul 1 | Jun 30 | Jun 29 | Jun 28 | Jun 27 | Jun 26 | Jun 25 | Jun 24 | Jun 23 | Jun 22 | Jun 21 | Jun 20 | Jun 19 | Jun 18 | Jun 17 | Jun 16 | Jun 15 | Jun 14 | Jun 13 | Jun 12 | Jun 11 | Jun 10 | Jun 9 | Jun 8 | Jun 7 | Jun 6 | Jun 5 | Jun 4 | Jun 3 | Jun 2 | Jun 1 | May 31 | May 30 | May 29 | May 28 | May 27 | May 26 | May 25 | May 24 | May 23 | May 22 | May 21 | May 20 | May 19 | May 18 | May 17 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | 1 | 0 | 0 | 0 | 1 | 0 | 2 | 2 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 2 | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 0 |
Mac | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 3 | 0 | 1 | 2 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 2 | 0 | 2 | 2 | 2 | 0 | 0 | 2 | 1 | 2 | 1 | 1 | 2 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | 1 | 4 | 3 |
Linux | 0 | 0 | 6 | 5 | 0 | 0 | 0 | 4 | 0 | 0 | 3 | 1 | 0 | 1 | 1 | 1 | 0 | 2 | 2 | 2 | 3 | 1 | 4 | 1 | 3 | 3 | 1 | 1 | 0 | 0 | 1 | 2 | 1 | 2 | 3 | 2 | 1 | 0 | 2 | 1 | 1 | 0 | 1 | 1 | 2 | 0 |
Readme
- Source
- raw.githubusercontent.com
sublime-nix
Nix syntax highlighting for Sublime Text.
This syntax tries to be complete, and marks illegal code as such.
Unfortunately, the syntax highlighter in Sublime Text does not implement a full state machine and therefore this is an approximation of the actual syntax Nix allows. It's a bit looser and will mark things as illegal in corner cases.
Specifically, it has to guess whether { starts an attribute set or a function call, and it can't look ahead to the next lines, so it allows both until it's sure. However, this means that on column 0 the expression end-condition can match on a , or } and this breaks the syntax highlighting. As soon as it is sure of one or the other, this no longer applies. So this is only applicable to empty {} and comma-first function calls on column 0, not a big problem.
Tested against the nixpkgs code and the Nix test suite, it seems to render those ok.
There is some fun code in here, approximating a proper parser by recursing into rules with end conditions matching end of expression.