summaryrefslogtreecommitdiffstats
path: root/queries/nix
diff options
context:
space:
mode:
authorMarc Jakobi <marc.jakobi@tiko.energy>2023-10-12 21:04:55 +0200
committerGitHub <noreply@github.com>2023-10-12 19:04:55 +0000
commit783e5fc3079680b307e8ac518935317907e71a59 (patch)
tree88e7a7a1b0d71c03e140622c92e38a00387b69b0 /queries/nix
parentUpdate parsers: wing (diff)
downloadnvim-treesitter-783e5fc3079680b307e8ac518935317907e71a59.tar
nvim-treesitter-783e5fc3079680b307e8ac518935317907e71a59.tar.gz
nvim-treesitter-783e5fc3079680b307e8ac518935317907e71a59.tar.bz2
nvim-treesitter-783e5fc3079680b307e8ac518935317907e71a59.tar.lz
nvim-treesitter-783e5fc3079680b307e8ac518935317907e71a59.tar.xz
nvim-treesitter-783e5fc3079680b307e8ac518935317907e71a59.tar.zst
nvim-treesitter-783e5fc3079680b307e8ac518935317907e71a59.zip
feat(nix): some highlight improvements
- functions - builtin functions with prefix - add test file
Diffstat (limited to 'queries/nix')
-rw-r--r--queries/nix/highlights.scm15
1 files changed, 14 insertions, 1 deletions
diff --git a/queries/nix/highlights.scm b/queries/nix/highlights.scm
index b83a81027..97e5303ba 100644
--- a/queries/nix/highlights.scm
+++ b/queries/nix/highlights.scm
@@ -89,7 +89,14 @@
name: (identifier) @boolean
(#any-of? @boolean "true" "false"))
-; builtin functions
+; builtin functions (with builtins prefix)
+(select_expression
+ expression: (variable_expression name: (identifier) @_id)
+ attrpath: (attrpath attr: (identifier) @function.builtin)
+ (#eq? @_id "builtins")
+)
+
+; builtin functions (without builtins prefix)
(variable_expression name: (identifier) @function.builtin (#any-of? @function.builtin
; nix eval --impure --expr 'with builtins; filter (x: !(elem x [ "abort" "derivation" "import" "throw" ]) && isFunction builtins.${x}) (attrNames builtins)'
"add" "addErrorContext" "all" "any" "appendContext" "attrNames" "attrValues" "baseNameOf" "bitAnd" "bitOr" "bitXor" "break" "catAttrs" "ceil" "compareVersions" "concatLists" "concatMap" "concatStringsSep" "deepSeq" "derivationStrict" "dirOf" "div" "elem" "elemAt" "fetchGit" "fetchMercurial" "fetchTarball" "fetchTree" "fetchurl" "filter" "filterSource" "findFile" "floor" "foldl'" "fromJSON" "fromTOML" "functionArgs" "genList" "genericClosure" "getAttr" "getContext" "getEnv" "getFlake" "groupBy" "hasAttr" "hasContext" "hashFile" "hashString" "head" "intersectAttrs" "isAttrs" "isBool" "isFloat" "isFunction" "isInt" "isList" "isNull" "isPath" "isString" "length" "lessThan" "listToAttrs" "map" "mapAttrs" "match" "mul" "parseDrvName" "partition" "path" "pathExists" "placeholder" "readDir" "readFile" "removeAttrs" "replaceStrings" "scopedImport" "seq" "sort" "split" "splitVersion" "storePath" "stringLength" "sub" "substring" "tail" "toFile" "toJSON" "toPath" "toString" "toXML" "trace" "traceVerbose" "tryEval" "typeOf" "unsafeDiscardOutputDependency" "unsafeDiscardStringContext" "unsafeGetAttrPos" "zipAttrsWith"
@@ -114,6 +121,11 @@
(attrset_expression (binding_set (binding . (attrpath (identifier) @field))))
(rec_attrset_expression (binding_set (binding . (attrpath (identifier) @field))))
+; function definition
+(binding
+ attrpath: (attrpath attr: (identifier) @function)
+ expression: (function_expression))
+
; unary operators
(unary_expression operator: _ @operator)
@@ -131,3 +143,4 @@
(unary_expression "-" (float_expression))
(float_expression)
] @float
+