herm-tui 1.0.0-dev.1 → 1.0.0-dev.2

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 (187) hide show
  1. package/highlights-eq9cgrbb.scm +604 -0
  2. package/highlights-ghv9g403.scm +205 -0
  3. package/highlights-hk7bwhj4.scm +284 -0
  4. package/highlights-r812a2qc.scm +150 -0
  5. package/highlights-x6tmsnaa.scm +115 -0
  6. package/index.js +10375 -0
  7. package/injections-73j83es3.scm +27 -0
  8. package/package.json +14 -64
  9. package/parser.worker.js +8 -0
  10. package/tree-sitter-3jzf13jk.wasm +0 -0
  11. package/tree-sitter-javascript-nd0q4pe9.wasm +0 -0
  12. package/tree-sitter-markdown-411r6y9b.wasm +0 -0
  13. package/tree-sitter-markdown_inline-j5349f42.wasm +0 -0
  14. package/tree-sitter-typescript-zxjzwt75.wasm +0 -0
  15. package/tree-sitter-zig-e78zbjpm.wasm +0 -0
  16. package/scripts/postinstall.ts +0 -29
  17. package/src/app/gateway.tsx +0 -83
  18. package/src/app/gatewayEvents.ts +0 -203
  19. package/src/app/launch.ts +0 -41
  20. package/src/app/skin.tsx +0 -31
  21. package/src/app/spawnHistory.ts +0 -75
  22. package/src/app/tabs.ts +0 -23
  23. package/src/app/turnReducer.ts +0 -390
  24. package/src/app/useAppKeys.ts +0 -268
  25. package/src/app/useAtRefPopover.ts +0 -99
  26. package/src/app/useInputHistory.ts +0 -66
  27. package/src/app/useSession.ts +0 -102
  28. package/src/app/useSlashCommands.ts +0 -70
  29. package/src/app/useSlashPopover.ts +0 -48
  30. package/src/app.tsx +0 -917
  31. package/src/commands/slash.ts +0 -151
  32. package/src/components/avatar/AnimatedAvatar.tsx +0 -66
  33. package/src/components/avatar/eikon.ts +0 -144
  34. package/src/components/avatar/states/error.ts +0 -1155
  35. package/src/components/avatar/states/idle.ts +0 -1155
  36. package/src/components/avatar/states/index.ts +0 -30
  37. package/src/components/avatar/states/listening.ts +0 -1155
  38. package/src/components/avatar/states/speaking.ts +0 -1155
  39. package/src/components/avatar/states/thinking.ts +0 -1155
  40. package/src/components/avatar/states/working.ts +0 -1155
  41. package/src/components/chat/AtRefPopover.tsx +0 -54
  42. package/src/components/chat/CodeBlock.tsx +0 -67
  43. package/src/components/chat/Composer.tsx +0 -347
  44. package/src/components/chat/DiffBlock.tsx +0 -116
  45. package/src/components/chat/ErrorBlock.tsx +0 -70
  46. package/src/components/chat/MediaChip.tsx +0 -114
  47. package/src/components/chat/MessageItem.tsx +0 -282
  48. package/src/components/chat/MessageList.tsx +0 -114
  49. package/src/components/chat/PromptCard.tsx +0 -359
  50. package/src/components/chat/SlashPopover.tsx +0 -158
  51. package/src/components/chat/ThoughtCloud.tsx +0 -185
  52. package/src/components/chat/TypingIndicator.tsx +0 -25
  53. package/src/components/chat/tool/Subagent.tsx +0 -75
  54. package/src/components/chat/tool/frame.tsx +0 -69
  55. package/src/components/chat/tool/index.tsx +0 -65
  56. package/src/components/chat/tool/preview.ts +0 -57
  57. package/src/components/sidebar/ContextGauge.tsx +0 -102
  58. package/src/components/sidebar/Sidebar.tsx +0 -143
  59. package/src/components/tabs/TabBar.tsx +0 -50
  60. package/src/components/ui/FileLink.tsx +0 -52
  61. package/src/config/index.ts +0 -156
  62. package/src/config/lane.ts +0 -161
  63. package/src/config/models.ts +0 -95
  64. package/src/config/rules.ts +0 -80
  65. package/src/config/schema.ts +0 -308
  66. package/src/dialogs/alert.tsx +0 -52
  67. package/src/dialogs/chafa.tsx +0 -72
  68. package/src/dialogs/confirm.tsx +0 -58
  69. package/src/dialogs/curator.tsx +0 -153
  70. package/src/dialogs/eikon-picker.tsx +0 -95
  71. package/src/dialogs/help.tsx +0 -80
  72. package/src/dialogs/history.tsx +0 -92
  73. package/src/dialogs/info.tsx +0 -115
  74. package/src/dialogs/keys.tsx +0 -170
  75. package/src/dialogs/logs.tsx +0 -42
  76. package/src/dialogs/message.tsx +0 -38
  77. package/src/dialogs/model-picker.tsx +0 -123
  78. package/src/dialogs/new-profile.tsx +0 -69
  79. package/src/dialogs/new-task.tsx +0 -103
  80. package/src/dialogs/profile.tsx +0 -55
  81. package/src/dialogs/rollback.tsx +0 -190
  82. package/src/dialogs/spawn-history.tsx +0 -80
  83. package/src/dialogs/text-prompt.tsx +0 -68
  84. package/src/dialogs/theme-picker.tsx +0 -50
  85. package/src/home/index.ts +0 -23
  86. package/src/home/store.ts +0 -267
  87. package/src/index.tsx +0 -113
  88. package/src/keys/catalog.ts +0 -115
  89. package/src/keys/chord.ts +0 -125
  90. package/src/keys/conflicts.ts +0 -48
  91. package/src/keys/context.tsx +0 -112
  92. package/src/keys/index.ts +0 -5
  93. package/src/keys/list.ts +0 -94
  94. package/src/keys/oc-compat.ts +0 -87
  95. package/src/tabs/Agents.tsx +0 -607
  96. package/src/tabs/Analytics.tsx +0 -154
  97. package/src/tabs/Chat.tsx +0 -50
  98. package/src/tabs/Config.tsx +0 -605
  99. package/src/tabs/Context.tsx +0 -599
  100. package/src/tabs/Cron.tsx +0 -294
  101. package/src/tabs/Env.tsx +0 -227
  102. package/src/tabs/Kanban.tsx +0 -367
  103. package/src/tabs/Memory.tsx +0 -294
  104. package/src/tabs/Sessions.tsx +0 -786
  105. package/src/tabs/Skills.tsx +0 -507
  106. package/src/tabs/Toolsets.tsx +0 -266
  107. package/src/theme/builtin.ts +0 -78
  108. package/src/theme/context.tsx +0 -106
  109. package/src/theme/index.ts +0 -4
  110. package/src/theme/resolve.ts +0 -134
  111. package/src/theme/syntax.ts +0 -31
  112. package/src/theme/themes/aura.json +0 -69
  113. package/src/theme/themes/ayu.json +0 -80
  114. package/src/theme/themes/carbonfox.json +0 -248
  115. package/src/theme/themes/catppuccin-frappe.json +0 -233
  116. package/src/theme/themes/catppuccin-macchiato.json +0 -233
  117. package/src/theme/themes/catppuccin.json +0 -112
  118. package/src/theme/themes/cobalt2.json +0 -228
  119. package/src/theme/themes/cursor.json +0 -249
  120. package/src/theme/themes/dracula.json +0 -219
  121. package/src/theme/themes/everforest.json +0 -241
  122. package/src/theme/themes/flexoki.json +0 -237
  123. package/src/theme/themes/github.json +0 -233
  124. package/src/theme/themes/gruvbox.json +0 -242
  125. package/src/theme/themes/kanagawa.json +0 -77
  126. package/src/theme/themes/lucent-orng.json +0 -237
  127. package/src/theme/themes/material.json +0 -235
  128. package/src/theme/themes/matrix.json +0 -77
  129. package/src/theme/themes/mercury.json +0 -252
  130. package/src/theme/themes/monokai.json +0 -221
  131. package/src/theme/themes/nightowl.json +0 -221
  132. package/src/theme/themes/nord.json +0 -223
  133. package/src/theme/themes/one-dark.json +0 -84
  134. package/src/theme/themes/opencode.json +0 -245
  135. package/src/theme/themes/orng.json +0 -249
  136. package/src/theme/themes/osaka-jade.json +0 -93
  137. package/src/theme/themes/palenight.json +0 -222
  138. package/src/theme/themes/rosepine.json +0 -234
  139. package/src/theme/themes/solarized.json +0 -223
  140. package/src/theme/themes/synthwave84.json +0 -226
  141. package/src/theme/themes/tokyonight.json +0 -243
  142. package/src/theme/themes/vercel.json +0 -245
  143. package/src/theme/themes/vesper.json +0 -218
  144. package/src/theme/themes/zenburn.json +0 -223
  145. package/src/theme/types.ts +0 -119
  146. package/src/types/message.ts +0 -97
  147. package/src/ui/ChafaImage.tsx +0 -64
  148. package/src/ui/Splash.tsx +0 -118
  149. package/src/ui/borders.ts +0 -28
  150. package/src/ui/command.tsx +0 -104
  151. package/src/ui/dialog-select.tsx +0 -164
  152. package/src/ui/dialog.tsx +0 -102
  153. package/src/ui/fmt.ts +0 -82
  154. package/src/ui/kv.tsx +0 -28
  155. package/src/ui/shell.tsx +0 -45
  156. package/src/ui/spinner.tsx +0 -59
  157. package/src/ui/splash-art.ts +0 -123
  158. package/src/ui/table.tsx +0 -117
  159. package/src/ui/ticker.tsx +0 -90
  160. package/src/ui/toast.tsx +0 -130
  161. package/src/utils/categorical.ts +0 -77
  162. package/src/utils/chafa.ts +0 -173
  163. package/src/utils/clipboard.ts +0 -67
  164. package/src/utils/context-segments.ts +0 -317
  165. package/src/utils/control.ts +0 -495
  166. package/src/utils/drop.ts +0 -25
  167. package/src/utils/editor.ts +0 -33
  168. package/src/utils/fuzzy.ts +0 -45
  169. package/src/utils/gateway-client.ts +0 -253
  170. package/src/utils/gateway-types.ts +0 -282
  171. package/src/utils/git.ts +0 -57
  172. package/src/utils/hermes-analytics.ts +0 -134
  173. package/src/utils/hermes-home.ts +0 -821
  174. package/src/utils/hermes-kanban.ts +0 -154
  175. package/src/utils/hermes-profiles.ts +0 -217
  176. package/src/utils/interpolate.ts +0 -31
  177. package/src/utils/math-unicode.ts +0 -818
  178. package/src/utils/memory-activity.ts +0 -140
  179. package/src/utils/open-file.ts +0 -13
  180. package/src/utils/paths.ts +0 -52
  181. package/src/utils/perf.ts +0 -235
  182. package/src/utils/preferences.ts +0 -150
  183. package/src/utils/sessions-db.ts +0 -396
  184. package/src/utils/subagent-tree.ts +0 -146
  185. package/src/utils/terminal-reset.ts +0 -129
  186. package/src/utils/tips.ts +0 -67
  187. package/src/utils/tokens.ts +0 -87
@@ -0,0 +1,604 @@
1
+ ; Query from: https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/ecma/highlights.scm
2
+ ; Types
3
+ ; Javascript
4
+ ; Variables
5
+ ;-----------
6
+ (identifier) @variable
7
+
8
+ ; Properties
9
+ ;-----------
10
+ (property_identifier) @variable.member
11
+
12
+ (shorthand_property_identifier) @variable.member
13
+
14
+ (private_property_identifier) @variable.member
15
+
16
+ (object_pattern
17
+ (shorthand_property_identifier_pattern) @variable)
18
+
19
+ (object_pattern
20
+ (object_assignment_pattern
21
+ (shorthand_property_identifier_pattern) @variable))
22
+
23
+ ; Special identifiers
24
+ ;--------------------
25
+ ((identifier) @type
26
+ (#lua-match? @type "^[A-Z]"))
27
+
28
+ ((identifier) @constant
29
+ (#lua-match? @constant "^_*[A-Z][A-Z%d_]*$"))
30
+
31
+ ((shorthand_property_identifier) @constant
32
+ (#lua-match? @constant "^_*[A-Z][A-Z%d_]*$"))
33
+
34
+ ((identifier) @variable.builtin
35
+ (#any-of? @variable.builtin "arguments" "module" "console" "window" "document"))
36
+
37
+ ((identifier) @type.builtin
38
+ (#any-of? @type.builtin
39
+ "Object" "Function" "Boolean" "Symbol" "Number" "Math" "Date" "String" "RegExp" "Map" "Set"
40
+ "WeakMap" "WeakSet" "Promise" "Array" "Int8Array" "Uint8Array" "Uint8ClampedArray" "Int16Array"
41
+ "Uint16Array" "Int32Array" "Uint32Array" "Float32Array" "Float64Array" "ArrayBuffer" "DataView"
42
+ "Error" "EvalError" "InternalError" "RangeError" "ReferenceError" "SyntaxError" "TypeError"
43
+ "URIError"))
44
+
45
+ (statement_identifier) @label
46
+
47
+ ; Function and method definitions
48
+ ;--------------------------------
49
+ (function_expression
50
+ name: (identifier) @function)
51
+
52
+ (function_declaration
53
+ name: (identifier) @function)
54
+
55
+ (generator_function
56
+ name: (identifier) @function)
57
+
58
+ (generator_function_declaration
59
+ name: (identifier) @function)
60
+
61
+ (method_definition
62
+ name: [
63
+ (property_identifier)
64
+ (private_property_identifier)
65
+ ] @function.method)
66
+
67
+ (method_definition
68
+ name: (property_identifier) @constructor
69
+ (#eq? @constructor "constructor"))
70
+
71
+ (pair
72
+ key: (property_identifier) @function.method
73
+ value: (function_expression))
74
+
75
+ (pair
76
+ key: (property_identifier) @function.method
77
+ value: (arrow_function))
78
+
79
+ (assignment_expression
80
+ left: (member_expression
81
+ property: (property_identifier) @function.method)
82
+ right: (arrow_function))
83
+
84
+ (assignment_expression
85
+ left: (member_expression
86
+ property: (property_identifier) @function.method)
87
+ right: (function_expression))
88
+
89
+ (variable_declarator
90
+ name: (identifier) @function
91
+ value: (arrow_function))
92
+
93
+ (variable_declarator
94
+ name: (identifier) @function
95
+ value: (function_expression))
96
+
97
+ (assignment_expression
98
+ left: (identifier) @function
99
+ right: (arrow_function))
100
+
101
+ (assignment_expression
102
+ left: (identifier) @function
103
+ right: (function_expression))
104
+
105
+ ; Function and method calls
106
+ ;--------------------------
107
+ (call_expression
108
+ function: (identifier) @function.call)
109
+
110
+ (call_expression
111
+ function: (member_expression
112
+ property: [
113
+ (property_identifier)
114
+ (private_property_identifier)
115
+ ] @function.method.call))
116
+
117
+ (call_expression
118
+ function: (await_expression
119
+ (identifier) @function.call))
120
+
121
+ (call_expression
122
+ function: (await_expression
123
+ (member_expression
124
+ property: [
125
+ (property_identifier)
126
+ (private_property_identifier)
127
+ ] @function.method.call)))
128
+
129
+ ; Builtins
130
+ ;---------
131
+ ((identifier) @module.builtin
132
+ (#eq? @module.builtin "Intl"))
133
+
134
+ ((identifier) @function.builtin
135
+ (#any-of? @function.builtin
136
+ "eval" "isFinite" "isNaN" "parseFloat" "parseInt" "decodeURI" "decodeURIComponent" "encodeURI"
137
+ "encodeURIComponent" "require"))
138
+
139
+ ; Constructor
140
+ ;------------
141
+ (new_expression
142
+ constructor: (identifier) @constructor)
143
+
144
+ ; Decorators
145
+ ;----------
146
+ (decorator
147
+ "@" @attribute
148
+ (identifier) @attribute)
149
+
150
+ (decorator
151
+ "@" @attribute
152
+ (call_expression
153
+ (identifier) @attribute))
154
+
155
+ (decorator
156
+ "@" @attribute
157
+ (member_expression
158
+ (property_identifier) @attribute))
159
+
160
+ (decorator
161
+ "@" @attribute
162
+ (call_expression
163
+ (member_expression
164
+ (property_identifier) @attribute)))
165
+
166
+ ; Literals
167
+ ;---------
168
+ [
169
+ (this)
170
+ (super)
171
+ ] @variable.builtin
172
+
173
+ ((identifier) @variable.builtin
174
+ (#eq? @variable.builtin "self"))
175
+
176
+ [
177
+ (true)
178
+ (false)
179
+ ] @boolean
180
+
181
+ [
182
+ (null)
183
+ (undefined)
184
+ ] @constant.builtin
185
+
186
+ [
187
+ (comment)
188
+ (html_comment)
189
+ ] @comment @spell
190
+
191
+ ((comment) @comment.documentation
192
+ (#lua-match? @comment.documentation "^/[*][*][^*].*[*]/$"))
193
+
194
+ (hash_bang_line) @keyword.directive
195
+
196
+ ((string_fragment) @keyword.directive
197
+ (#eq? @keyword.directive "use strict"))
198
+
199
+ (string) @string
200
+
201
+ (template_string) @string
202
+
203
+ (escape_sequence) @string.escape
204
+
205
+ (regex_pattern) @string.regexp
206
+
207
+ (regex_flags) @character.special
208
+
209
+ (regex
210
+ "/" @punctuation.bracket) ; Regex delimiters
211
+
212
+ (number) @number
213
+
214
+ ((identifier) @number
215
+ (#any-of? @number "NaN" "Infinity"))
216
+
217
+ ; Punctuation
218
+ ;------------
219
+ [
220
+ ";"
221
+ "."
222
+ ","
223
+ ":"
224
+ ] @punctuation.delimiter
225
+
226
+ [
227
+ "--"
228
+ "-"
229
+ "-="
230
+ "&&"
231
+ "+"
232
+ "++"
233
+ "+="
234
+ "&="
235
+ "/="
236
+ "**="
237
+ "<<="
238
+ "<"
239
+ "<="
240
+ "<<"
241
+ "="
242
+ "=="
243
+ "==="
244
+ "!="
245
+ "!=="
246
+ "=>"
247
+ ">"
248
+ ">="
249
+ ">>"
250
+ "||"
251
+ "%"
252
+ "%="
253
+ "*"
254
+ "**"
255
+ ">>>"
256
+ "&"
257
+ "|"
258
+ "^"
259
+ "??"
260
+ "*="
261
+ ">>="
262
+ ">>>="
263
+ "^="
264
+ "|="
265
+ "&&="
266
+ "||="
267
+ "??="
268
+ "..."
269
+ ] @operator
270
+
271
+ (binary_expression
272
+ "/" @operator)
273
+
274
+ (ternary_expression
275
+ [
276
+ "?"
277
+ ":"
278
+ ] @keyword.conditional.ternary)
279
+
280
+ (unary_expression
281
+ [
282
+ "!"
283
+ "~"
284
+ "-"
285
+ "+"
286
+ ] @operator)
287
+
288
+ (unary_expression
289
+ [
290
+ "delete"
291
+ "void"
292
+ ] @keyword.operator)
293
+
294
+ [
295
+ "("
296
+ ")"
297
+ "["
298
+ "]"
299
+ "{"
300
+ "}"
301
+ ] @punctuation.bracket
302
+
303
+ (template_substitution
304
+ [
305
+ "${"
306
+ "}"
307
+ ] @punctuation.special) @none
308
+
309
+ ; Imports
310
+ ;----------
311
+ (namespace_import
312
+ "*" @character.special
313
+ (identifier) @module)
314
+
315
+ (namespace_export
316
+ "*" @character.special
317
+ (identifier) @module)
318
+
319
+ (export_statement
320
+ "*" @character.special)
321
+
322
+ ; Keywords
323
+ ;----------
324
+ [
325
+ "if"
326
+ "else"
327
+ "switch"
328
+ "case"
329
+ ] @keyword.conditional
330
+
331
+ [
332
+ "import"
333
+ "from"
334
+ "as"
335
+ "export"
336
+ ] @keyword.import
337
+
338
+ [
339
+ "for"
340
+ "of"
341
+ "do"
342
+ "while"
343
+ "continue"
344
+ ] @keyword.repeat
345
+
346
+ [
347
+ "break"
348
+ "const"
349
+ "debugger"
350
+ "extends"
351
+ "get"
352
+ "let"
353
+ "set"
354
+ "static"
355
+ "target"
356
+ "var"
357
+ "with"
358
+ ] @keyword
359
+
360
+ "class" @keyword.type
361
+
362
+ [
363
+ "async"
364
+ "await"
365
+ ] @keyword.coroutine
366
+
367
+ [
368
+ "return"
369
+ "yield"
370
+ ] @keyword.return
371
+
372
+ "function" @keyword.function
373
+
374
+ [
375
+ "new"
376
+ "delete"
377
+ "in"
378
+ "instanceof"
379
+ "typeof"
380
+ ] @keyword.operator
381
+
382
+ [
383
+ "throw"
384
+ "try"
385
+ "catch"
386
+ "finally"
387
+ ] @keyword.exception
388
+
389
+ (export_statement
390
+ "default" @keyword)
391
+
392
+ (switch_default
393
+ "default" @keyword.conditional)
394
+
395
+
396
+ ; Query from: https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/typescript/highlights.scm
397
+ ; inherits: ecma
398
+
399
+ "require" @keyword.import
400
+
401
+ (import_require_clause
402
+ source: (string) @string.special.url)
403
+
404
+ [
405
+ "declare"
406
+ "implements"
407
+ "type"
408
+ "override"
409
+ "module"
410
+ "asserts"
411
+ "infer"
412
+ "is"
413
+ "using"
414
+ ] @keyword
415
+
416
+ [
417
+ "namespace"
418
+ "interface"
419
+ "enum"
420
+ ] @keyword.type
421
+
422
+ [
423
+ "keyof"
424
+ "satisfies"
425
+ ] @keyword.operator
426
+
427
+ (as_expression
428
+ "as" @keyword.operator)
429
+
430
+ (mapped_type_clause
431
+ "as" @keyword.operator)
432
+
433
+ [
434
+ "abstract"
435
+ "private"
436
+ "protected"
437
+ "public"
438
+ "readonly"
439
+ ] @keyword.modifier
440
+
441
+ ; types
442
+ (type_identifier) @type
443
+
444
+ (predefined_type) @type.builtin
445
+
446
+ (import_statement
447
+ "type"
448
+ (import_clause
449
+ (named_imports
450
+ (import_specifier
451
+ name: (identifier) @type))))
452
+
453
+ (template_literal_type) @string
454
+
455
+ (non_null_expression
456
+ "!" @operator)
457
+
458
+ ; punctuation
459
+ (type_arguments
460
+ [
461
+ "<"
462
+ ">"
463
+ ] @punctuation.bracket)
464
+
465
+ (type_parameters
466
+ [
467
+ "<"
468
+ ">"
469
+ ] @punctuation.bracket)
470
+
471
+ (object_type
472
+ [
473
+ "{|"
474
+ "|}"
475
+ ] @punctuation.bracket)
476
+
477
+ (union_type
478
+ "|" @punctuation.delimiter)
479
+
480
+ (intersection_type
481
+ "&" @punctuation.delimiter)
482
+
483
+ (type_annotation
484
+ ":" @punctuation.delimiter)
485
+
486
+ (type_predicate_annotation
487
+ ":" @punctuation.delimiter)
488
+
489
+ (index_signature
490
+ ":" @punctuation.delimiter)
491
+
492
+ (omitting_type_annotation
493
+ "-?:" @punctuation.delimiter)
494
+
495
+ (adding_type_annotation
496
+ "+?:" @punctuation.delimiter)
497
+
498
+ (opting_type_annotation
499
+ "?:" @punctuation.delimiter)
500
+
501
+ "?." @punctuation.delimiter
502
+
503
+ (abstract_method_signature
504
+ "?" @punctuation.special)
505
+
506
+ (method_signature
507
+ "?" @punctuation.special)
508
+
509
+ (method_definition
510
+ "?" @punctuation.special)
511
+
512
+ (property_signature
513
+ "?" @punctuation.special)
514
+
515
+ (optional_parameter
516
+ "?" @punctuation.special)
517
+
518
+ (optional_type
519
+ "?" @punctuation.special)
520
+
521
+ (public_field_definition
522
+ [
523
+ "?"
524
+ "!"
525
+ ] @punctuation.special)
526
+
527
+ (flow_maybe_type
528
+ "?" @punctuation.special)
529
+
530
+ (template_type
531
+ [
532
+ "${"
533
+ "}"
534
+ ] @punctuation.special)
535
+
536
+ (conditional_type
537
+ [
538
+ "?"
539
+ ":"
540
+ ] @keyword.conditional.ternary)
541
+
542
+ ; Parameters
543
+ (required_parameter
544
+ pattern: (identifier) @variable.parameter)
545
+
546
+ (optional_parameter
547
+ pattern: (identifier) @variable.parameter)
548
+
549
+ (required_parameter
550
+ (rest_pattern
551
+ (identifier) @variable.parameter))
552
+
553
+ ; ({ a }) => null
554
+ (required_parameter
555
+ (object_pattern
556
+ (shorthand_property_identifier_pattern) @variable.parameter))
557
+
558
+ ; ({ a = b }) => null
559
+ (required_parameter
560
+ (object_pattern
561
+ (object_assignment_pattern
562
+ (shorthand_property_identifier_pattern) @variable.parameter)))
563
+
564
+ ; ({ a: b }) => null
565
+ (required_parameter
566
+ (object_pattern
567
+ (pair_pattern
568
+ value: (identifier) @variable.parameter)))
569
+
570
+ ; ([ a ]) => null
571
+ (required_parameter
572
+ (array_pattern
573
+ (identifier) @variable.parameter))
574
+
575
+ ; a => null
576
+ (arrow_function
577
+ parameter: (identifier) @variable.parameter)
578
+
579
+ ; global declaration
580
+ (ambient_declaration
581
+ "global" @module)
582
+
583
+ ; function signatures
584
+ (ambient_declaration
585
+ (function_signature
586
+ name: (identifier) @function))
587
+
588
+ ; method signatures
589
+ (method_signature
590
+ name: (_) @function.method)
591
+
592
+ (abstract_method_signature
593
+ name: (property_identifier) @function.method)
594
+
595
+ ; property signatures
596
+ (property_signature
597
+ name: (property_identifier) @function.method
598
+ type: (type_annotation
599
+ [
600
+ (union_type
601
+ (parenthesized_type
602
+ (function_type)))
603
+ (function_type)
604
+ ]))