march-cli 0.1.24 → 0.1.26

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/bin/march.mjs +13 -13
  2. package/package.json +49 -49
  3. package/src/agent/command-exec-tool.mjs +172 -172
  4. package/src/agent/context-stats-tool.mjs +57 -57
  5. package/src/agent/editing/diff-apply.mjs +28 -28
  6. package/src/agent/editing/diff-format.mjs +57 -57
  7. package/src/agent/editing/lsp-report.mjs +69 -69
  8. package/src/agent/file-edit-tool.mjs +250 -250
  9. package/src/agent/file-tools/read-file-tool.mjs +112 -112
  10. package/src/agent/file-tools/read-image-tool.mjs +76 -76
  11. package/src/agent/model-payload-dumper.mjs +208 -208
  12. package/src/agent/pi-session/pi-session-sidecar-failure.mjs +10 -10
  13. package/src/agent/provider/payload-messages.mjs +138 -138
  14. package/src/agent/runner/codex-large-context-guard.mjs +87 -87
  15. package/src/agent/runner/codex-transport-compression.mjs +180 -180
  16. package/src/agent/runner/codex-transport-debug.mjs +113 -113
  17. package/src/agent/runner/codex-websocket-event-debug.mjs +130 -130
  18. package/src/agent/runner/fast-model.mjs +36 -36
  19. package/src/agent/runner/runner-cleanup.mjs +12 -12
  20. package/src/agent/runner/runner-init.mjs +15 -15
  21. package/src/agent/runner/runner-session-state.mjs +40 -40
  22. package/src/agent/runner/runner-utils.mjs +24 -24
  23. package/src/agent/runner.mjs +299 -299
  24. package/src/agent/runtime/ipc/ipc-peer.mjs +99 -99
  25. package/src/agent/runtime/ipc/process-ipc-transport.mjs +16 -16
  26. package/src/agent/runtime/remote-runner-client.mjs +73 -73
  27. package/src/agent/runtime/remote-ui-client.mjs +20 -20
  28. package/src/agent/runtime/runner-ipc-target.mjs +125 -125
  29. package/src/agent/runtime/runner-process-client.mjs +47 -47
  30. package/src/agent/runtime/runner-process-entry.mjs +11 -11
  31. package/src/agent/runtime/runner-process-factory.mjs +111 -108
  32. package/src/agent/runtime/runner-runtime-host.mjs +79 -79
  33. package/src/agent/runtime/runtime-factory.mjs +42 -42
  34. package/src/agent/runtime/runtime-host.mjs +34 -34
  35. package/src/agent/runtime/ui-event-bridge.mjs +95 -95
  36. package/src/agent/screen-tools/list-windows-tool.mjs +39 -39
  37. package/src/agent/screen-tools/screen-tool.mjs +49 -49
  38. package/src/agent/screen-tools/windows-screen.mjs +133 -133
  39. package/src/agent/session/session-auto-name.mjs +41 -41
  40. package/src/agent/session/session-binding.mjs +12 -12
  41. package/src/agent/session/session-options.mjs +47 -47
  42. package/src/agent/tool-names.mjs +1 -1
  43. package/src/agent/tool-result.mjs +3 -3
  44. package/src/agent/tool-summary.mjs +112 -112
  45. package/src/agent/tools.mjs +58 -58
  46. package/src/agent/turn/turn-events.mjs +111 -111
  47. package/src/agent/turn/turn-logging.mjs +30 -30
  48. package/src/agent/turn/turn-runner.mjs +196 -196
  49. package/src/agent/vision-capability.mjs +14 -14
  50. package/src/auth/login-command.mjs +90 -90
  51. package/src/auth/storage.mjs +34 -34
  52. package/src/cli/args.mjs +96 -79
  53. package/src/cli/commands/copy-command.mjs +87 -87
  54. package/src/cli/commands/export-command.mjs +206 -206
  55. package/src/cli/commands/extensions-command.mjs +53 -53
  56. package/src/cli/commands/help-command.mjs +7 -7
  57. package/src/cli/commands/model-command.mjs +141 -141
  58. package/src/cli/commands/paste-image-command.mjs +43 -43
  59. package/src/cli/commands/provider-command.mjs +59 -59
  60. package/src/cli/commands/status-command.mjs +196 -194
  61. package/src/cli/commands/thinking-command.mjs +87 -87
  62. package/src/cli/fallback-ui.mjs +156 -156
  63. package/src/cli/input/attachment-tokens.mjs +20 -20
  64. package/src/cli/input/autocomplete.mjs +74 -74
  65. package/src/cli/input/external-editor.mjs +39 -39
  66. package/src/cli/input/file-search/index.mjs +160 -160
  67. package/src/cli/input/history-store.mjs +35 -35
  68. package/src/cli/input/image-clipboard.mjs +55 -55
  69. package/src/cli/input/keybinding-dispatch.mjs +76 -76
  70. package/src/cli/input/keybindings.mjs +96 -96
  71. package/src/cli/input/mode-state.mjs +43 -43
  72. package/src/cli/input/prompt-templates.mjs +84 -84
  73. package/src/cli/input/select-with-keyboard.mjs +86 -86
  74. package/src/cli/permissions.mjs +103 -103
  75. package/src/cli/repl-commands.mjs +86 -86
  76. package/src/cli/repl-loop.mjs +183 -183
  77. package/src/cli/selector-list.mjs +21 -21
  78. package/src/cli/session/pi-session-switch-command.mjs +41 -41
  79. package/src/cli/session/session-command.mjs +23 -23
  80. package/src/cli/session/session-list-command.mjs +68 -68
  81. package/src/cli/session/session-name-command.mjs +26 -26
  82. package/src/cli/session/session-source-command.mjs +89 -89
  83. package/src/cli/session/session-switch-command.mjs +1 -1
  84. package/src/cli/shell/shell-command.mjs +55 -55
  85. package/src/cli/shell/shell-drawer-controls.mjs +33 -33
  86. package/src/cli/shell/shell-drawer.mjs +192 -192
  87. package/src/cli/shell/shell-split-layout.mjs +70 -70
  88. package/src/cli/slash-commands.mjs +192 -192
  89. package/src/cli/startup/create-runtime-runner.mjs +61 -61
  90. package/src/cli/startup/runtime-close.mjs +23 -23
  91. package/src/cli/startup/startup-banner.mjs +71 -71
  92. package/src/cli/startup/startup-session.mjs +51 -51
  93. package/src/cli/status-line-updater.mjs +75 -75
  94. package/src/cli/tool-output.mjs +9 -9
  95. package/src/cli/tui/editor/external-editor-runner.mjs +24 -24
  96. package/src/cli/tui/input/mouse-selection-controller.mjs +91 -91
  97. package/src/cli/tui/input/mouse-tracking.mjs +20 -20
  98. package/src/cli/tui/layout/main-pane-layout.mjs +47 -47
  99. package/src/cli/tui/layout/safe-render-boundary.mjs +46 -46
  100. package/src/cli/tui/markdown-renderer.mjs +285 -285
  101. package/src/cli/tui/output/scroll-state.mjs +79 -79
  102. package/src/cli/tui/output/text-line-renderer.mjs +50 -50
  103. package/src/cli/tui/output/tool-card-renderer.mjs +59 -59
  104. package/src/cli/tui/output/visible-lines.mjs +8 -8
  105. package/src/cli/tui/output-buffer.mjs +293 -293
  106. package/src/cli/tui/permission-request-ui.mjs +18 -18
  107. package/src/cli/tui/recall-rendering.mjs +28 -25
  108. package/src/cli/tui/render/render-scheduler.mjs +26 -26
  109. package/src/cli/tui/render/stream-delta-buffer.mjs +46 -46
  110. package/src/cli/tui/select/editor-select-list.mjs +111 -111
  111. package/src/cli/tui/selection-screen.mjs +269 -269
  112. package/src/cli/tui/status/retry-status.mjs +72 -72
  113. package/src/cli/tui/status/spinner-status.mjs +42 -42
  114. package/src/cli/tui/status/status-bar.mjs +225 -225
  115. package/src/cli/tui/syntax/highlighting.mjs +260 -260
  116. package/src/cli/tui/syntax/languages.mjs +91 -91
  117. package/src/cli/tui/syntax/tree-sitter/bash.highlights.scm +261 -261
  118. package/src/cli/tui/syntax/tree-sitter/c.highlights.scm +341 -341
  119. package/src/cli/tui/syntax/tree-sitter/cpp.highlights.scm +268 -268
  120. package/src/cli/tui/syntax/tree-sitter/csharp.highlights.scm +577 -577
  121. package/src/cli/tui/syntax/tree-sitter/css.highlights.scm +109 -109
  122. package/src/cli/tui/syntax/tree-sitter/diff.highlights.scm +49 -49
  123. package/src/cli/tui/syntax/tree-sitter/go.highlights.scm +254 -254
  124. package/src/cli/tui/syntax/tree-sitter/html.highlights.scm +13 -13
  125. package/src/cli/tui/syntax/tree-sitter/java.highlights.scm +330 -330
  126. package/src/cli/tui/syntax/tree-sitter/json.highlights.scm +38 -38
  127. package/src/cli/tui/syntax/tree-sitter/php.highlights.scm +203 -203
  128. package/src/cli/tui/syntax/tree-sitter/python.highlights.scm +137 -137
  129. package/src/cli/tui/syntax/tree-sitter/ruby.highlights.scm +309 -309
  130. package/src/cli/tui/syntax/tree-sitter/rust.highlights.scm +531 -531
  131. package/src/cli/tui/syntax/tree-sitter/toml.highlights.scm +39 -39
  132. package/src/cli/tui/syntax/tree-sitter/tsx.highlights.scm +35 -35
  133. package/src/cli/tui/syntax/tree-sitter/typescript.highlights.scm +35 -35
  134. package/src/cli/tui/syntax/tree-sitter/yaml.highlights.scm +99 -99
  135. package/src/cli/tui/tool-rendering.mjs +87 -87
  136. package/src/cli/tui/tui-diff-rendering.mjs +157 -157
  137. package/src/cli/tui/tui-handlers.mjs +111 -111
  138. package/src/cli/tui/tui-input-controller.mjs +61 -61
  139. package/src/cli/tui/ui-theme.mjs +157 -157
  140. package/src/cli/ui.mjs +297 -297
  141. package/src/config/config-json.mjs +108 -84
  142. package/src/config/dotenv.mjs +20 -20
  143. package/src/config/features.mjs +75 -75
  144. package/src/config/loader.mjs +156 -143
  145. package/src/config/settings-command.mjs +97 -97
  146. package/src/context/engine.mjs +199 -198
  147. package/src/context/injections.mjs +26 -26
  148. package/src/context/profiles.mjs +39 -39
  149. package/src/context/project-context.mjs +20 -20
  150. package/src/context/session-status.mjs +25 -17
  151. package/src/context/shell-layers.mjs +23 -23
  152. package/src/context/system-core/base.md +51 -50
  153. package/src/context/system-core/prompts/deepseek-v4-pro.md +3 -3
  154. package/src/context/system-core/prompts/default.md +3 -3
  155. package/src/context/system-core.mjs +35 -35
  156. package/src/debug/logger.mjs +141 -141
  157. package/src/debug/model-context-dumper.mjs +52 -52
  158. package/src/extensions/discovery.mjs +40 -40
  159. package/src/extensions/lifecycle-adapter.mjs +210 -210
  160. package/src/extensions/lifecycle-manifest.mjs +69 -69
  161. package/src/image-gen/index.mjs +7 -7
  162. package/src/image-gen/provider.mjs +231 -231
  163. package/src/image-gen/tool.mjs +84 -84
  164. package/src/lsp/client.mjs +257 -257
  165. package/src/lsp/diagnostic-store.mjs +42 -42
  166. package/src/lsp/diagnostics-format.mjs +72 -72
  167. package/src/lsp/managed-node-server.mjs +99 -99
  168. package/src/lsp/path-match.mjs +10 -10
  169. package/src/lsp/server-definitions.mjs +188 -188
  170. package/src/lsp/servers.mjs +165 -165
  171. package/src/lsp/service.mjs +110 -110
  172. package/src/lsp/status-message.mjs +9 -9
  173. package/src/lsp/typescript-project-resolver.mjs +186 -186
  174. package/src/main.mjs +294 -299
  175. package/src/mcp/client.mjs +195 -195
  176. package/src/mcp/config.mjs +130 -130
  177. package/src/mcp/index.mjs +48 -48
  178. package/src/mcp/tools.mjs +98 -98
  179. package/src/memory/command.mjs +120 -0
  180. package/src/memory/markdown/markdown-delete.mjs +23 -23
  181. package/src/memory/markdown/markdown-format.mjs +128 -128
  182. package/src/memory/markdown/markdown-recall.mjs +28 -28
  183. package/src/memory/markdown/ripgrep.mjs +16 -16
  184. package/src/memory/markdown/sqlite-index.mjs +87 -87
  185. package/src/memory/markdown-store.mjs +272 -286
  186. package/src/memory/markdown-tools.mjs +174 -103
  187. package/src/memory/remote/client.mjs +68 -0
  188. package/src/memory/remote/config.mjs +52 -0
  189. package/src/memory/remote/server.mjs +99 -0
  190. package/src/memory/search.mjs +183 -0
  191. package/src/network/environment.mjs +131 -131
  192. package/src/notification/desktop-notifier.mjs +262 -262
  193. package/src/platform/open-file.mjs +28 -28
  194. package/src/platform/spawn-command.mjs +27 -27
  195. package/src/provider/accept-command.mjs +89 -89
  196. package/src/provider/command.mjs +21 -21
  197. package/src/provider/config-command.mjs +129 -129
  198. package/src/provider/custom-provider.mjs +113 -113
  199. package/src/provider/hosted-tools.mjs +111 -111
  200. package/src/provider/presets.mjs +72 -72
  201. package/src/provider/share-command.mjs +79 -79
  202. package/src/provider/share-payload.mjs +52 -52
  203. package/src/session/attachment-display.mjs +16 -16
  204. package/src/session/attachment-references.mjs +65 -65
  205. package/src/session/attachments.mjs +140 -140
  206. package/src/session/persist.mjs +1 -1
  207. package/src/session/pi-manager.mjs +34 -34
  208. package/src/session/session-utils.mjs +16 -16
  209. package/src/session/sidecar-sync.mjs +19 -19
  210. package/src/session/sidecar.mjs +69 -69
  211. package/src/session/transcript.mjs +83 -83
  212. package/src/session/tree.mjs +42 -42
  213. package/src/shell/cli-runtime.mjs +11 -11
  214. package/src/shell/hints.mjs +12 -12
  215. package/src/shell/node-pty-adapter.mjs +81 -81
  216. package/src/shell/runtime-state.mjs +126 -126
  217. package/src/shell/runtime.mjs +252 -252
  218. package/src/shell/screen-buffer.mjs +136 -136
  219. package/src/shell/tool-read.mjs +74 -74
  220. package/src/shell/tools.mjs +299 -299
  221. package/src/supergrok/actions/image-generate.mjs +60 -60
  222. package/src/supergrok/actions/search.mjs +78 -78
  223. package/src/supergrok/auth.mjs +36 -36
  224. package/src/supergrok/constants.mjs +18 -18
  225. package/src/supergrok/oauth-provider.mjs +278 -278
  226. package/src/supergrok/provider.mjs +35 -35
  227. package/src/supergrok/response.mjs +76 -76
  228. package/src/supergrok/tool.mjs +61 -61
  229. package/src/text/ansi.mjs +3 -3
  230. package/src/web/config-command.mjs +43 -43
  231. package/src/web/fetch.mjs +78 -78
  232. package/src/web/presets.mjs +16 -16
  233. package/src/web/search.mjs +83 -83
  234. package/src/web/tools.mjs +107 -107
@@ -1,577 +1,577 @@
1
- [
2
- (identifier)
3
- (preproc_arg)
4
- ] @variable
5
-
6
- ((preproc_arg) @constant.macro
7
- (#lua-match? @constant.macro "^[_A-Z][_A-Z0-9]*$"))
8
-
9
- ((identifier) @keyword
10
- (#eq? @keyword "value")
11
- (#has-ancestor? @keyword accessor_declaration))
12
-
13
- (method_declaration
14
- name: (identifier) @function.method)
15
-
16
- (local_function_statement
17
- name: (identifier) @function.method)
18
-
19
- (method_declaration
20
- returns: [
21
- (identifier) @type
22
- (generic_name
23
- (identifier) @type)
24
- ])
25
-
26
- (event_declaration
27
- type: (identifier) @type)
28
-
29
- (event_declaration
30
- name: (identifier) @variable.member)
31
-
32
- (event_field_declaration
33
- (variable_declaration
34
- (variable_declarator
35
- name: (identifier) @variable.member)))
36
-
37
- (declaration_pattern
38
- type: (identifier) @type)
39
-
40
- (local_function_statement
41
- type: (identifier) @type)
42
-
43
- (interpolation) @none
44
-
45
- (member_access_expression
46
- name: (identifier) @variable.member)
47
-
48
- (invocation_expression
49
- (member_access_expression
50
- name: (identifier) @function.method.call))
51
-
52
- (invocation_expression
53
- function: (conditional_access_expression
54
- (member_binding_expression
55
- name: (identifier) @function.method.call)))
56
-
57
- (namespace_declaration
58
- name: [
59
- (qualified_name)
60
- (identifier)
61
- ] @module)
62
-
63
- (qualified_name
64
- (identifier) @type)
65
-
66
- (namespace_declaration
67
- name: (identifier) @module)
68
-
69
- (file_scoped_namespace_declaration
70
- name: (identifier) @module)
71
-
72
- (qualified_name
73
- (identifier) @module
74
- (#not-has-ancestor? @module method_declaration)
75
- (#not-has-ancestor? @module record_declaration)
76
- (#has-ancestor? @module namespace_declaration file_scoped_namespace_declaration))
77
-
78
- (invocation_expression
79
- (identifier) @function.method.call)
80
-
81
- (field_declaration
82
- (variable_declaration
83
- (variable_declarator
84
- (identifier) @variable.member)))
85
-
86
- (initializer_expression
87
- (assignment_expression
88
- left: (identifier) @variable.member))
89
-
90
- (parameter
91
- name: (identifier) @variable.parameter)
92
-
93
- (parameter_list
94
- name: (identifier) @variable.parameter)
95
-
96
- (bracketed_parameter_list
97
- name: (identifier) @variable.parameter)
98
-
99
- (implicit_parameter) @variable.parameter
100
-
101
- (parameter_list
102
- (parameter
103
- type: (identifier) @type))
104
-
105
- (integer_literal) @number
106
-
107
- (real_literal) @number.float
108
-
109
- (null_literal) @constant.builtin
110
-
111
- (calling_convention
112
- [
113
- (identifier)
114
- "Cdecl"
115
- "Stdcall"
116
- "Thiscall"
117
- "Fastcall"
118
- ] @attribute.builtin)
119
-
120
- (character_literal) @character
121
-
122
- [
123
- (string_literal)
124
- (raw_string_literal)
125
- (verbatim_string_literal)
126
- (interpolated_string_expression)
127
- ] @string
128
-
129
- (escape_sequence) @string.escape
130
-
131
- [
132
- "true"
133
- "false"
134
- ] @boolean
135
-
136
- (predefined_type) @type.builtin
137
-
138
- (implicit_type) @keyword
139
-
140
- (comment) @comment @spell
141
-
142
- ((comment) @comment.documentation
143
- (#lua-match? @comment.documentation "^/[*][*][^*].*[*]/$"))
144
-
145
- ((comment) @comment.documentation
146
- (#lua-match? @comment.documentation "^///[^/]"))
147
-
148
- ((comment) @comment.documentation
149
- (#lua-match? @comment.documentation "^///$"))
150
-
151
- (using_directive
152
- (identifier) @type)
153
-
154
- (using_directive
155
- (type) @type.definition)
156
-
157
- (property_declaration
158
- name: (identifier) @property)
159
-
160
- (property_declaration
161
- type: (identifier) @type)
162
-
163
- (nullable_type
164
- type: (identifier) @type)
165
-
166
- (array_type
167
- type: (identifier) @type)
168
-
169
- (ref_type
170
- type: (identifier) @type)
171
-
172
- (pointer_type
173
- type: (identifier) @type)
174
-
175
- (catch_declaration
176
- type: (identifier) @type)
177
-
178
- (interface_declaration
179
- name: (identifier) @type)
180
-
181
- (class_declaration
182
- name: (identifier) @type)
183
-
184
- (record_declaration
185
- name: (identifier) @type)
186
-
187
- (struct_declaration
188
- name: (identifier) @type)
189
-
190
- (enum_declaration
191
- name: (identifier) @type)
192
-
193
- (enum_member_declaration
194
- name: (identifier) @variable.member)
195
-
196
- (operator_declaration
197
- type: (identifier) @type)
198
-
199
- (conversion_operator_declaration
200
- type: (identifier) @type)
201
-
202
- (explicit_interface_specifier
203
- [
204
- (identifier) @type
205
- (generic_name
206
- (identifier) @type)
207
- ])
208
-
209
- (explicit_interface_specifier
210
- (identifier) @type)
211
-
212
- (primary_constructor_base_type
213
- type: (identifier) @type)
214
-
215
- [
216
- "assembly"
217
- "module"
218
- "this"
219
- "base"
220
- ] @variable.builtin
221
-
222
- (constructor_declaration
223
- name: (identifier) @constructor)
224
-
225
- (destructor_declaration
226
- name: (identifier) @constructor)
227
-
228
- (constructor_initializer
229
- "base" @constructor)
230
-
231
- (variable_declaration
232
- (identifier) @type)
233
-
234
- (object_creation_expression
235
- (identifier) @type)
236
-
237
- ; Generic Types.
238
- (typeof_expression
239
- (generic_name
240
- (identifier) @type))
241
-
242
- (type_argument_list
243
- (generic_name
244
- (identifier) @type))
245
-
246
- (base_list
247
- (generic_name
248
- (identifier) @type))
249
-
250
- (type_parameter_constraint
251
- [
252
- (identifier) @type
253
- (type
254
- (generic_name
255
- (identifier) @type))
256
- ])
257
-
258
- (object_creation_expression
259
- (generic_name
260
- (identifier) @type))
261
-
262
- (property_declaration
263
- (generic_name
264
- (identifier) @type))
265
-
266
- (_
267
- type: (generic_name
268
- (identifier) @type))
269
-
270
- ; Generic Method invocation with generic type
271
- (invocation_expression
272
- function: (generic_name
273
- .
274
- (identifier) @function.method.call))
275
-
276
- (invocation_expression
277
- (member_access_expression
278
- (generic_name
279
- (identifier) @function.method)))
280
-
281
- (base_list
282
- (identifier) @type)
283
-
284
- (type_argument_list
285
- (identifier) @type)
286
-
287
- (type_parameter_list
288
- (type_parameter) @type)
289
-
290
- (type_parameter
291
- name: (identifier) @type)
292
-
293
- (type_parameter_constraints_clause
294
- "where"
295
- .
296
- (identifier) @type)
297
-
298
- (attribute
299
- name: (identifier) @attribute)
300
-
301
- (foreach_statement
302
- type: (identifier) @type)
303
-
304
- (goto_statement
305
- (identifier) @label)
306
-
307
- (labeled_statement
308
- (identifier) @label)
309
-
310
- (tuple_element
311
- type: (identifier) @type)
312
-
313
- (tuple_expression
314
- (argument
315
- (declaration_expression
316
- type: (identifier) @type)))
317
-
318
- (cast_expression
319
- type: (identifier) @type)
320
-
321
- (lambda_expression
322
- type: (identifier) @type)
323
-
324
- (as_expression
325
- right: (identifier) @type)
326
-
327
- (typeof_expression
328
- (identifier) @type)
329
-
330
- (preproc_error) @keyword.exception
331
-
332
- [
333
- "#define"
334
- "#undef"
335
- ] @keyword.directive.define
336
-
337
- [
338
- "#if"
339
- "#elif"
340
- "#else"
341
- "#endif"
342
- "#region"
343
- "#endregion"
344
- "#line"
345
- "#pragma"
346
- "#nullable"
347
- "#error"
348
- (shebang_directive)
349
- ] @keyword.directive
350
-
351
- [
352
- (preproc_line)
353
- (preproc_pragma)
354
- (preproc_nullable)
355
- ] @constant.macro
356
-
357
- (preproc_pragma
358
- (identifier) @constant)
359
-
360
- (preproc_if
361
- (identifier) @constant)
362
-
363
- [
364
- "if"
365
- "else"
366
- "switch"
367
- "break"
368
- "case"
369
- "when"
370
- ] @keyword.conditional
371
-
372
- [
373
- "while"
374
- "for"
375
- "do"
376
- "continue"
377
- "goto"
378
- "foreach"
379
- ] @keyword.repeat
380
-
381
- [
382
- "try"
383
- "catch"
384
- "throw"
385
- "finally"
386
- ] @keyword.exception
387
-
388
- [
389
- "+"
390
- "?"
391
- ":"
392
- "++"
393
- "-"
394
- "--"
395
- "&"
396
- "&&"
397
- "|"
398
- "||"
399
- "!"
400
- "!="
401
- "=="
402
- "*"
403
- "/"
404
- "%"
405
- "<"
406
- "<="
407
- ">"
408
- ">="
409
- "="
410
- "-="
411
- "+="
412
- "*="
413
- "/="
414
- "%="
415
- "^"
416
- "^="
417
- "&="
418
- "|="
419
- "~"
420
- ">>"
421
- ">>>"
422
- "<<"
423
- "<<="
424
- ">>="
425
- ">>>="
426
- "=>"
427
- "??"
428
- "??="
429
- ".."
430
- ] @operator
431
-
432
- (list_pattern
433
- ".." @character.special)
434
-
435
- (discard) @character.special
436
-
437
- [
438
- ";"
439
- "."
440
- ","
441
- ":"
442
- ] @punctuation.delimiter
443
-
444
- (conditional_expression
445
- [
446
- "?"
447
- ":"
448
- ] @keyword.conditional.ternary)
449
-
450
- [
451
- "["
452
- "]"
453
- "{"
454
- "}"
455
- "("
456
- ")"
457
- ] @punctuation.bracket
458
-
459
- (interpolation_brace) @punctuation.special
460
-
461
- (type_argument_list
462
- [
463
- "<"
464
- ">"
465
- ] @punctuation.bracket)
466
-
467
- [
468
- "using"
469
- "as"
470
- ] @keyword.import
471
-
472
- (alias_qualified_name
473
- (identifier
474
- "global") @keyword.import)
475
-
476
- [
477
- "with"
478
- "new"
479
- "typeof"
480
- "sizeof"
481
- "is"
482
- "and"
483
- "or"
484
- "not"
485
- "stackalloc"
486
- "__makeref"
487
- "__reftype"
488
- "__refvalue"
489
- "in"
490
- "out"
491
- "ref"
492
- ] @keyword.operator
493
-
494
- [
495
- "lock"
496
- "params"
497
- "operator"
498
- "default"
499
- "implicit"
500
- "explicit"
501
- "override"
502
- "get"
503
- "set"
504
- "init"
505
- "where"
506
- "add"
507
- "remove"
508
- "checked"
509
- "unchecked"
510
- "fixed"
511
- "alias"
512
- "file"
513
- "unsafe"
514
- ] @keyword
515
-
516
- (attribute_target_specifier
517
- .
518
- _ @keyword)
519
-
520
- [
521
- "enum"
522
- "record"
523
- "class"
524
- "struct"
525
- "interface"
526
- "namespace"
527
- "event"
528
- "delegate"
529
- ] @keyword.type
530
-
531
- [
532
- "async"
533
- "await"
534
- ] @keyword.coroutine
535
-
536
- [
537
- "const"
538
- "extern"
539
- "readonly"
540
- "static"
541
- "volatile"
542
- "required"
543
- "managed"
544
- "unmanaged"
545
- "notnull"
546
- "abstract"
547
- "private"
548
- "protected"
549
- "internal"
550
- "public"
551
- "partial"
552
- "sealed"
553
- "virtual"
554
- "global"
555
- ] @keyword.modifier
556
-
557
- (scoped_type
558
- "scoped" @keyword.modifier)
559
-
560
- (query_expression
561
- (_
562
- [
563
- "from"
564
- "orderby"
565
- "select"
566
- "group"
567
- "by"
568
- "ascending"
569
- "descending"
570
- "equals"
571
- "let"
572
- ] @keyword))
573
-
574
- [
575
- "return"
576
- "yield"
577
- ] @keyword.return
1
+ [
2
+ (identifier)
3
+ (preproc_arg)
4
+ ] @variable
5
+
6
+ ((preproc_arg) @constant.macro
7
+ (#lua-match? @constant.macro "^[_A-Z][_A-Z0-9]*$"))
8
+
9
+ ((identifier) @keyword
10
+ (#eq? @keyword "value")
11
+ (#has-ancestor? @keyword accessor_declaration))
12
+
13
+ (method_declaration
14
+ name: (identifier) @function.method)
15
+
16
+ (local_function_statement
17
+ name: (identifier) @function.method)
18
+
19
+ (method_declaration
20
+ returns: [
21
+ (identifier) @type
22
+ (generic_name
23
+ (identifier) @type)
24
+ ])
25
+
26
+ (event_declaration
27
+ type: (identifier) @type)
28
+
29
+ (event_declaration
30
+ name: (identifier) @variable.member)
31
+
32
+ (event_field_declaration
33
+ (variable_declaration
34
+ (variable_declarator
35
+ name: (identifier) @variable.member)))
36
+
37
+ (declaration_pattern
38
+ type: (identifier) @type)
39
+
40
+ (local_function_statement
41
+ type: (identifier) @type)
42
+
43
+ (interpolation) @none
44
+
45
+ (member_access_expression
46
+ name: (identifier) @variable.member)
47
+
48
+ (invocation_expression
49
+ (member_access_expression
50
+ name: (identifier) @function.method.call))
51
+
52
+ (invocation_expression
53
+ function: (conditional_access_expression
54
+ (member_binding_expression
55
+ name: (identifier) @function.method.call)))
56
+
57
+ (namespace_declaration
58
+ name: [
59
+ (qualified_name)
60
+ (identifier)
61
+ ] @module)
62
+
63
+ (qualified_name
64
+ (identifier) @type)
65
+
66
+ (namespace_declaration
67
+ name: (identifier) @module)
68
+
69
+ (file_scoped_namespace_declaration
70
+ name: (identifier) @module)
71
+
72
+ (qualified_name
73
+ (identifier) @module
74
+ (#not-has-ancestor? @module method_declaration)
75
+ (#not-has-ancestor? @module record_declaration)
76
+ (#has-ancestor? @module namespace_declaration file_scoped_namespace_declaration))
77
+
78
+ (invocation_expression
79
+ (identifier) @function.method.call)
80
+
81
+ (field_declaration
82
+ (variable_declaration
83
+ (variable_declarator
84
+ (identifier) @variable.member)))
85
+
86
+ (initializer_expression
87
+ (assignment_expression
88
+ left: (identifier) @variable.member))
89
+
90
+ (parameter
91
+ name: (identifier) @variable.parameter)
92
+
93
+ (parameter_list
94
+ name: (identifier) @variable.parameter)
95
+
96
+ (bracketed_parameter_list
97
+ name: (identifier) @variable.parameter)
98
+
99
+ (implicit_parameter) @variable.parameter
100
+
101
+ (parameter_list
102
+ (parameter
103
+ type: (identifier) @type))
104
+
105
+ (integer_literal) @number
106
+
107
+ (real_literal) @number.float
108
+
109
+ (null_literal) @constant.builtin
110
+
111
+ (calling_convention
112
+ [
113
+ (identifier)
114
+ "Cdecl"
115
+ "Stdcall"
116
+ "Thiscall"
117
+ "Fastcall"
118
+ ] @attribute.builtin)
119
+
120
+ (character_literal) @character
121
+
122
+ [
123
+ (string_literal)
124
+ (raw_string_literal)
125
+ (verbatim_string_literal)
126
+ (interpolated_string_expression)
127
+ ] @string
128
+
129
+ (escape_sequence) @string.escape
130
+
131
+ [
132
+ "true"
133
+ "false"
134
+ ] @boolean
135
+
136
+ (predefined_type) @type.builtin
137
+
138
+ (implicit_type) @keyword
139
+
140
+ (comment) @comment @spell
141
+
142
+ ((comment) @comment.documentation
143
+ (#lua-match? @comment.documentation "^/[*][*][^*].*[*]/$"))
144
+
145
+ ((comment) @comment.documentation
146
+ (#lua-match? @comment.documentation "^///[^/]"))
147
+
148
+ ((comment) @comment.documentation
149
+ (#lua-match? @comment.documentation "^///$"))
150
+
151
+ (using_directive
152
+ (identifier) @type)
153
+
154
+ (using_directive
155
+ (type) @type.definition)
156
+
157
+ (property_declaration
158
+ name: (identifier) @property)
159
+
160
+ (property_declaration
161
+ type: (identifier) @type)
162
+
163
+ (nullable_type
164
+ type: (identifier) @type)
165
+
166
+ (array_type
167
+ type: (identifier) @type)
168
+
169
+ (ref_type
170
+ type: (identifier) @type)
171
+
172
+ (pointer_type
173
+ type: (identifier) @type)
174
+
175
+ (catch_declaration
176
+ type: (identifier) @type)
177
+
178
+ (interface_declaration
179
+ name: (identifier) @type)
180
+
181
+ (class_declaration
182
+ name: (identifier) @type)
183
+
184
+ (record_declaration
185
+ name: (identifier) @type)
186
+
187
+ (struct_declaration
188
+ name: (identifier) @type)
189
+
190
+ (enum_declaration
191
+ name: (identifier) @type)
192
+
193
+ (enum_member_declaration
194
+ name: (identifier) @variable.member)
195
+
196
+ (operator_declaration
197
+ type: (identifier) @type)
198
+
199
+ (conversion_operator_declaration
200
+ type: (identifier) @type)
201
+
202
+ (explicit_interface_specifier
203
+ [
204
+ (identifier) @type
205
+ (generic_name
206
+ (identifier) @type)
207
+ ])
208
+
209
+ (explicit_interface_specifier
210
+ (identifier) @type)
211
+
212
+ (primary_constructor_base_type
213
+ type: (identifier) @type)
214
+
215
+ [
216
+ "assembly"
217
+ "module"
218
+ "this"
219
+ "base"
220
+ ] @variable.builtin
221
+
222
+ (constructor_declaration
223
+ name: (identifier) @constructor)
224
+
225
+ (destructor_declaration
226
+ name: (identifier) @constructor)
227
+
228
+ (constructor_initializer
229
+ "base" @constructor)
230
+
231
+ (variable_declaration
232
+ (identifier) @type)
233
+
234
+ (object_creation_expression
235
+ (identifier) @type)
236
+
237
+ ; Generic Types.
238
+ (typeof_expression
239
+ (generic_name
240
+ (identifier) @type))
241
+
242
+ (type_argument_list
243
+ (generic_name
244
+ (identifier) @type))
245
+
246
+ (base_list
247
+ (generic_name
248
+ (identifier) @type))
249
+
250
+ (type_parameter_constraint
251
+ [
252
+ (identifier) @type
253
+ (type
254
+ (generic_name
255
+ (identifier) @type))
256
+ ])
257
+
258
+ (object_creation_expression
259
+ (generic_name
260
+ (identifier) @type))
261
+
262
+ (property_declaration
263
+ (generic_name
264
+ (identifier) @type))
265
+
266
+ (_
267
+ type: (generic_name
268
+ (identifier) @type))
269
+
270
+ ; Generic Method invocation with generic type
271
+ (invocation_expression
272
+ function: (generic_name
273
+ .
274
+ (identifier) @function.method.call))
275
+
276
+ (invocation_expression
277
+ (member_access_expression
278
+ (generic_name
279
+ (identifier) @function.method)))
280
+
281
+ (base_list
282
+ (identifier) @type)
283
+
284
+ (type_argument_list
285
+ (identifier) @type)
286
+
287
+ (type_parameter_list
288
+ (type_parameter) @type)
289
+
290
+ (type_parameter
291
+ name: (identifier) @type)
292
+
293
+ (type_parameter_constraints_clause
294
+ "where"
295
+ .
296
+ (identifier) @type)
297
+
298
+ (attribute
299
+ name: (identifier) @attribute)
300
+
301
+ (foreach_statement
302
+ type: (identifier) @type)
303
+
304
+ (goto_statement
305
+ (identifier) @label)
306
+
307
+ (labeled_statement
308
+ (identifier) @label)
309
+
310
+ (tuple_element
311
+ type: (identifier) @type)
312
+
313
+ (tuple_expression
314
+ (argument
315
+ (declaration_expression
316
+ type: (identifier) @type)))
317
+
318
+ (cast_expression
319
+ type: (identifier) @type)
320
+
321
+ (lambda_expression
322
+ type: (identifier) @type)
323
+
324
+ (as_expression
325
+ right: (identifier) @type)
326
+
327
+ (typeof_expression
328
+ (identifier) @type)
329
+
330
+ (preproc_error) @keyword.exception
331
+
332
+ [
333
+ "#define"
334
+ "#undef"
335
+ ] @keyword.directive.define
336
+
337
+ [
338
+ "#if"
339
+ "#elif"
340
+ "#else"
341
+ "#endif"
342
+ "#region"
343
+ "#endregion"
344
+ "#line"
345
+ "#pragma"
346
+ "#nullable"
347
+ "#error"
348
+ (shebang_directive)
349
+ ] @keyword.directive
350
+
351
+ [
352
+ (preproc_line)
353
+ (preproc_pragma)
354
+ (preproc_nullable)
355
+ ] @constant.macro
356
+
357
+ (preproc_pragma
358
+ (identifier) @constant)
359
+
360
+ (preproc_if
361
+ (identifier) @constant)
362
+
363
+ [
364
+ "if"
365
+ "else"
366
+ "switch"
367
+ "break"
368
+ "case"
369
+ "when"
370
+ ] @keyword.conditional
371
+
372
+ [
373
+ "while"
374
+ "for"
375
+ "do"
376
+ "continue"
377
+ "goto"
378
+ "foreach"
379
+ ] @keyword.repeat
380
+
381
+ [
382
+ "try"
383
+ "catch"
384
+ "throw"
385
+ "finally"
386
+ ] @keyword.exception
387
+
388
+ [
389
+ "+"
390
+ "?"
391
+ ":"
392
+ "++"
393
+ "-"
394
+ "--"
395
+ "&"
396
+ "&&"
397
+ "|"
398
+ "||"
399
+ "!"
400
+ "!="
401
+ "=="
402
+ "*"
403
+ "/"
404
+ "%"
405
+ "<"
406
+ "<="
407
+ ">"
408
+ ">="
409
+ "="
410
+ "-="
411
+ "+="
412
+ "*="
413
+ "/="
414
+ "%="
415
+ "^"
416
+ "^="
417
+ "&="
418
+ "|="
419
+ "~"
420
+ ">>"
421
+ ">>>"
422
+ "<<"
423
+ "<<="
424
+ ">>="
425
+ ">>>="
426
+ "=>"
427
+ "??"
428
+ "??="
429
+ ".."
430
+ ] @operator
431
+
432
+ (list_pattern
433
+ ".." @character.special)
434
+
435
+ (discard) @character.special
436
+
437
+ [
438
+ ";"
439
+ "."
440
+ ","
441
+ ":"
442
+ ] @punctuation.delimiter
443
+
444
+ (conditional_expression
445
+ [
446
+ "?"
447
+ ":"
448
+ ] @keyword.conditional.ternary)
449
+
450
+ [
451
+ "["
452
+ "]"
453
+ "{"
454
+ "}"
455
+ "("
456
+ ")"
457
+ ] @punctuation.bracket
458
+
459
+ (interpolation_brace) @punctuation.special
460
+
461
+ (type_argument_list
462
+ [
463
+ "<"
464
+ ">"
465
+ ] @punctuation.bracket)
466
+
467
+ [
468
+ "using"
469
+ "as"
470
+ ] @keyword.import
471
+
472
+ (alias_qualified_name
473
+ (identifier
474
+ "global") @keyword.import)
475
+
476
+ [
477
+ "with"
478
+ "new"
479
+ "typeof"
480
+ "sizeof"
481
+ "is"
482
+ "and"
483
+ "or"
484
+ "not"
485
+ "stackalloc"
486
+ "__makeref"
487
+ "__reftype"
488
+ "__refvalue"
489
+ "in"
490
+ "out"
491
+ "ref"
492
+ ] @keyword.operator
493
+
494
+ [
495
+ "lock"
496
+ "params"
497
+ "operator"
498
+ "default"
499
+ "implicit"
500
+ "explicit"
501
+ "override"
502
+ "get"
503
+ "set"
504
+ "init"
505
+ "where"
506
+ "add"
507
+ "remove"
508
+ "checked"
509
+ "unchecked"
510
+ "fixed"
511
+ "alias"
512
+ "file"
513
+ "unsafe"
514
+ ] @keyword
515
+
516
+ (attribute_target_specifier
517
+ .
518
+ _ @keyword)
519
+
520
+ [
521
+ "enum"
522
+ "record"
523
+ "class"
524
+ "struct"
525
+ "interface"
526
+ "namespace"
527
+ "event"
528
+ "delegate"
529
+ ] @keyword.type
530
+
531
+ [
532
+ "async"
533
+ "await"
534
+ ] @keyword.coroutine
535
+
536
+ [
537
+ "const"
538
+ "extern"
539
+ "readonly"
540
+ "static"
541
+ "volatile"
542
+ "required"
543
+ "managed"
544
+ "unmanaged"
545
+ "notnull"
546
+ "abstract"
547
+ "private"
548
+ "protected"
549
+ "internal"
550
+ "public"
551
+ "partial"
552
+ "sealed"
553
+ "virtual"
554
+ "global"
555
+ ] @keyword.modifier
556
+
557
+ (scoped_type
558
+ "scoped" @keyword.modifier)
559
+
560
+ (query_expression
561
+ (_
562
+ [
563
+ "from"
564
+ "orderby"
565
+ "select"
566
+ "group"
567
+ "by"
568
+ "ascending"
569
+ "descending"
570
+ "equals"
571
+ "let"
572
+ ] @keyword))
573
+
574
+ [
575
+ "return"
576
+ "yield"
577
+ ] @keyword.return