ctrl+shift+p filters: :st2 :st3 :win :osx :linux
浏览

Nix

作者: wmertens 全部

Sublime Text Nix 语法高亮

详细信息

  • 2.3.2
  • github.com
  • github.com
  • 7年前
  • 1小时前
  • 10年前

安装次数

  • 总数 4K
  • Win 375
  • Mac 1K
  • Linux 2K
8月6日 8月5日 8月4日 8月3日 8月2日 8月1日 7月31日 7月30日 7月29日 7月28日 7月27日 7月26日 7月25日 7月24日 7月23日 7月22日 7月21日 7月20日 7月19日 7月18日 7月17日 7月16日 7月15日 7月14日 7月13日 7月12日 7月11日 7月10日 7月9日 7月8日 7月7日 7月6日 7月5日 7月4日 7月3日 7月2日 7月1日 6月30日 6月29日 6月28日 6月27日 6月26日 6月25日 6月24日 6月23日 6月22日
Windows 0 0 0 0 1 1 2 0 0 1 0 0 0 0 1 0 1 1 0 0 0 1 3 0 0 0 0 0 0 1 0 0 0 1 1 0 1 2 0 0 0 0 1 0 0 0
Mac 1 1 0 1 2 0 1 0 1 0 0 2 1 0 2 0 1 1 1 1 0 3 1 1 2 0 0 3 1 1 0 1 0 1 2 0 1 0 1 0 1 2 2 1 1 0
Linux 4 1 2 3 0 6 2 6 2 1 8 0 1 3 3 2 20 1 4 11 2 5 5 18 1 2 2 2 11 10 0 1 6 0 1 2 2 4 4 4 0 2 2 9 5 2

README文件

源代码
raw.githubusercontent.com

sublime-nix

Nix 适用于 Sublime Text 的语法高亮。

这个语法尝试尽可能完整,并将非法代码标记出来。

不幸的是,Sublime Text 中的语法高亮器没有实现完整的状态机,因此这是实际 Nix 所允许的语法的近似。它稍微宽松一些,会在某些角落案例中将其标记为非法。

具体来说,它必须猜测 { 是否开始属性或函数调用,并且无法预览下一行,因此它允许两者直至确定。然而,这意味着在列0的表达式结束条件可以与 , 或 } 匹配,这会破坏语法高亮。一旦确定其中一个,则此规则不再适用。因此,这仅适用于空 {} 和列0的逗号优先函数调用,不是一个大问题。

针对 nixpkgs 代码和 Nix 测试套件进行了测试,似乎渲染良好。

这里有一些很有趣的代码,通过递归到具有匹配表达式结束条件的规则来近似正确的解析器。