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()
--- /dev/null
+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: []