march-cli 0.1.21 → 0.1.23

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 (244) hide show
  1. package/README.md +88 -0
  2. package/README.zh.md +88 -0
  3. package/bin/march.mjs +13 -13
  4. package/package.json +43 -43
  5. package/src/agent/command-exec-tool.mjs +172 -168
  6. package/src/agent/context-stats-tool.mjs +57 -57
  7. package/src/agent/editing/diff-apply.mjs +28 -28
  8. package/src/agent/editing/diff-format.mjs +57 -57
  9. package/src/agent/editing/lsp-report.mjs +69 -69
  10. package/src/agent/file-edit-tool.mjs +262 -262
  11. package/src/agent/file-tools/read-file-tool.mjs +112 -112
  12. package/src/agent/file-tools/read-image-tool.mjs +76 -76
  13. package/src/agent/model-payload-dumper.mjs +208 -208
  14. package/src/agent/pi-session/pi-session-sidecar-failure.mjs +10 -10
  15. package/src/agent/provider/payload-messages.mjs +138 -138
  16. package/src/agent/runner/codex-large-context-guard.mjs +87 -87
  17. package/src/agent/runner/codex-transport-compression.mjs +180 -180
  18. package/src/agent/runner/codex-transport-debug.mjs +113 -113
  19. package/src/agent/runner/codex-websocket-event-debug.mjs +130 -130
  20. package/src/agent/runner/fast-model.mjs +36 -36
  21. package/src/agent/runner/runner-cleanup.mjs +12 -12
  22. package/src/agent/runner/runner-init.mjs +15 -15
  23. package/src/agent/runner/runner-session-state.mjs +40 -40
  24. package/src/agent/runner/runner-utils.mjs +24 -24
  25. package/src/agent/runner.mjs +299 -299
  26. package/src/agent/runtime/ipc/ipc-peer.mjs +99 -99
  27. package/src/agent/runtime/ipc/process-ipc-transport.mjs +16 -16
  28. package/src/agent/runtime/remote-runner-client.mjs +73 -73
  29. package/src/agent/runtime/remote-ui-client.mjs +20 -20
  30. package/src/agent/runtime/runner-ipc-target.mjs +125 -125
  31. package/src/agent/runtime/runner-process-client.mjs +47 -47
  32. package/src/agent/runtime/runner-process-entry.mjs +11 -11
  33. package/src/agent/runtime/runner-process-factory.mjs +108 -108
  34. package/src/agent/runtime/runner-runtime-host.mjs +79 -79
  35. package/src/agent/runtime/runtime-factory.mjs +42 -42
  36. package/src/agent/runtime/runtime-host.mjs +34 -34
  37. package/src/agent/runtime/ui-event-bridge.mjs +95 -95
  38. package/src/agent/screen-tools/list-windows-tool.mjs +39 -39
  39. package/src/agent/screen-tools/screen-tool.mjs +49 -49
  40. package/src/agent/screen-tools/windows-screen.mjs +133 -133
  41. package/src/agent/session/session-auto-name.mjs +41 -41
  42. package/src/agent/session/session-binding.mjs +12 -12
  43. package/src/agent/session/session-options.mjs +47 -47
  44. package/src/agent/tool-names.mjs +1 -1
  45. package/src/agent/tool-result.mjs +3 -3
  46. package/src/agent/tool-summary.mjs +112 -112
  47. package/src/agent/tools.mjs +58 -58
  48. package/src/agent/turn/turn-events.mjs +111 -111
  49. package/src/agent/turn/turn-logging.mjs +30 -30
  50. package/src/agent/turn/turn-runner.mjs +196 -196
  51. package/src/agent/vision-capability.mjs +14 -14
  52. package/src/auth/login-command.mjs +90 -90
  53. package/src/auth/storage.mjs +34 -34
  54. package/src/cli/args.mjs +79 -79
  55. package/src/cli/commands/copy-command.mjs +87 -87
  56. package/src/cli/commands/export-command.mjs +206 -206
  57. package/src/cli/commands/extensions-command.mjs +53 -53
  58. package/src/cli/commands/help-command.mjs +7 -7
  59. package/src/cli/commands/model-command.mjs +141 -141
  60. package/src/cli/commands/paste-image-command.mjs +43 -43
  61. package/src/cli/commands/provider-command.mjs +59 -59
  62. package/src/cli/commands/status-command.mjs +194 -194
  63. package/src/cli/commands/thinking-command.mjs +87 -87
  64. package/src/cli/fallback-ui.mjs +156 -156
  65. package/src/cli/input/attachment-tokens.mjs +20 -20
  66. package/src/cli/input/autocomplete.mjs +74 -106
  67. package/src/cli/input/external-editor.mjs +39 -39
  68. package/src/cli/input/file-search/index.mjs +160 -0
  69. package/src/cli/input/history-store.mjs +35 -35
  70. package/src/cli/input/image-clipboard.mjs +55 -55
  71. package/src/cli/input/keybinding-dispatch.mjs +76 -76
  72. package/src/cli/input/keybindings.mjs +96 -96
  73. package/src/cli/input/mode-state.mjs +43 -43
  74. package/src/cli/input/prompt-templates.mjs +84 -84
  75. package/src/cli/input/select-with-keyboard.mjs +86 -86
  76. package/src/cli/permissions.mjs +103 -103
  77. package/src/cli/repl-commands.mjs +86 -86
  78. package/src/cli/repl-loop.mjs +183 -183
  79. package/src/cli/selector-list.mjs +21 -21
  80. package/src/cli/session/pi-session-switch-command.mjs +41 -41
  81. package/src/cli/session/session-command.mjs +23 -23
  82. package/src/cli/session/session-list-command.mjs +68 -68
  83. package/src/cli/session/session-name-command.mjs +26 -26
  84. package/src/cli/session/session-source-command.mjs +89 -89
  85. package/src/cli/session/session-switch-command.mjs +1 -1
  86. package/src/cli/shell/shell-command.mjs +55 -55
  87. package/src/cli/shell/shell-drawer-controls.mjs +33 -33
  88. package/src/cli/shell/shell-drawer.mjs +192 -192
  89. package/src/cli/shell/shell-split-layout.mjs +70 -70
  90. package/src/cli/slash-commands.mjs +192 -192
  91. package/src/cli/startup/create-runtime-runner.mjs +61 -61
  92. package/src/cli/startup/runtime-close.mjs +23 -23
  93. package/src/cli/startup/startup-banner.mjs +71 -71
  94. package/src/cli/startup/startup-session.mjs +51 -51
  95. package/src/cli/status-line-updater.mjs +75 -75
  96. package/src/cli/tool-output.mjs +9 -9
  97. package/src/cli/tui/editor/external-editor-runner.mjs +24 -24
  98. package/src/cli/tui/input/mouse-selection-controller.mjs +91 -91
  99. package/src/cli/tui/input/mouse-tracking.mjs +20 -20
  100. package/src/cli/tui/layout/main-pane-layout.mjs +47 -47
  101. package/src/cli/tui/layout/safe-render-boundary.mjs +46 -46
  102. package/src/cli/tui/markdown-renderer.mjs +285 -285
  103. package/src/cli/tui/output/scroll-state.mjs +79 -79
  104. package/src/cli/tui/output/text-line-renderer.mjs +50 -50
  105. package/src/cli/tui/output/tool-card-renderer.mjs +59 -59
  106. package/src/cli/tui/output/visible-lines.mjs +8 -8
  107. package/src/cli/tui/output-buffer.mjs +293 -293
  108. package/src/cli/tui/permission-request-ui.mjs +18 -18
  109. package/src/cli/tui/recall-rendering.mjs +25 -25
  110. package/src/cli/tui/render/render-scheduler.mjs +26 -26
  111. package/src/cli/tui/render/stream-delta-buffer.mjs +46 -46
  112. package/src/cli/tui/select/editor-select-list.mjs +111 -111
  113. package/src/cli/tui/selection-screen.mjs +269 -269
  114. package/src/cli/tui/status/retry-status.mjs +72 -72
  115. package/src/cli/tui/status/spinner-status.mjs +42 -42
  116. package/src/cli/tui/status/status-bar.mjs +225 -225
  117. package/src/cli/tui/syntax/highlighting.mjs +260 -260
  118. package/src/cli/tui/syntax/languages.mjs +91 -91
  119. package/src/cli/tui/syntax/tree-sitter/bash.highlights.scm +261 -261
  120. package/src/cli/tui/syntax/tree-sitter/c.highlights.scm +341 -341
  121. package/src/cli/tui/syntax/tree-sitter/cpp.highlights.scm +268 -268
  122. package/src/cli/tui/syntax/tree-sitter/csharp.highlights.scm +577 -577
  123. package/src/cli/tui/syntax/tree-sitter/css.highlights.scm +109 -109
  124. package/src/cli/tui/syntax/tree-sitter/diff.highlights.scm +49 -49
  125. package/src/cli/tui/syntax/tree-sitter/go.highlights.scm +254 -254
  126. package/src/cli/tui/syntax/tree-sitter/html.highlights.scm +13 -13
  127. package/src/cli/tui/syntax/tree-sitter/java.highlights.scm +330 -330
  128. package/src/cli/tui/syntax/tree-sitter/json.highlights.scm +38 -38
  129. package/src/cli/tui/syntax/tree-sitter/php.highlights.scm +203 -203
  130. package/src/cli/tui/syntax/tree-sitter/python.highlights.scm +137 -137
  131. package/src/cli/tui/syntax/tree-sitter/ruby.highlights.scm +309 -309
  132. package/src/cli/tui/syntax/tree-sitter/rust.highlights.scm +531 -531
  133. package/src/cli/tui/syntax/tree-sitter/toml.highlights.scm +39 -39
  134. package/src/cli/tui/syntax/tree-sitter/tsx.highlights.scm +35 -35
  135. package/src/cli/tui/syntax/tree-sitter/typescript.highlights.scm +35 -35
  136. package/src/cli/tui/syntax/tree-sitter/yaml.highlights.scm +99 -99
  137. package/src/cli/tui/tool-rendering.mjs +87 -87
  138. package/src/cli/tui/tui-diff-rendering.mjs +157 -157
  139. package/src/cli/tui/tui-handlers.mjs +111 -111
  140. package/src/cli/tui/tui-input-controller.mjs +61 -61
  141. package/src/cli/tui/ui-theme.mjs +157 -157
  142. package/src/cli/ui.mjs +297 -297
  143. package/src/config/config-json.mjs +84 -84
  144. package/src/config/dotenv.mjs +20 -20
  145. package/src/config/features.mjs +75 -75
  146. package/src/config/loader.mjs +143 -143
  147. package/src/config/settings-command.mjs +97 -97
  148. package/src/context/engine.mjs +198 -198
  149. package/src/context/injections.mjs +26 -26
  150. package/src/context/profiles.mjs +39 -39
  151. package/src/context/project-context.mjs +20 -20
  152. package/src/context/session-status.mjs +17 -17
  153. package/src/context/shell-layers.mjs +23 -23
  154. package/src/context/system-core/base.md +61 -53
  155. package/src/context/system-core/prompts/deepseek-v4-pro.md +3 -3
  156. package/src/context/system-core/prompts/default.md +3 -3
  157. package/src/context/system-core.mjs +35 -35
  158. package/src/debug/logger.mjs +141 -141
  159. package/src/debug/model-context-dumper.mjs +52 -52
  160. package/src/extensions/discovery.mjs +40 -40
  161. package/src/extensions/lifecycle-adapter.mjs +210 -210
  162. package/src/extensions/lifecycle-manifest.mjs +69 -69
  163. package/src/image-gen/index.mjs +7 -7
  164. package/src/image-gen/provider.mjs +231 -231
  165. package/src/image-gen/tool.mjs +84 -84
  166. package/src/lsp/client.mjs +257 -257
  167. package/src/lsp/diagnostic-store.mjs +42 -42
  168. package/src/lsp/diagnostics-format.mjs +72 -72
  169. package/src/lsp/managed-node-server.mjs +99 -99
  170. package/src/lsp/path-match.mjs +10 -10
  171. package/src/lsp/server-definitions.mjs +188 -188
  172. package/src/lsp/servers.mjs +165 -165
  173. package/src/lsp/service.mjs +110 -110
  174. package/src/lsp/status-message.mjs +9 -9
  175. package/src/lsp/typescript-project-resolver.mjs +186 -186
  176. package/src/main.mjs +299 -299
  177. package/src/mcp/client.mjs +195 -195
  178. package/src/mcp/config.mjs +130 -130
  179. package/src/mcp/index.mjs +48 -48
  180. package/src/mcp/tools.mjs +98 -98
  181. package/src/memory/markdown/markdown-delete.mjs +23 -23
  182. package/src/memory/markdown/markdown-format.mjs +128 -128
  183. package/src/memory/markdown/markdown-recall.mjs +28 -28
  184. package/src/memory/markdown/ripgrep.mjs +16 -16
  185. package/src/memory/markdown/sqlite-index.mjs +87 -87
  186. package/src/memory/markdown-store.mjs +286 -286
  187. package/src/memory/markdown-tools.mjs +103 -103
  188. package/src/network/environment.mjs +131 -131
  189. package/src/notification/desktop-notifier.mjs +262 -262
  190. package/src/platform/open-file.mjs +28 -28
  191. package/src/platform/spawn-command.mjs +27 -27
  192. package/src/provider/accept-command.mjs +89 -89
  193. package/src/provider/command.mjs +21 -21
  194. package/src/provider/config-command.mjs +129 -129
  195. package/src/provider/custom-provider.mjs +113 -113
  196. package/src/provider/hosted-tools.mjs +111 -111
  197. package/src/provider/presets.mjs +72 -72
  198. package/src/provider/share-command.mjs +79 -79
  199. package/src/provider/share-payload.mjs +52 -52
  200. package/src/session/attachment-display.mjs +16 -16
  201. package/src/session/attachment-references.mjs +65 -65
  202. package/src/session/attachments.mjs +140 -140
  203. package/src/session/persist.mjs +1 -1
  204. package/src/session/pi-manager.mjs +34 -34
  205. package/src/session/session-utils.mjs +16 -16
  206. package/src/session/sidecar-sync.mjs +19 -19
  207. package/src/session/sidecar.mjs +69 -69
  208. package/src/session/transcript.mjs +83 -83
  209. package/src/session/tree.mjs +42 -42
  210. package/src/shell/cli-runtime.mjs +11 -11
  211. package/src/shell/hints.mjs +12 -12
  212. package/src/shell/node-pty-adapter.mjs +81 -81
  213. package/src/shell/runtime-state.mjs +126 -126
  214. package/src/shell/runtime.mjs +252 -252
  215. package/src/shell/screen-buffer.mjs +136 -136
  216. package/src/shell/tool-read.mjs +74 -74
  217. package/src/shell/tools.mjs +299 -299
  218. package/src/supergrok/actions/image-generate.mjs +60 -60
  219. package/src/supergrok/actions/search.mjs +78 -78
  220. package/src/supergrok/auth.mjs +36 -36
  221. package/src/supergrok/constants.mjs +18 -18
  222. package/src/supergrok/oauth-provider.mjs +278 -278
  223. package/src/supergrok/provider.mjs +35 -35
  224. package/src/supergrok/response.mjs +76 -76
  225. package/src/supergrok/tool.mjs +61 -61
  226. package/src/text/ansi.mjs +3 -3
  227. package/src/web/config-command.mjs +43 -43
  228. package/src/web/fetch.mjs +78 -78
  229. package/src/web/presets.mjs +16 -16
  230. package/src/web/search.mjs +83 -83
  231. package/src/web/tools.mjs +107 -107
  232. package/src/memory/database.mjs +0 -219
  233. package/src/memory/glossary.mjs +0 -124
  234. package/src/memory/graph/graph-cascades.mjs +0 -109
  235. package/src/memory/graph/graph-diagnostics.mjs +0 -73
  236. package/src/memory/graph/graph-path-removal.mjs +0 -50
  237. package/src/memory/graph/graph-path-utils.mjs +0 -17
  238. package/src/memory/graph/graph-primitives.mjs +0 -103
  239. package/src/memory/graph/graph-read.mjs +0 -159
  240. package/src/memory/graph.mjs +0 -282
  241. package/src/memory/search.mjs +0 -142
  242. package/src/memory/snapshot.mjs +0 -86
  243. package/src/memory/system-views.mjs +0 -120
  244. package/src/memory/tools.mjs +0 -282
@@ -1,268 +1,268 @@
1
- ; inherits: c
2
-
3
- ((identifier) @variable.member
4
- (#lua-match? @variable.member "^m_.*$"))
5
-
6
- (parameter_declaration
7
- declarator: (reference_declarator) @variable.parameter)
8
-
9
- ; function(Foo ...foo)
10
- (variadic_parameter_declaration
11
- declarator: (variadic_declarator
12
- (_) @variable.parameter))
13
-
14
- ; int foo = 0
15
- (optional_parameter_declaration
16
- declarator: (_) @variable.parameter)
17
-
18
- ;(field_expression) @variable.parameter ;; How to highlight this?
19
- ((field_expression
20
- (field_identifier) @function.method) @_parent
21
- (#has-parent? @_parent template_method function_declarator))
22
-
23
- (field_declaration
24
- (field_identifier) @variable.member)
25
-
26
- (field_initializer
27
- (field_identifier) @property)
28
-
29
- (function_declarator
30
- declarator: (field_identifier) @function.method)
31
-
32
- (concept_definition
33
- name: (identifier) @type.definition)
34
-
35
- (alias_declaration
36
- name: (type_identifier) @type.definition)
37
-
38
- (auto) @type.builtin
39
-
40
- (namespace_identifier) @module
41
-
42
- ((namespace_identifier) @type
43
- (#lua-match? @type "^[%u]"))
44
-
45
- (case_statement
46
- value: (qualified_identifier
47
- (identifier) @constant))
48
-
49
- (using_declaration
50
- .
51
- "using"
52
- .
53
- "namespace"
54
- .
55
- [
56
- (qualified_identifier)
57
- (identifier)
58
- ] @module)
59
-
60
- (destructor_name
61
- (identifier) @function.method)
62
-
63
- ; functions
64
- (function_declarator
65
- (qualified_identifier
66
- (identifier) @function))
67
-
68
- (function_declarator
69
- (qualified_identifier
70
- (qualified_identifier
71
- (identifier) @function)))
72
-
73
- (function_declarator
74
- (qualified_identifier
75
- (qualified_identifier
76
- (qualified_identifier
77
- (identifier) @function))))
78
-
79
- ((qualified_identifier
80
- (qualified_identifier
81
- (qualified_identifier
82
- (qualified_identifier
83
- (identifier) @function)))) @_parent
84
- (#has-ancestor? @_parent function_declarator))
85
-
86
- (function_declarator
87
- (template_function
88
- (identifier) @function))
89
-
90
- (operator_name) @function
91
-
92
- "operator" @function
93
-
94
- "static_assert" @function.builtin
95
-
96
- (call_expression
97
- (qualified_identifier
98
- (identifier) @function.call))
99
-
100
- (call_expression
101
- (qualified_identifier
102
- (qualified_identifier
103
- (identifier) @function.call)))
104
-
105
- (call_expression
106
- (qualified_identifier
107
- (qualified_identifier
108
- (qualified_identifier
109
- (identifier) @function.call))))
110
-
111
- ((qualified_identifier
112
- (qualified_identifier
113
- (qualified_identifier
114
- (qualified_identifier
115
- (identifier) @function.call)))) @_parent
116
- (#has-ancestor? @_parent call_expression))
117
-
118
- (call_expression
119
- (template_function
120
- (identifier) @function.call))
121
-
122
- (call_expression
123
- (qualified_identifier
124
- (template_function
125
- (identifier) @function.call)))
126
-
127
- (call_expression
128
- (qualified_identifier
129
- (qualified_identifier
130
- (template_function
131
- (identifier) @function.call))))
132
-
133
- (call_expression
134
- (qualified_identifier
135
- (qualified_identifier
136
- (qualified_identifier
137
- (template_function
138
- (identifier) @function.call)))))
139
-
140
- ((qualified_identifier
141
- (qualified_identifier
142
- (qualified_identifier
143
- (qualified_identifier
144
- (template_function
145
- (identifier) @function.call))))) @_parent
146
- (#has-ancestor? @_parent call_expression))
147
-
148
- ; methods
149
- (function_declarator
150
- (template_method
151
- (field_identifier) @function.method))
152
-
153
- (call_expression
154
- (field_expression
155
- (field_identifier) @function.method.call))
156
-
157
- ; constructors
158
- ((function_declarator
159
- (qualified_identifier
160
- (identifier) @constructor))
161
- (#lua-match? @constructor "^%u"))
162
-
163
- ((call_expression
164
- function: (identifier) @constructor)
165
- (#lua-match? @constructor "^%u"))
166
-
167
- ((call_expression
168
- function: (qualified_identifier
169
- name: (identifier) @constructor))
170
- (#lua-match? @constructor "^%u"))
171
-
172
- ((call_expression
173
- function: (field_expression
174
- field: (field_identifier) @constructor))
175
- (#lua-match? @constructor "^%u"))
176
-
177
- ; constructing a type in an initializer list: Constructor (): **SuperType (1)**
178
- ((field_initializer
179
- (field_identifier) @constructor
180
- (argument_list))
181
- (#lua-match? @constructor "^%u"))
182
-
183
- ; Constants
184
- (this) @variable.builtin
185
-
186
- (null
187
- "nullptr" @constant.builtin)
188
-
189
- (true) @boolean
190
-
191
- (false) @boolean
192
-
193
- ; Literals
194
- (raw_string_literal) @string
195
-
196
- ; Keywords
197
- [
198
- "try"
199
- "catch"
200
- "noexcept"
201
- "throw"
202
- ] @keyword.exception
203
-
204
- [
205
- "decltype"
206
- "explicit"
207
- "friend"
208
- "override"
209
- "using"
210
- "requires"
211
- "constexpr"
212
- ] @keyword
213
-
214
- [
215
- "class"
216
- "namespace"
217
- "template"
218
- "typename"
219
- "concept"
220
- ] @keyword.type
221
-
222
- [
223
- "co_await"
224
- "co_yield"
225
- "co_return"
226
- ] @keyword.coroutine
227
-
228
- [
229
- "public"
230
- "private"
231
- "protected"
232
- "final"
233
- "virtual"
234
- ] @keyword.modifier
235
-
236
- [
237
- "new"
238
- "delete"
239
- "xor"
240
- "bitand"
241
- "bitor"
242
- "compl"
243
- "not"
244
- "xor_eq"
245
- "and_eq"
246
- "or_eq"
247
- "not_eq"
248
- "and"
249
- "or"
250
- ] @keyword.operator
251
-
252
- "<=>" @operator
253
-
254
- "::" @punctuation.delimiter
255
-
256
- (template_argument_list
257
- [
258
- "<"
259
- ">"
260
- ] @punctuation.bracket)
261
-
262
- (template_parameter_list
263
- [
264
- "<"
265
- ">"
266
- ] @punctuation.bracket)
267
-
268
- (literal_suffix) @operator
1
+ ; inherits: c
2
+
3
+ ((identifier) @variable.member
4
+ (#lua-match? @variable.member "^m_.*$"))
5
+
6
+ (parameter_declaration
7
+ declarator: (reference_declarator) @variable.parameter)
8
+
9
+ ; function(Foo ...foo)
10
+ (variadic_parameter_declaration
11
+ declarator: (variadic_declarator
12
+ (_) @variable.parameter))
13
+
14
+ ; int foo = 0
15
+ (optional_parameter_declaration
16
+ declarator: (_) @variable.parameter)
17
+
18
+ ;(field_expression) @variable.parameter ;; How to highlight this?
19
+ ((field_expression
20
+ (field_identifier) @function.method) @_parent
21
+ (#has-parent? @_parent template_method function_declarator))
22
+
23
+ (field_declaration
24
+ (field_identifier) @variable.member)
25
+
26
+ (field_initializer
27
+ (field_identifier) @property)
28
+
29
+ (function_declarator
30
+ declarator: (field_identifier) @function.method)
31
+
32
+ (concept_definition
33
+ name: (identifier) @type.definition)
34
+
35
+ (alias_declaration
36
+ name: (type_identifier) @type.definition)
37
+
38
+ (auto) @type.builtin
39
+
40
+ (namespace_identifier) @module
41
+
42
+ ((namespace_identifier) @type
43
+ (#lua-match? @type "^[%u]"))
44
+
45
+ (case_statement
46
+ value: (qualified_identifier
47
+ (identifier) @constant))
48
+
49
+ (using_declaration
50
+ .
51
+ "using"
52
+ .
53
+ "namespace"
54
+ .
55
+ [
56
+ (qualified_identifier)
57
+ (identifier)
58
+ ] @module)
59
+
60
+ (destructor_name
61
+ (identifier) @function.method)
62
+
63
+ ; functions
64
+ (function_declarator
65
+ (qualified_identifier
66
+ (identifier) @function))
67
+
68
+ (function_declarator
69
+ (qualified_identifier
70
+ (qualified_identifier
71
+ (identifier) @function)))
72
+
73
+ (function_declarator
74
+ (qualified_identifier
75
+ (qualified_identifier
76
+ (qualified_identifier
77
+ (identifier) @function))))
78
+
79
+ ((qualified_identifier
80
+ (qualified_identifier
81
+ (qualified_identifier
82
+ (qualified_identifier
83
+ (identifier) @function)))) @_parent
84
+ (#has-ancestor? @_parent function_declarator))
85
+
86
+ (function_declarator
87
+ (template_function
88
+ (identifier) @function))
89
+
90
+ (operator_name) @function
91
+
92
+ "operator" @function
93
+
94
+ "static_assert" @function.builtin
95
+
96
+ (call_expression
97
+ (qualified_identifier
98
+ (identifier) @function.call))
99
+
100
+ (call_expression
101
+ (qualified_identifier
102
+ (qualified_identifier
103
+ (identifier) @function.call)))
104
+
105
+ (call_expression
106
+ (qualified_identifier
107
+ (qualified_identifier
108
+ (qualified_identifier
109
+ (identifier) @function.call))))
110
+
111
+ ((qualified_identifier
112
+ (qualified_identifier
113
+ (qualified_identifier
114
+ (qualified_identifier
115
+ (identifier) @function.call)))) @_parent
116
+ (#has-ancestor? @_parent call_expression))
117
+
118
+ (call_expression
119
+ (template_function
120
+ (identifier) @function.call))
121
+
122
+ (call_expression
123
+ (qualified_identifier
124
+ (template_function
125
+ (identifier) @function.call)))
126
+
127
+ (call_expression
128
+ (qualified_identifier
129
+ (qualified_identifier
130
+ (template_function
131
+ (identifier) @function.call))))
132
+
133
+ (call_expression
134
+ (qualified_identifier
135
+ (qualified_identifier
136
+ (qualified_identifier
137
+ (template_function
138
+ (identifier) @function.call)))))
139
+
140
+ ((qualified_identifier
141
+ (qualified_identifier
142
+ (qualified_identifier
143
+ (qualified_identifier
144
+ (template_function
145
+ (identifier) @function.call))))) @_parent
146
+ (#has-ancestor? @_parent call_expression))
147
+
148
+ ; methods
149
+ (function_declarator
150
+ (template_method
151
+ (field_identifier) @function.method))
152
+
153
+ (call_expression
154
+ (field_expression
155
+ (field_identifier) @function.method.call))
156
+
157
+ ; constructors
158
+ ((function_declarator
159
+ (qualified_identifier
160
+ (identifier) @constructor))
161
+ (#lua-match? @constructor "^%u"))
162
+
163
+ ((call_expression
164
+ function: (identifier) @constructor)
165
+ (#lua-match? @constructor "^%u"))
166
+
167
+ ((call_expression
168
+ function: (qualified_identifier
169
+ name: (identifier) @constructor))
170
+ (#lua-match? @constructor "^%u"))
171
+
172
+ ((call_expression
173
+ function: (field_expression
174
+ field: (field_identifier) @constructor))
175
+ (#lua-match? @constructor "^%u"))
176
+
177
+ ; constructing a type in an initializer list: Constructor (): **SuperType (1)**
178
+ ((field_initializer
179
+ (field_identifier) @constructor
180
+ (argument_list))
181
+ (#lua-match? @constructor "^%u"))
182
+
183
+ ; Constants
184
+ (this) @variable.builtin
185
+
186
+ (null
187
+ "nullptr" @constant.builtin)
188
+
189
+ (true) @boolean
190
+
191
+ (false) @boolean
192
+
193
+ ; Literals
194
+ (raw_string_literal) @string
195
+
196
+ ; Keywords
197
+ [
198
+ "try"
199
+ "catch"
200
+ "noexcept"
201
+ "throw"
202
+ ] @keyword.exception
203
+
204
+ [
205
+ "decltype"
206
+ "explicit"
207
+ "friend"
208
+ "override"
209
+ "using"
210
+ "requires"
211
+ "constexpr"
212
+ ] @keyword
213
+
214
+ [
215
+ "class"
216
+ "namespace"
217
+ "template"
218
+ "typename"
219
+ "concept"
220
+ ] @keyword.type
221
+
222
+ [
223
+ "co_await"
224
+ "co_yield"
225
+ "co_return"
226
+ ] @keyword.coroutine
227
+
228
+ [
229
+ "public"
230
+ "private"
231
+ "protected"
232
+ "final"
233
+ "virtual"
234
+ ] @keyword.modifier
235
+
236
+ [
237
+ "new"
238
+ "delete"
239
+ "xor"
240
+ "bitand"
241
+ "bitor"
242
+ "compl"
243
+ "not"
244
+ "xor_eq"
245
+ "and_eq"
246
+ "or_eq"
247
+ "not_eq"
248
+ "and"
249
+ "or"
250
+ ] @keyword.operator
251
+
252
+ "<=>" @operator
253
+
254
+ "::" @punctuation.delimiter
255
+
256
+ (template_argument_list
257
+ [
258
+ "<"
259
+ ">"
260
+ ] @punctuation.bracket)
261
+
262
+ (template_parameter_list
263
+ [
264
+ "<"
265
+ ">"
266
+ ] @punctuation.bracket)
267
+
268
+ (literal_suffix) @operator