ts-wasms 1.1.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (234) hide show
  1. package/README.md +26 -9
  2. package/index.d.ts +102 -0
  3. package/index.js +27 -0
  4. package/out/angular/folds.scm +1 -0
  5. package/out/angular/highlights.scm +178 -0
  6. package/out/angular/indents.scm +16 -0
  7. package/out/angular/injections.scm +1 -0
  8. package/out/angular/locals.scm +1 -0
  9. package/out/angular/tree-sitter-angular.wasm +0 -0
  10. package/out/asm/highlights.scm +66 -0
  11. package/out/asm/injections.scm +5 -0
  12. package/out/asm/tree-sitter-asm.wasm +0 -0
  13. package/out/astro/folds.scm +1 -0
  14. package/out/astro/highlights.scm +12 -0
  15. package/out/astro/indents.scm +1 -0
  16. package/out/astro/injections.scm +27 -0
  17. package/out/astro/locals.scm +1 -0
  18. package/out/astro/tree-sitter-astro.wasm +0 -0
  19. package/out/bash/folds.scm +9 -0
  20. package/out/bash/indents.scm +32 -0
  21. package/out/bash/injections.scm +90 -0
  22. package/out/bash/locals.scm +14 -0
  23. package/out/c/folds.scm +23 -0
  24. package/out/c/indents.scm +99 -0
  25. package/out/c/injections.scm +128 -0
  26. package/out/c/locals.scm +67 -0
  27. package/out/clojure/folds.scm +2 -0
  28. package/out/clojure/injections.scm +2 -0
  29. package/out/clojure/locals.scm +1 -0
  30. package/out/cmake/folds.scm +8 -0
  31. package/out/cmake/highlights.scm +221 -0
  32. package/out/cmake/indents.scm +26 -0
  33. package/out/cmake/injections.scm +5 -0
  34. package/out/cmake/tree-sitter-cmake.wasm +0 -0
  35. package/out/comment/highlights.scm +49 -0
  36. package/out/comment/tree-sitter-comment.wasm +0 -0
  37. package/out/commonlisp/folds.scm +2 -0
  38. package/out/commonlisp/injections.scm +5 -0
  39. package/out/commonlisp/locals.scm +109 -0
  40. package/out/cpp/folds.scm +14 -0
  41. package/out/cpp/indents.scm +8 -0
  42. package/out/cpp/locals.scm +78 -0
  43. package/out/css/folds.scm +10 -0
  44. package/out/css/indents.scm +11 -0
  45. package/out/css/injections.scm +2 -0
  46. package/out/csv/highlights.scm +5 -0
  47. package/out/csv/tree-sitter-csv.wasm +0 -0
  48. package/out/csv-psv/highlights.scm +5 -0
  49. package/out/csv-psv/tree-sitter-csv-psv.wasm +0 -0
  50. package/out/csv-tsv/highlights.scm +4 -0
  51. package/out/csv-tsv/tree-sitter-csv-tsv.wasm +0 -0
  52. package/out/dart/indents.scm +49 -0
  53. package/out/dart/injections.scm +2 -0
  54. package/out/dart/locals.scm +32 -0
  55. package/out/diff/folds.scm +5 -0
  56. package/out/diff/highlights.scm +49 -0
  57. package/out/diff/injections.scm +2 -0
  58. package/out/diff/tree-sitter-diff.wasm +0 -0
  59. package/out/dockerfile/highlights.scm +58 -0
  60. package/out/dockerfile/injections.scm +12 -0
  61. package/out/dockerfile/tree-sitter-dockerfile.wasm +0 -0
  62. package/out/dtd/folds.scm +4 -0
  63. package/out/dtd/injections.scm +2 -0
  64. package/out/dtd/locals.scm +11 -0
  65. package/out/editorconfig/folds.scm +1 -0
  66. package/out/editorconfig/highlights.scm +35 -0
  67. package/out/editorconfig/injections.scm +2 -0
  68. package/out/editorconfig/tree-sitter-editorconfig.wasm +0 -0
  69. package/out/elixir/folds.scm +10 -0
  70. package/out/elixir/indents.scm +25 -0
  71. package/out/elixir/locals.scm +200 -0
  72. package/out/elm/folds.scm +14 -0
  73. package/out/erlang/folds.scm +9 -0
  74. package/out/erlang/injections.scm +2 -0
  75. package/out/fish/folds.scm +8 -0
  76. package/out/fish/highlights.scm +61 -0
  77. package/out/fish/indents.scm +18 -0
  78. package/out/fish/injections.scm +2 -0
  79. package/out/fish/locals.scm +19 -0
  80. package/out/fish/tree-sitter-fish.wasm +0 -0
  81. package/out/gdscript/folds.scm +26 -0
  82. package/out/gdscript/highlights.scm +635 -0
  83. package/out/gdscript/indents.scm +78 -0
  84. package/out/gdscript/injections.scm +2 -0
  85. package/out/gdscript/locals.scm +121 -0
  86. package/out/gdscript/tree-sitter-gdscript.wasm +0 -0
  87. package/out/gdshader/highlights.scm +256 -0
  88. package/out/gdshader/injections.scm +2 -0
  89. package/out/gdshader/locals.scm +24 -0
  90. package/out/gdshader/tags.scm +13 -0
  91. package/out/gdshader/tree-sitter-gdshader.wasm +0 -0
  92. package/out/git-config/highlights.scm +28 -0
  93. package/out/git-config/tree-sitter-git-config.wasm +0 -0
  94. package/out/git-rebase/highlights.scm +36 -0
  95. package/out/git-rebase/tree-sitter-git-rebase.wasm +0 -0
  96. package/out/gitattributes/highlights.scm +52 -0
  97. package/out/gitattributes/injections.scm +2 -0
  98. package/out/gitattributes/locals.scm +8 -0
  99. package/out/gitattributes/tree-sitter-gitattributes.wasm +0 -0
  100. package/out/gitignore/highlights.scm +36 -0
  101. package/out/gitignore/injections.scm +2 -0
  102. package/out/gitignore/tree-sitter-gitignore.wasm +0 -0
  103. package/out/go/folds.scm +19 -0
  104. package/out/go/indents.scm +48 -0
  105. package/out/go/injections.scm +42 -0
  106. package/out/go/locals.scm +88 -0
  107. package/out/godot-resource/tree-sitter-godot-resource.wasm +0 -0
  108. package/out/graphql/indents.scm +11 -0
  109. package/out/graphql/injections.scm +2 -0
  110. package/out/groovy/folds.scm +6 -0
  111. package/out/groovy/highlights.scm +148 -0
  112. package/out/groovy/indents.scm +23 -0
  113. package/out/groovy/injections.scm +5 -0
  114. package/out/groovy/locals.scm +6 -0
  115. package/out/groovy/tree-sitter-groovy.wasm +0 -0
  116. package/out/haskell/folds.scm +6 -0
  117. package/out/hcl/folds.scm +6 -0
  118. package/out/hcl/indents.scm +16 -0
  119. package/out/hcl/injections.scm +6 -0
  120. package/out/html/folds.scm +5 -0
  121. package/out/html/indents.scm +1 -0
  122. package/out/html/locals.scm +1 -0
  123. package/out/ini/folds.scm +1 -0
  124. package/out/ini/highlights.scm +16 -0
  125. package/out/ini/injections.scm +3 -0
  126. package/out/ini/tree-sitter-ini.wasm +0 -0
  127. package/out/java/folds.scm +8 -0
  128. package/out/java/indents.scm +40 -0
  129. package/out/java/injections.scm +31 -0
  130. package/out/java/locals.scm +100 -0
  131. package/out/javascript/folds.scm +1 -0
  132. package/out/javascript/indents.scm +1 -0
  133. package/out/json/folds.scm +5 -0
  134. package/out/json/indents.scm +11 -0
  135. package/out/json/injections.scm +2 -0
  136. package/out/json/locals.scm +4 -0
  137. package/out/julia/folds.scm +14 -0
  138. package/out/julia/indents.scm +52 -0
  139. package/out/kotlin/folds.scm +13 -0
  140. package/out/kotlin/injections.scm +52 -0
  141. package/out/kotlin/locals.scm +78 -0
  142. package/out/lua/folds.scm +12 -0
  143. package/out/lua/indents.scm +47 -0
  144. package/out/markdown/folds.scm +12 -0
  145. package/out/markdown/indents.scm +1 -0
  146. package/out/matlab/folds.scm +13 -0
  147. package/out/matlab/highlights.scm +218 -0
  148. package/out/matlab/indents.scm +40 -0
  149. package/out/matlab/injections.scm +2 -0
  150. package/out/matlab/locals.scm +33 -0
  151. package/out/matlab/tree-sitter-matlab.wasm +0 -0
  152. package/out/nim/folds.scm +41 -0
  153. package/out/nim/highlights.scm +186 -0
  154. package/out/nim/injections.scm +79 -0
  155. package/out/nim/locals.scm +328 -0
  156. package/out/nim/tree-sitter-nim.wasm +0 -0
  157. package/out/nix/folds.scm +11 -0
  158. package/out/nix/indents.scm +75 -0
  159. package/out/ocaml/folds.scm +30 -0
  160. package/out/ocaml/indents.scm +77 -0
  161. package/out/ocaml/injections.scm +2 -0
  162. package/out/php/folds.scm +1 -0
  163. package/out/php/indents.scm +1 -0
  164. package/out/php/locals.scm +1 -0
  165. package/out/prisma/folds.scm +7 -0
  166. package/out/prisma/injections.scm +5 -0
  167. package/out/python/folds.scm +28 -0
  168. package/out/python/indents.scm +213 -0
  169. package/out/python/injections.scm +30 -0
  170. package/out/python/locals.scm +124 -0
  171. package/out/qmljs/folds.scm +8 -0
  172. package/out/qmljs/highlights.scm +61 -0
  173. package/out/qmljs/injections.scm +1 -0
  174. package/out/qmljs/locals.scm +6 -0
  175. package/out/qmljs/tree-sitter-qmljs.wasm +0 -0
  176. package/out/query/folds.scm +6 -0
  177. package/out/query/indents.scm +25 -0
  178. package/out/query/injections.scm +28 -0
  179. package/out/query/locals.scm +21 -0
  180. package/out/r/indents.scm +33 -0
  181. package/out/r/injections.scm +2 -0
  182. package/out/racket/folds.scm +2 -0
  183. package/out/racket/injections.scm +5 -0
  184. package/out/ruby/folds.scm +12 -0
  185. package/out/ruby/indents.scm +43 -0
  186. package/out/ruby/injections.scm +34 -0
  187. package/out/rust/folds.scm +25 -0
  188. package/out/rust/indents.scm +133 -0
  189. package/out/rust/locals.scm +98 -0
  190. package/out/scala/folds.scm +16 -0
  191. package/out/scala/injections.scm +5 -0
  192. package/out/scheme/folds.scm +2 -0
  193. package/out/scheme/injections.scm +2 -0
  194. package/out/scss/folds.scm +1 -0
  195. package/out/scss/indents.scm +7 -0
  196. package/out/scss/injections.scm +2 -0
  197. package/out/sql/folds.scm +1 -0
  198. package/out/sql/injections.scm +5 -0
  199. package/out/terraform/folds.scm +1 -0
  200. package/out/terraform/indents.scm +1 -0
  201. package/out/terraform/injections.scm +1 -0
  202. package/out/toml/folds.scm +5 -0
  203. package/out/toml/indents.scm +11 -0
  204. package/out/toml/injections.scm +2 -0
  205. package/out/toml/locals.scm +4 -0
  206. package/out/tsx/folds.scm +1 -0
  207. package/out/tsx/indents.scm +1 -0
  208. package/out/tsx/injections.scm +1 -0
  209. package/out/typescript/folds.scm +8 -0
  210. package/out/typescript/indents.scm +7 -0
  211. package/out/typescript/injections.scm +28 -0
  212. package/out/vim/folds.scm +4 -0
  213. package/out/vim/highlights.scm +362 -0
  214. package/out/vim/injections.scm +44 -0
  215. package/out/vim/locals.scm +19 -0
  216. package/out/vim/tree-sitter-vim.wasm +0 -0
  217. package/out/vimdoc/injections.scm +4 -0
  218. package/out/vue/folds.scm +6 -0
  219. package/out/vue/highlights.scm +54 -0
  220. package/out/vue/indents.scm +7 -0
  221. package/out/vue/injections.scm +78 -0
  222. package/out/vue/tree-sitter-vue.wasm +0 -0
  223. package/out/xml/folds.scm +5 -0
  224. package/out/xml/indents.scm +16 -0
  225. package/out/xml/injections.scm +32 -0
  226. package/out/xml/locals.scm +35 -0
  227. package/out/yaml/folds.scm +4 -0
  228. package/out/yaml/highlights.scm +79 -0
  229. package/out/yaml/indents.scm +7 -0
  230. package/out/yaml/injections.scm +81 -0
  231. package/out/yaml/locals.scm +9 -0
  232. package/out/yaml/tree-sitter-yaml.wasm +0 -0
  233. package/out/zig/locals.scm +96 -0
  234. package/package.json +49 -17
@@ -0,0 +1,186 @@
1
+ ; SPDX-FileCopyrightText: 2023 Leorize <leorize+oss@disroot.org>
2
+ ; SPDX-License-Identifier: MPL-2.0
3
+
4
+ ; Punctuations
5
+ [ "." ";" "," ":" ] @punctuation.delimiter
6
+ [ "(" ")" "[" "]" "{" "}" "{." ".}" ] @punctuation.bracket
7
+
8
+ ; Operator by default, but could be overriden
9
+ [ "=" ] @operator
10
+
11
+ ; Special
12
+ (blank_identifier) @variable.builtin
13
+
14
+ ; Calls
15
+ (call
16
+ function: [
17
+ (identifier) @function.call
18
+ (dot_expression
19
+ right: (identifier) @function.call)
20
+ ])
21
+ (generalized_string
22
+ function: [
23
+ (identifier) @function.call
24
+ (dot_expression
25
+ right: (identifier) @function.call)
26
+ ])
27
+
28
+ ; Declarations
29
+ (exported_symbol "*" @type.qualifier)
30
+ (_ "=" @punctuation.delimiter [body: (_) value: (_)])
31
+ (proc_declaration name: (_) @function)
32
+ (func_declaration name: (_) @function)
33
+ (converter_declaration name: (_) @function)
34
+ (method_declaration name: (_) @method)
35
+ (template_declaration name: (_) @function.macro)
36
+ (macro_declaration name: (_) @function.macro)
37
+ (symbol_declaration name: (_) @variable)
38
+ (parameter_declaration
39
+ (symbol_declaration_list
40
+ (symbol_declaration name: (_) @parameter)))
41
+ (_
42
+ [
43
+ type: [
44
+ (type_expression (identifier))
45
+ (type_expression (accent_quoted (identifier)))
46
+ ] @type
47
+ return_type: [
48
+ (type_expression (identifier))
49
+ (type_expression (accent_quoted (identifier)))
50
+ ] @type
51
+ ])
52
+
53
+ ; Exceptions
54
+ [
55
+ "try"
56
+ "except"
57
+ "finally"
58
+ "raise"
59
+ ] @exception
60
+
61
+ (except_branch values: (expression_list
62
+ [
63
+ (identifier) @type
64
+ (infix_expression
65
+ left: (identifier) @type
66
+ operator: "as"
67
+ right: (identifier) @variable)
68
+ ]))
69
+
70
+ ; Expressions
71
+ (dot_expression
72
+ right: (identifier) @field)
73
+
74
+ ; Literal/comments
75
+ [
76
+ (comment)
77
+ (block_comment)
78
+ ] @comment
79
+
80
+ [
81
+ (documentation_comment)
82
+ (block_documentation_comment)
83
+ ] @comment.documentation
84
+
85
+ (interpreted_string_literal) @string
86
+ (long_string_literal) @string
87
+ (raw_string_literal) @string
88
+ (generalized_string) @string
89
+ (char_literal) @character
90
+ (escape_sequence) @string.escape
91
+ (integer_literal) @number
92
+ (float_literal) @float
93
+ (custom_numeric_literal) @number
94
+ (nil_literal) @constant.builtin
95
+
96
+ ; Keyword
97
+ [
98
+ "if"
99
+ "when"
100
+ "case"
101
+ "elif"
102
+ "else"
103
+ ] @conditional
104
+
105
+ (of_branch "of" @conditional)
106
+
107
+ [
108
+ "import"
109
+ "include"
110
+ "export"
111
+ ] @include
112
+
113
+ (import_from_statement "from" @include)
114
+ (except_clause "except" @include)
115
+
116
+ [
117
+ "for"
118
+ "while"
119
+ "continue"
120
+ "break"
121
+ ] @repeat
122
+
123
+ (for "in" @repeat)
124
+
125
+ [
126
+ "macro"
127
+ "template"
128
+ "const"
129
+ "let"
130
+ "var"
131
+ "asm"
132
+ "bind"
133
+ "block"
134
+ "concept"
135
+ "defer"
136
+ "discard"
137
+ "distinct"
138
+ "do"
139
+ "enum"
140
+ "mixin"
141
+ "nil"
142
+ "object"
143
+ "out"
144
+ "ptr"
145
+ "ref"
146
+ "static"
147
+ "tuple"
148
+ "type"
149
+ ] @keyword
150
+
151
+ [
152
+ "proc"
153
+ "func"
154
+ "method"
155
+ "converter"
156
+ "iterator"
157
+ ] @keyword.function
158
+
159
+ [
160
+ "and"
161
+ "or"
162
+ "xor"
163
+ "not"
164
+ "div"
165
+ "mod"
166
+ "shl"
167
+ "shr"
168
+ "from"
169
+ "as"
170
+ "of"
171
+ "in"
172
+ "notin"
173
+ "is"
174
+ "isnot"
175
+ "cast"
176
+ ] @keyword.operator
177
+
178
+ [
179
+ "return"
180
+ "yield"
181
+ ] @keyword.return
182
+
183
+ ; Operators
184
+ (infix_expression operator: _ @operator)
185
+ (prefix_expression operator: _ @operator)
186
+
@@ -0,0 +1,79 @@
1
+ ; =============================================================================
2
+ ; generalized_strings
3
+ ; regex in generalized_strings
4
+ (generalized_string
5
+ function: (identifier) @_string_prefix
6
+ .
7
+ (string_content) @injection.content
8
+ (#set! injection.language "regex")
9
+ (#any-of? @_string_prefix "re" "rex"))
10
+
11
+ ; format string in generalized_strings
12
+ (generalized_string
13
+ function: (identifier) @_string_prefix
14
+ .
15
+ (string_content) @injection.content
16
+ (#set! injection.language "nim_format_string")
17
+ (#eq? @_string_prefix "fmt"))
18
+
19
+ ; format string in normal strings with & prefix
20
+ (prefix_expression
21
+ operator: (operator) @_string_prefix
22
+ .
23
+ (_
24
+ (string_content) @injection.content)
25
+ (#set! injection.language "nim_format_string")
26
+ (#eq? @_string_prefix "&"))
27
+
28
+ ; sql in generalized_strings
29
+ ; and anything you like as long as the function name is the same as the injected language's parser
30
+ (generalized_string
31
+ function: (identifier) @injection.language
32
+ (string_content) @injection.content
33
+ (#not-any-of? @injection.language "re" "rex" "fmt"))
34
+
35
+ ; =============================================================================
36
+ ; emit pragma
37
+ ; C / CPP / OBJC / JAVASCRIPT
38
+ ; a `#<no whitespace><language name>`
39
+ ; has to directly precede the {.emit: "<language code>".} pragma
40
+ ; eg.:
41
+ ; #objc
42
+ ; {.emit: "<objc code>".}
43
+ ; OR
44
+ ; #javascript
45
+ ; {.emit: "<javascript code>".}
46
+ ; normal strings
47
+ ((comment
48
+ (comment_content) @injection.language)
49
+ .
50
+ (pragma_statement
51
+ (pragma_list
52
+ (colon_expression
53
+ left: (identifier) @_emit_keyword
54
+ (#eq? @_emit_keyword "emit")
55
+ right: (_
56
+ (string_content) @injection.content)))))
57
+
58
+ ; =============================================================================
59
+ ; asm statement
60
+ ; works same as emit pragma, needs preceding comment with language name
61
+ ((comment
62
+ (comment_content) @injection.language)
63
+ .
64
+ (assembly_statement
65
+ (_
66
+ (string_content) @injection.content)))
67
+
68
+ ; =============================================================================
69
+ ; comments
70
+ ; NOTE: ts "comment" parser heavily impacts performance
71
+ ; markdown parser in documentation_comment
72
+ (documentation_comment
73
+ (comment_content) @injection.content
74
+ (#set! injection.language "markdown_inline"))
75
+
76
+ ; markdown parser in block_documentation_comment
77
+ (block_documentation_comment
78
+ (comment_content) @injection.content
79
+ (#set! injection.language "markdown"))
@@ -0,0 +1,328 @@
1
+ ; ==============================================================================
2
+ ; @local.definition ; various definitions
3
+ (block
4
+ label: [
5
+ (identifier) @local.definition
6
+ (accent_quoted) @local.definition
7
+ ])
8
+
9
+ ; ==============================================================================
10
+ ; @local.definition.constant ; constants
11
+ (const_section
12
+ (variable_declaration
13
+ (symbol_declaration_list
14
+ (symbol_declaration
15
+ name: [
16
+ (identifier) @local.definition.constant
17
+ (accent_quoted) @local.definition.constant
18
+ (exported_symbol
19
+ (identifier) @local.definition.constant)
20
+ (exported_symbol
21
+ (accent_quoted) @local.definition.constant)
22
+ ]))
23
+ type: (type_expression)? @local.definition.associated))
24
+
25
+ ; ==============================================================================
26
+ ; @local.definition.function ; functions
27
+ (proc_declaration
28
+ name: [
29
+ (identifier) @local.definition.function
30
+ (accent_quoted) @local.definition.function
31
+ (exported_symbol
32
+ (identifier) @local.definition.function)
33
+ (exported_symbol
34
+ (accent_quoted) @local.definition.function)
35
+ ]
36
+ (#set! definition.function.scope "parent"))
37
+
38
+ (func_declaration
39
+ name: [
40
+ (identifier) @local.definition.function
41
+ (accent_quoted) @local.definition.function
42
+ (exported_symbol
43
+ (identifier) @local.definition.function)
44
+ (exported_symbol
45
+ (accent_quoted) @local.definition.function)
46
+ ]
47
+ (#set! definition.function.scope "parent"))
48
+
49
+ (iterator_declaration
50
+ name: [
51
+ (identifier) @local.definition.function
52
+ (accent_quoted) @local.definition.function
53
+ (exported_symbol
54
+ (identifier) @local.definition.function)
55
+ (exported_symbol
56
+ (accent_quoted) @local.definition.function)
57
+ ]
58
+ (#set! definition.function.scope "parent"))
59
+
60
+ (converter_declaration
61
+ name: [
62
+ (identifier) @local.definition.function
63
+ (accent_quoted) @local.definition.function
64
+ (exported_symbol
65
+ (identifier) @local.definition.function)
66
+ (exported_symbol
67
+ (accent_quoted) @local.definition.function)
68
+ ]
69
+ (#set! definition.function.scope "parent"))
70
+
71
+ ; ==============================================================================
72
+ ; @local.definition.method ; methods
73
+ (method_declaration
74
+ name: [
75
+ (identifier) @local.definition.method
76
+ (accent_quoted) @local.definition.method
77
+ (exported_symbol
78
+ (identifier) @local.definition.method)
79
+ (exported_symbol
80
+ (accent_quoted) @local.definition.method)
81
+ ]
82
+ (#set! definition.method.scope "parent"))
83
+
84
+ ; ==============================================================================
85
+ ; @local.definition.var ; variables
86
+ (var_section
87
+ (variable_declaration
88
+ (symbol_declaration_list
89
+ (symbol_declaration
90
+ name: [
91
+ (identifier) @local.definition.var
92
+ (accent_quoted) @local.definition.var
93
+ (exported_symbol
94
+ (identifier) @local.definition.var)
95
+ (exported_symbol
96
+ (accent_quoted) @local.definition.var)
97
+ ]))
98
+ type: (type_expression)? @local.definition.associated))
99
+
100
+ (let_section
101
+ (variable_declaration
102
+ (symbol_declaration_list
103
+ (symbol_declaration
104
+ name: [
105
+ (identifier) @local.definition.var
106
+ (accent_quoted) @local.definition.var
107
+ (exported_symbol
108
+ (identifier) @local.definition.var)
109
+ (exported_symbol
110
+ (accent_quoted) @local.definition.var)
111
+ ]))
112
+ type: (type_expression)? @local.definition.associated))
113
+
114
+ (for
115
+ (symbol_declaration_list
116
+ (symbol_declaration
117
+ name: [
118
+ (identifier) @local.definition.var
119
+ (accent_quoted) @local.definition.var
120
+ ])))
121
+
122
+ (try
123
+ (except_branch
124
+ values: (expression_list
125
+ (infix_expression
126
+ right: [
127
+ (identifier) @local.definition.var
128
+ (accent_quoted) @local.definition.var
129
+ ]))))
130
+
131
+ ; ==============================================================================
132
+ ; @local.definition.parameter ; parameters
133
+ (parameter_declaration
134
+ (symbol_declaration_list
135
+ (symbol_declaration
136
+ name: [
137
+ (identifier) @local.definition.parameter
138
+ (accent_quoted) @local.definition.parameter
139
+ ]))
140
+ type: (type_expression)? @local.definition.associated)
141
+
142
+ (concept_declaration
143
+ parameters: (parameter_list
144
+ [
145
+ (identifier) @local.definition.parameter
146
+ (accent_quoted
147
+ (identifier) @local.definition.parameter)
148
+ ]))
149
+
150
+ (var_parameter
151
+ [
152
+ (identifier) @local.definition.parameter
153
+ (accent_quoted
154
+ (identifier) @local.definition.parameter)
155
+ ])
156
+
157
+ (type_parameter
158
+ [
159
+ (identifier) @local.definition.parameter
160
+ (accent_quoted
161
+ (identifier) @local.definition.parameter)
162
+ ])
163
+
164
+ (static_parameter
165
+ [
166
+ (identifier) @local.definition.parameter
167
+ (accent_quoted
168
+ (identifier) @local.definition.parameter)
169
+ ])
170
+
171
+ (ref_parameter
172
+ [
173
+ (identifier) @local.definition.parameter
174
+ (accent_quoted
175
+ (identifier) @local.definition.parameter)
176
+ ])
177
+
178
+ (pointer_parameter
179
+ [
180
+ (identifier) @local.definition.parameter
181
+ (accent_quoted
182
+ (identifier) @local.definition.parameter)
183
+ ])
184
+
185
+ ; ==============================================================================
186
+ ; @local.definition.macro ; preprocessor macros
187
+ (template_declaration
188
+ name: [
189
+ (identifier) @local.definition.macro
190
+ (accent_quoted) @local.definition.macro
191
+ (exported_symbol
192
+ (identifier) @local.definition.macro)
193
+ (exported_symbol
194
+ (accent_quoted) @local.definition.macro)
195
+ ]
196
+ (#set! definition.macro.scope "parent"))
197
+
198
+ (macro_declaration
199
+ name: [
200
+ (identifier) @local.definition.macro
201
+ (accent_quoted) @local.definition.macro
202
+ (exported_symbol
203
+ (identifier) @local.definition.macro)
204
+ (exported_symbol
205
+ (accent_quoted) @local.definition.macro)
206
+ ]
207
+ (#set! definition.macro.scope "parent"))
208
+
209
+ ; ==============================================================================
210
+ ; @local.definition.type ; types or classes
211
+ (type_declaration
212
+ (type_symbol_declaration
213
+ name: [
214
+ (identifier) @local.definition.type
215
+ (accent_quoted) @local.definition.type
216
+ (exported_symbol
217
+ (identifier) @local.definition.type)
218
+ (exported_symbol
219
+ (accent_quoted) @local.definition.type)
220
+ ]))
221
+
222
+ ; ==============================================================================
223
+ ; @local.definition.field ; fields or properties
224
+ ; object_declaration
225
+ ; variant_declaration
226
+ ; conditional_declaration
227
+ ; tuple_type inline
228
+ ; tuple_type multiline
229
+ (field_declaration
230
+ (symbol_declaration_list
231
+ (symbol_declaration
232
+ name: [
233
+ (identifier) @local.definition.field
234
+ (accent_quoted) @local.definition.field
235
+ (exported_symbol
236
+ (identifier) @local.definition.field)
237
+ (exported_symbol
238
+ (accent_quoted) @local.definition.field)
239
+ ]))
240
+ type: (type_expression)? @local.definition.associated)
241
+
242
+ ; ==============================================================================
243
+ ; @local.definition.enum ; enumerations
244
+ (enum_declaration
245
+ (enum_field_declaration
246
+ (symbol_declaration
247
+ name: [
248
+ (identifier) @local.definition.enum
249
+ (accent_quoted) @local.definition.enum
250
+ ])))
251
+
252
+ ; ==============================================================================
253
+ ; @local.definition.namespace ; modules or namespaces
254
+ ; @local.definition.import ; imported names
255
+ (import_statement
256
+ (expression_list
257
+ (identifier) @local.definition.namespace))
258
+
259
+ (import_statement
260
+ (expression_list
261
+ (infix_expression
262
+ operator: "as"
263
+ right: (identifier) @local.definition.namespace)))
264
+
265
+ (import_statement
266
+ (expression_list
267
+ (infix_expression
268
+ operator: (operator) @_operator
269
+ right: [
270
+ (identifier) @local.definition.namespace
271
+ (array_construction
272
+ (identifier) @local.definition.namespace)
273
+ ]))
274
+ (#eq? @_operator "/"))
275
+
276
+ (import_from_statement
277
+ module: (infix_expression
278
+ operator: (operator) @_operator
279
+ right: (identifier) @local.definition.namespace)
280
+ (expression_list
281
+ [
282
+ (identifier) @local.definition.import
283
+ (accent_quoted) @local.definition.import
284
+ ])
285
+ (#eq? @_operator "/"))
286
+
287
+ ; ==============================================================================
288
+ ; @local.scope ; scope block
289
+ ; (when)
290
+ ; NOTE: `when` does actually not create a scope
291
+ (if
292
+ consequence: (statement_list) @local.scope
293
+ alternative: (elif_branch)* @local.scope
294
+ alternative: (else_branch)? @local.scope)
295
+
296
+ (case
297
+ alternative: (of_branch)* @local.scope
298
+ alternative: (elif_branch)* @local.scope
299
+ alternative: (else_branch)? @local.scope)
300
+
301
+ (try
302
+ body: (statement_list) @local.scope
303
+ (except_branch) @local.scope
304
+ (finally_branch)? @local.scope)
305
+
306
+ [
307
+ (for)
308
+ (while)
309
+ (block)
310
+ (static_statement)
311
+ (proc_declaration)
312
+ (func_declaration)
313
+ (method_declaration)
314
+ (iterator_declaration)
315
+ (converter_declaration)
316
+ (template_declaration)
317
+ (macro_declaration)
318
+ (proc_expression)
319
+ (func_expression)
320
+ (iterator_expression)
321
+ (concept_declaration)
322
+ ] @local.scope
323
+
324
+ ; ==============================================================================
325
+ ; @local.reference ; identifier reference
326
+ (identifier) @local.reference
327
+
328
+ (accent_quoted) @local.reference
Binary file
@@ -0,0 +1,11 @@
1
+ ; Nix doesn't really have blocks, so just guess what people might want folds for
2
+ [
3
+ (if_expression)
4
+ (with_expression)
5
+ (let_expression)
6
+ (function_expression)
7
+ (attrset_expression)
8
+ (rec_attrset_expression)
9
+ (list_expression)
10
+ (indented_string_expression)
11
+ ] @fold
@@ -0,0 +1,75 @@
1
+ [
2
+ (list_expression)
3
+ (indented_string_expression)
4
+ (let_expression)
5
+ (if_expression)
6
+ (binding)
7
+ (parenthesized_expression)
8
+ ] @indent.begin
9
+
10
+ ((attrset_expression) @indent.begin
11
+ (#not-has-parent? @indent.begin if_expression))
12
+
13
+ ((rec_attrset_expression) @indent.begin
14
+ (#not-has-parent? @indent.begin if_expression))
15
+
16
+ ((binding
17
+ "=" @indent.begin)
18
+ (#set! indent.immediate 1))
19
+
20
+ (binding
21
+ ";" @indent.end)
22
+
23
+ (parenthesized_expression
24
+ ")" @indent.branch @indent.end)
25
+
26
+ (attrset_expression
27
+ "}" @indent.branch @indent.end)
28
+
29
+ (rec_attrset_expression
30
+ "}" @indent.branch @indent.end)
31
+
32
+ (list_expression
33
+ "]" @indent.branch @indent.dedent)
34
+
35
+ (indented_string_expression
36
+ "''" @indent.branch @indent.end .)
37
+
38
+ [
39
+ "else"
40
+ "in"
41
+ ] @indent.branch
42
+
43
+ (let_expression
44
+ body: (_) @indent.end @indent.dedent)
45
+
46
+ (string_fragment) @indent.ignore @indent.auto
47
+
48
+ (if_expression
49
+ condition: (_) @indent.auto)
50
+
51
+ alternative: (if_expression) @indent.dedent
52
+
53
+ (interpolation) @indent.begin @indent.dedent
54
+
55
+ (interpolation
56
+ "}" @indent.end @indent.branch)
57
+
58
+ (ERROR
59
+ "then" @indent.begin)
60
+
61
+ (ERROR
62
+ "then"
63
+ .
64
+ (formals) @indent.begin)
65
+
66
+ (ERROR
67
+ "then"
68
+ .
69
+ (formals
70
+ "}" @indent.branch @indent.end))
71
+
72
+ (ERROR
73
+ "let") @indent.begin
74
+
75
+ (comment) @indent.ignore
@@ -0,0 +1,30 @@
1
+ [
2
+ (let_binding)
3
+ (external)
4
+ (type_binding)
5
+ (exception_definition)
6
+ (module_binding)
7
+ (module_type_definition)
8
+ (open_module)
9
+ (include_module)
10
+ (include_module_type)
11
+ (class_binding)
12
+ (class_type_binding)
13
+ (value_specification)
14
+ (inheritance_specification)
15
+ (instance_variable_specification)
16
+ (method_specification)
17
+ (inheritance_definition)
18
+ (instance_variable_definition)
19
+ (method_definition)
20
+ (class_initializer)
21
+ (match_case)
22
+ (attribute)
23
+ (item_attribute)
24
+ (floating_attribute)
25
+ (extension)
26
+ (item_extension)
27
+ (quoted_extension)
28
+ (quoted_item_extension)
29
+ (comment)
30
+ ] @fold