]> git.lizzy.rs Git - micro.git/commitdiff
Add nix language syntax (#2024)
authorvandervoortj <64353639+vandervoortj@users.noreply.github.com>
Tue, 15 Jun 2021 21:56:31 +0000 (17:56 -0400)
committerGitHub <noreply@github.com>
Tue, 15 Jun 2021 21:56:31 +0000 (17:56 -0400)
* Create nix.yaml

Add nix language syntax

* Add nix-linter

runtime/plugins/linter/linter.lua
runtime/syntax/nix.yaml [new file with mode: 0644]

index 50465a3dc7e474cb15b405df96c5fc662b8f239d..8a620caf2ff717626419810c5ce0e32b797595e1 100644 (file)
@@ -86,6 +86,7 @@ function preinit()
     makeLinter("swiftc", "swift", "xcrun", {"swiftc", "%f"}, "%f:%l:%c:.+: %m", {"darwin"}, true)
     makeLinter("swiftc", "swift", "swiftc", {"%f"}, "%f:%l:%c:.+: %m", {"linux"}, true)
     makeLinter("yaml", "yaml", "yamllint", {"--format", "parsable", "%f"}, "%f:%l:%c:.+ %m")
+    makeLinter("nix-linter", "nix", "nix-linter", {"%f"}, "%m at %f:%l:%c", {"linux"}, true)
 
     config.MakeCommand("lint", function(bp, args)
         bp:Save()
diff --git a/runtime/syntax/nix.yaml b/runtime/syntax/nix.yaml
new file mode 100644 (file)
index 0000000..edc42ee
--- /dev/null
@@ -0,0 +1,27 @@
+filetype: nix
+
+detect:
+    filename: "\\.nix$"
+
+rules:
+    - special: "\\b(Ellipsis|null|self|super|true|false|abort)\\b"
+    - statement: "\\b(let|in|with|import|rec|inherit)\\b"
+    - symbol.operator: "([~^.:;,+*|=!\\%@]|<|>|/|-|&)"
+    - symbol.brackets: "([(){}]|\\[|\\])"
+
+    - constant.number: "\\b[0-9](_?[0-9])*(\\.([0-9](_?[0-9])*)?)?(e[0-9](_?[0-9])*)?\\b"
+
+    - constant.string:
+        start: "\""
+        end: "\""
+        rules: []
+
+    - constant.string:
+        start: "''"
+        end: "''"
+        rules: []
+
+    - comment:
+        start: "#"
+        end: "$"
+        rules: []