From d8df10f2958f70ee84b7c78cb7ea00aa195bc1c5 Mon Sep 17 00:00:00 2001 From: Timothy DeHerrera Date: Wed, 9 Jun 2021 19:07:24 -0600 Subject: [PATCH] Add Nix runtime --- runtime/queries/nix/highlights.scm | 87 ++++++++++++++++++++++++++++++ runtime/queries/nix/indents.toml | 9 ++++ 2 files changed, 96 insertions(+) create mode 100644 runtime/queries/nix/highlights.scm create mode 100644 runtime/queries/nix/indents.toml diff --git a/runtime/queries/nix/highlights.scm b/runtime/queries/nix/highlights.scm new file mode 100644 index 000000000..741b73b5d --- /dev/null +++ b/runtime/queries/nix/highlights.scm @@ -0,0 +1,87 @@ +(comment) @comment + +[ + "if" + "then" + "else" + "let" + "inherit" + "in" + "rec" + "with" + "assert" +] @keyword + +((identifier) @variable.builtin + (#match? @variable.builtin "^(__currentSystem|__currentTime|__nixPath|__nixVersion|__storeDir|builtins|false|null|true)$") + (#is-not? local)) + +((identifier) @function.builtin + (#match? @function.builtin "^(__add|__addErrorContext|__all|__any|__appendContext|__attrNames|__attrValues|__bitAnd|__bitOr|__bitXor|__catAttrs|__compareVersions|__concatLists|__concatMap|__concatStringsSep|__deepSeq|__div|__elem|__elemAt|__fetchurl|__filter|__filterSource|__findFile|__foldl'|__fromJSON|__functionArgs|__genList|__genericClosure|__getAttr|__getContext|__getEnv|__hasAttr|__hasContext|__hashFile|__hashString|__head|__intersectAttrs|__isAttrs|__isBool|__isFloat|__isFunction|__isInt|__isList|__isPath|__isString|__langVersion|__length|__lessThan|__listToAttrs|__mapAttrs|__match|__mul|__parseDrvName|__partition|__path|__pathExists|__readDir|__readFile|__replaceStrings|__seq|__sort|__split|__splitVersion|__storePath|__stringLength|__sub|__substring|__tail|__toFile|__toJSON|__toPath|__toXML|__trace|__tryEval|__typeOf|__unsafeDiscardOutputDependency|__unsafeDiscardStringContext|__unsafeGetAttrPos|__valueSize|abort|baseNameOf|derivation|derivationStrict|dirOf|fetchGit|fetchMercurial|fetchTarball|fromTOML|import|isNull|map|placeholder|removeAttrs|scopedImport|throw|toString)$") + (#is-not? local)) + +[ + (string) + (indented_string) +] @string + +[ + (path) + (hpath) + (spath) +] @string.special.path + +(uri) @string.special.uri + +[ + (integer) + (float) +] @number + +(interpolation + "${" @punctuation.special + "}" @punctuation.special) @embedded + +(escape_sequence) @escape + +(function + universal: (identifier) @variable.parameter +) + +(formal + name: (identifier) @variable.parameter + "?"? @punctuation.delimiter) + +(app + function: [ + (identifier) @function + (select + attrpath: (attrpath + attr: (attr_identifier) @function .))]) + + +(unary + operator: _ @operator) + +(binary + operator: _ @operator) + +(attr_identifier) @property +(inherit attrs: (attrs_inherited (identifier) @property) ) + +[ + ";" + "." + "," +] @punctuation.delimiter + +[ + "(" + ")" + "[" + "]" + "{" + "}" +] @punctuation.bracket + +(identifier) @variable diff --git a/runtime/queries/nix/indents.toml b/runtime/queries/nix/indents.toml new file mode 100644 index 000000000..9058a408d --- /dev/null +++ b/runtime/queries/nix/indents.toml @@ -0,0 +1,9 @@ +indent = [ + "if", + "let", + "function", + "attrset", + "list", + "indented_string", + "parenthesized" +]