@termaxjs/editor 0.1.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 (215) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +85 -0
  3. package/dist/TermaxEditor.d.ts +74 -0
  4. package/dist/TermaxEditor.d.ts.map +1 -0
  5. package/dist/TermaxEditor.js +728 -0
  6. package/dist/TermaxEditor.js.map +1 -0
  7. package/dist/adapter.d.ts +2 -0
  8. package/dist/adapter.d.ts.map +1 -0
  9. package/dist/adapter.js +2 -0
  10. package/dist/adapter.js.map +1 -0
  11. package/dist/ai/GhostTextManager.d.ts +34 -0
  12. package/dist/ai/GhostTextManager.d.ts.map +1 -0
  13. package/dist/ai/GhostTextManager.js +116 -0
  14. package/dist/ai/GhostTextManager.js.map +1 -0
  15. package/dist/ai/StreamingDiffApplier.d.ts +28 -0
  16. package/dist/ai/StreamingDiffApplier.d.ts.map +1 -0
  17. package/dist/ai/StreamingDiffApplier.js +61 -0
  18. package/dist/ai/StreamingDiffApplier.js.map +1 -0
  19. package/dist/canvas.d.ts +2 -0
  20. package/dist/canvas.d.ts.map +1 -0
  21. package/dist/canvas.js +2 -0
  22. package/dist/canvas.js.map +1 -0
  23. package/dist/codelens/CodeLensProvider.d.ts +22 -0
  24. package/dist/codelens/CodeLensProvider.d.ts.map +1 -0
  25. package/dist/codelens/CodeLensProvider.js +36 -0
  26. package/dist/codelens/CodeLensProvider.js.map +1 -0
  27. package/dist/core.d.ts +2 -0
  28. package/dist/core.d.ts.map +1 -0
  29. package/dist/core.js +2 -0
  30. package/dist/core.js.map +1 -0
  31. package/dist/diff/ConflictResolver.d.ts +27 -0
  32. package/dist/diff/ConflictResolver.d.ts.map +1 -0
  33. package/dist/diff/ConflictResolver.js +88 -0
  34. package/dist/diff/ConflictResolver.js.map +1 -0
  35. package/dist/diff/DiffEditor.d.ts +18 -0
  36. package/dist/diff/DiffEditor.d.ts.map +1 -0
  37. package/dist/diff/DiffEditor.js +212 -0
  38. package/dist/diff/DiffEditor.js.map +1 -0
  39. package/dist/diff/InlineDiffModel.d.ts +18 -0
  40. package/dist/diff/InlineDiffModel.d.ts.map +1 -0
  41. package/dist/diff/InlineDiffModel.js +78 -0
  42. package/dist/diff/InlineDiffModel.js.map +1 -0
  43. package/dist/element/TermaxEditorElement.d.ts +28 -0
  44. package/dist/element/TermaxEditorElement.d.ts.map +1 -0
  45. package/dist/element/TermaxEditorElement.js +123 -0
  46. package/dist/element/TermaxEditorElement.js.map +1 -0
  47. package/dist/fold/computeFoldRanges.d.ts +8 -0
  48. package/dist/fold/computeFoldRanges.d.ts.map +1 -0
  49. package/dist/fold/computeFoldRanges.js +109 -0
  50. package/dist/fold/computeFoldRanges.js.map +1 -0
  51. package/dist/format/formatter.d.ts +5 -0
  52. package/dist/format/formatter.d.ts.map +1 -0
  53. package/dist/format/formatter.js +89 -0
  54. package/dist/format/formatter.js.map +1 -0
  55. package/dist/git/GitGutterManager.d.ts +17 -0
  56. package/dist/git/GitGutterManager.d.ts.map +1 -0
  57. package/dist/git/GitGutterManager.js +50 -0
  58. package/dist/git/GitGutterManager.js.map +1 -0
  59. package/dist/git/InlineBlameManager.d.ts +18 -0
  60. package/dist/git/InlineBlameManager.d.ts.map +1 -0
  61. package/dist/git/InlineBlameManager.js +33 -0
  62. package/dist/git/InlineBlameManager.js.map +1 -0
  63. package/dist/gutter/FoldGutter.d.ts +12 -0
  64. package/dist/gutter/FoldGutter.d.ts.map +1 -0
  65. package/dist/gutter/FoldGutter.js +51 -0
  66. package/dist/gutter/FoldGutter.js.map +1 -0
  67. package/dist/gutter/LineNumbers.d.ts +11 -0
  68. package/dist/gutter/LineNumbers.d.ts.map +1 -0
  69. package/dist/gutter/LineNumbers.js +71 -0
  70. package/dist/gutter/LineNumbers.js.map +1 -0
  71. package/dist/highlight/microTokenizer.d.ts +20 -0
  72. package/dist/highlight/microTokenizer.d.ts.map +1 -0
  73. package/dist/highlight/microTokenizer.js +951 -0
  74. package/dist/highlight/microTokenizer.js.map +1 -0
  75. package/dist/index.d.ts +46 -0
  76. package/dist/index.d.ts.map +1 -0
  77. package/dist/index.js +46 -0
  78. package/dist/index.js.map +1 -0
  79. package/dist/input/KeymapPresets.d.ts +10 -0
  80. package/dist/input/KeymapPresets.d.ts.map +1 -0
  81. package/dist/input/KeymapPresets.js +46 -0
  82. package/dist/input/KeymapPresets.js.map +1 -0
  83. package/dist/input/OffscreenInput.d.ts +27 -0
  84. package/dist/input/OffscreenInput.d.ts.map +1 -0
  85. package/dist/input/OffscreenInput.js +367 -0
  86. package/dist/input/OffscreenInput.js.map +1 -0
  87. package/dist/languages/GrammarRegistry.d.ts +55 -0
  88. package/dist/languages/GrammarRegistry.d.ts.map +1 -0
  89. package/dist/languages/GrammarRegistry.js +80 -0
  90. package/dist/languages/GrammarRegistry.js.map +1 -0
  91. package/dist/languages/LanguageAdapter.d.ts +11 -0
  92. package/dist/languages/LanguageAdapter.d.ts.map +1 -0
  93. package/dist/languages/LanguageAdapter.js +47 -0
  94. package/dist/languages/LanguageAdapter.js.map +1 -0
  95. package/dist/languages/TreeSitterAdapter.d.ts +29 -0
  96. package/dist/languages/TreeSitterAdapter.d.ts.map +1 -0
  97. package/dist/languages/TreeSitterAdapter.js +99 -0
  98. package/dist/languages/TreeSitterAdapter.js.map +1 -0
  99. package/dist/languages/index.d.ts +16 -0
  100. package/dist/languages/index.d.ts.map +1 -0
  101. package/dist/languages/index.js +163 -0
  102. package/dist/languages/index.js.map +1 -0
  103. package/dist/lsp/InlayHintProvider.d.ts +18 -0
  104. package/dist/lsp/InlayHintProvider.d.ts.map +1 -0
  105. package/dist/lsp/InlayHintProvider.js +26 -0
  106. package/dist/lsp/InlayHintProvider.js.map +1 -0
  107. package/dist/lsp/LspClient.d.ts +73 -0
  108. package/dist/lsp/LspClient.d.ts.map +1 -0
  109. package/dist/lsp/LspClient.js +261 -0
  110. package/dist/lsp/LspClient.js.map +1 -0
  111. package/dist/lsp/SemanticTokensDecoder.d.ts +26 -0
  112. package/dist/lsp/SemanticTokensDecoder.d.ts.map +1 -0
  113. package/dist/lsp/SemanticTokensDecoder.js +88 -0
  114. package/dist/lsp/SemanticTokensDecoder.js.map +1 -0
  115. package/dist/lsp/WorkspaceSymbolIndex.d.ts +32 -0
  116. package/dist/lsp/WorkspaceSymbolIndex.d.ts.map +1 -0
  117. package/dist/lsp/WorkspaceSymbolIndex.js +73 -0
  118. package/dist/lsp/WorkspaceSymbolIndex.js.map +1 -0
  119. package/dist/minimap/Minimap.d.ts +24 -0
  120. package/dist/minimap/Minimap.d.ts.map +1 -0
  121. package/dist/minimap/Minimap.js +31 -0
  122. package/dist/minimap/Minimap.js.map +1 -0
  123. package/dist/minimap/useMinimap.d.ts +75 -0
  124. package/dist/minimap/useMinimap.d.ts.map +1 -0
  125. package/dist/minimap/useMinimap.js +179 -0
  126. package/dist/minimap/useMinimap.js.map +1 -0
  127. package/dist/navigation/StickyScrollHeader.d.ts +16 -0
  128. package/dist/navigation/StickyScrollHeader.d.ts.map +1 -0
  129. package/dist/navigation/StickyScrollHeader.js +49 -0
  130. package/dist/navigation/StickyScrollHeader.js.map +1 -0
  131. package/dist/navigation/StickyScrollManager.d.ts +18 -0
  132. package/dist/navigation/StickyScrollManager.d.ts.map +1 -0
  133. package/dist/navigation/StickyScrollManager.js +32 -0
  134. package/dist/navigation/StickyScrollManager.js.map +1 -0
  135. package/dist/overlay/CompletionMenu.d.ts +15 -0
  136. package/dist/overlay/CompletionMenu.d.ts.map +1 -0
  137. package/dist/overlay/CompletionMenu.js +90 -0
  138. package/dist/overlay/CompletionMenu.js.map +1 -0
  139. package/dist/overlay/FindReplace.d.ts +6 -0
  140. package/dist/overlay/FindReplace.d.ts.map +1 -0
  141. package/dist/overlay/FindReplace.js +278 -0
  142. package/dist/overlay/FindReplace.js.map +1 -0
  143. package/dist/overlay/HoverTooltip.d.ts +12 -0
  144. package/dist/overlay/HoverTooltip.d.ts.map +1 -0
  145. package/dist/overlay/HoverTooltip.js +67 -0
  146. package/dist/overlay/HoverTooltip.js.map +1 -0
  147. package/dist/overlay/RemoteCursorsOverlay.d.ts +15 -0
  148. package/dist/overlay/RemoteCursorsOverlay.d.ts.map +1 -0
  149. package/dist/overlay/RemoteCursorsOverlay.js +50 -0
  150. package/dist/overlay/RemoteCursorsOverlay.js.map +1 -0
  151. package/dist/overlay/SignatureHelpTooltip.d.ts +11 -0
  152. package/dist/overlay/SignatureHelpTooltip.d.ts.map +1 -0
  153. package/dist/overlay/SignatureHelpTooltip.js +36 -0
  154. package/dist/overlay/SignatureHelpTooltip.js.map +1 -0
  155. package/dist/pairs/SelectionSurround.d.ts +14 -0
  156. package/dist/pairs/SelectionSurround.d.ts.map +1 -0
  157. package/dist/pairs/SelectionSurround.js +29 -0
  158. package/dist/pairs/SelectionSurround.js.map +1 -0
  159. package/dist/pairs/pairMatching.d.ts +6 -0
  160. package/dist/pairs/pairMatching.d.ts.map +1 -0
  161. package/dist/pairs/pairMatching.js +169 -0
  162. package/dist/pairs/pairMatching.js.map +1 -0
  163. package/dist/plugin/ViewPlugin.d.ts +20 -0
  164. package/dist/plugin/ViewPlugin.d.ts.map +1 -0
  165. package/dist/plugin/ViewPlugin.js +17 -0
  166. package/dist/plugin/ViewPlugin.js.map +1 -0
  167. package/dist/react.d.ts +2 -0
  168. package/dist/react.d.ts.map +1 -0
  169. package/dist/react.js +2 -0
  170. package/dist/react.js.map +1 -0
  171. package/dist/renderer/CanvasViewport.d.ts +23 -0
  172. package/dist/renderer/CanvasViewport.d.ts.map +1 -0
  173. package/dist/renderer/CanvasViewport.js +134 -0
  174. package/dist/renderer/CanvasViewport.js.map +1 -0
  175. package/dist/renderer/VirtualizedLines.d.ts +30 -0
  176. package/dist/renderer/VirtualizedLines.d.ts.map +1 -0
  177. package/dist/renderer/VirtualizedLines.js +427 -0
  178. package/dist/renderer/VirtualizedLines.js.map +1 -0
  179. package/dist/renderer/windowing.d.ts +33 -0
  180. package/dist/renderer/windowing.d.ts.map +1 -0
  181. package/dist/renderer/windowing.js +50 -0
  182. package/dist/renderer/windowing.js.map +1 -0
  183. package/dist/snippet/SnippetEngine.d.ts +31 -0
  184. package/dist/snippet/SnippetEngine.d.ts.map +1 -0
  185. package/dist/snippet/SnippetEngine.js +119 -0
  186. package/dist/snippet/SnippetEngine.js.map +1 -0
  187. package/dist/themes/VSCodeThemeConverter.d.ts +24 -0
  188. package/dist/themes/VSCodeThemeConverter.d.ts.map +1 -0
  189. package/dist/themes/VSCodeThemeConverter.js +118 -0
  190. package/dist/themes/VSCodeThemeConverter.js.map +1 -0
  191. package/dist/themes/index.d.ts +9 -0
  192. package/dist/themes/index.d.ts.map +1 -0
  193. package/dist/themes/index.js +128 -0
  194. package/dist/themes/index.js.map +1 -0
  195. package/dist/vim/VimState.d.ts +32 -0
  196. package/dist/vim/VimState.d.ts.map +1 -0
  197. package/dist/vim/VimState.js +276 -0
  198. package/dist/vim/VimState.js.map +1 -0
  199. package/dist/vim/VimStatusBar.d.ts +9 -0
  200. package/dist/vim/VimStatusBar.d.ts.map +1 -0
  201. package/dist/vim/VimStatusBar.js +36 -0
  202. package/dist/vim/VimStatusBar.js.map +1 -0
  203. package/dist/widgets/ColorPickerWidget.d.ts +13 -0
  204. package/dist/widgets/ColorPickerWidget.d.ts.map +1 -0
  205. package/dist/widgets/ColorPickerWidget.js +49 -0
  206. package/dist/widgets/ColorPickerWidget.js.map +1 -0
  207. package/dist/worker/WorkerBridge.d.ts +36 -0
  208. package/dist/worker/WorkerBridge.d.ts.map +1 -0
  209. package/dist/worker/WorkerBridge.js +103 -0
  210. package/dist/worker/WorkerBridge.js.map +1 -0
  211. package/dist/workspace/WorkspaceTabManager.d.ts +25 -0
  212. package/dist/workspace/WorkspaceTabManager.d.ts.map +1 -0
  213. package/dist/workspace/WorkspaceTabManager.js +71 -0
  214. package/dist/workspace/WorkspaceTabManager.js.map +1 -0
  215. package/package.json +78 -0
@@ -0,0 +1,951 @@
1
+ const KEYWORDS_BY_LANG = {
2
+ typescript: new Set([
3
+ "break",
4
+ "case",
5
+ "catch",
6
+ "class",
7
+ "const",
8
+ "continue",
9
+ "debugger",
10
+ "default",
11
+ "delete",
12
+ "do",
13
+ "else",
14
+ "enum",
15
+ "export",
16
+ "extends",
17
+ "false",
18
+ "finally",
19
+ "for",
20
+ "function",
21
+ "if",
22
+ "import",
23
+ "in",
24
+ "instanceof",
25
+ "new",
26
+ "null",
27
+ "return",
28
+ "super",
29
+ "switch",
30
+ "this",
31
+ "throw",
32
+ "true",
33
+ "try",
34
+ "typeof",
35
+ "var",
36
+ "void",
37
+ "while",
38
+ "with",
39
+ "as",
40
+ "async",
41
+ "await",
42
+ "from",
43
+ "get",
44
+ "interface",
45
+ "is",
46
+ "let",
47
+ "of",
48
+ "namespace",
49
+ "set",
50
+ "type",
51
+ "yield",
52
+ "public",
53
+ "private",
54
+ "protected",
55
+ "readonly",
56
+ "static",
57
+ "declare",
58
+ "abstract",
59
+ ]),
60
+ javascript: new Set([
61
+ "break",
62
+ "case",
63
+ "catch",
64
+ "class",
65
+ "const",
66
+ "continue",
67
+ "debugger",
68
+ "default",
69
+ "delete",
70
+ "do",
71
+ "else",
72
+ "export",
73
+ "extends",
74
+ "false",
75
+ "finally",
76
+ "for",
77
+ "function",
78
+ "if",
79
+ "import",
80
+ "in",
81
+ "instanceof",
82
+ "new",
83
+ "null",
84
+ "return",
85
+ "super",
86
+ "switch",
87
+ "this",
88
+ "throw",
89
+ "true",
90
+ "try",
91
+ "typeof",
92
+ "var",
93
+ "void",
94
+ "while",
95
+ "with",
96
+ "as",
97
+ "async",
98
+ "await",
99
+ "from",
100
+ "get",
101
+ "let",
102
+ "of",
103
+ "set",
104
+ "yield",
105
+ "static",
106
+ ]),
107
+ rust: new Set([
108
+ "as",
109
+ "break",
110
+ "const",
111
+ "continue",
112
+ "crate",
113
+ "else",
114
+ "enum",
115
+ "extern",
116
+ "false",
117
+ "fn",
118
+ "for",
119
+ "if",
120
+ "impl",
121
+ "in",
122
+ "let",
123
+ "loop",
124
+ "match",
125
+ "mod",
126
+ "move",
127
+ "mut",
128
+ "pub",
129
+ "ref",
130
+ "return",
131
+ "self",
132
+ "Self",
133
+ "static",
134
+ "struct",
135
+ "super",
136
+ "trait",
137
+ "true",
138
+ "type",
139
+ "unsafe",
140
+ "use",
141
+ "where",
142
+ "while",
143
+ "async",
144
+ "await",
145
+ "dyn",
146
+ ]),
147
+ python: new Set([
148
+ "and",
149
+ "as",
150
+ "assert",
151
+ "async",
152
+ "await",
153
+ "break",
154
+ "class",
155
+ "continue",
156
+ "def",
157
+ "del",
158
+ "elif",
159
+ "else",
160
+ "except",
161
+ "False",
162
+ "finally",
163
+ "for",
164
+ "from",
165
+ "global",
166
+ "if",
167
+ "import",
168
+ "in",
169
+ "is",
170
+ "lambda",
171
+ "None",
172
+ "nonlocal",
173
+ "not",
174
+ "or",
175
+ "pass",
176
+ "raise",
177
+ "return",
178
+ "True",
179
+ "try",
180
+ "while",
181
+ "with",
182
+ "yield",
183
+ ]),
184
+ go: new Set([
185
+ "break",
186
+ "default",
187
+ "func",
188
+ "interface",
189
+ "select",
190
+ "case",
191
+ "defer",
192
+ "go",
193
+ "map",
194
+ "struct",
195
+ "chan",
196
+ "else",
197
+ "goto",
198
+ "package",
199
+ "switch",
200
+ "const",
201
+ "fallthrough",
202
+ "if",
203
+ "range",
204
+ "type",
205
+ "continue",
206
+ "for",
207
+ "import",
208
+ "return",
209
+ "var",
210
+ "true",
211
+ "false",
212
+ "nil",
213
+ "iota",
214
+ ]),
215
+ json: new Set(["true", "false", "null"]),
216
+ html: new Set(["DOCTYPE", "html", "head", "body", "div", "span", "script", "style"]),
217
+ css: new Set(["important", "root", "media", "keyframes", "charset", "import", "supports"]),
218
+ markdown: new Set([]),
219
+ sql: new Set([
220
+ "SELECT",
221
+ "FROM",
222
+ "WHERE",
223
+ "INSERT",
224
+ "UPDATE",
225
+ "DELETE",
226
+ "CREATE",
227
+ "TABLE",
228
+ "DROP",
229
+ "ALTER",
230
+ "ADD",
231
+ "JOIN",
232
+ "INNER",
233
+ "LEFT",
234
+ "RIGHT",
235
+ "ON",
236
+ "GROUP",
237
+ "BY",
238
+ "ORDER",
239
+ "select",
240
+ "from",
241
+ "where",
242
+ "insert",
243
+ "update",
244
+ "delete",
245
+ "create",
246
+ "table",
247
+ "drop",
248
+ "alter",
249
+ "add",
250
+ "join",
251
+ "inner",
252
+ "left",
253
+ "right",
254
+ "on",
255
+ "group",
256
+ "by",
257
+ "order",
258
+ ]),
259
+ shell: new Set([
260
+ "if",
261
+ "then",
262
+ "else",
263
+ "elif",
264
+ "fi",
265
+ "case",
266
+ "esac",
267
+ "for",
268
+ "while",
269
+ "until",
270
+ "do",
271
+ "done",
272
+ "in",
273
+ "function",
274
+ "select",
275
+ "time",
276
+ "return",
277
+ "exit",
278
+ "export",
279
+ "local",
280
+ "readonly",
281
+ "unset",
282
+ "shift",
283
+ "source",
284
+ "alias",
285
+ "echo",
286
+ "printf",
287
+ ]),
288
+ cpp: new Set([
289
+ "auto",
290
+ "break",
291
+ "case",
292
+ "catch",
293
+ "class",
294
+ "const",
295
+ "constexpr",
296
+ "continue",
297
+ "default",
298
+ "delete",
299
+ "do",
300
+ "else",
301
+ "enum",
302
+ "explicit",
303
+ "export",
304
+ "extern",
305
+ "false",
306
+ "for",
307
+ "friend",
308
+ "goto",
309
+ "if",
310
+ "inline",
311
+ "mutable",
312
+ "namespace",
313
+ "new",
314
+ "noexcept",
315
+ "nullptr",
316
+ "operator",
317
+ "private",
318
+ "protected",
319
+ "public",
320
+ "register",
321
+ "reinterpret_cast",
322
+ "return",
323
+ "sizeof",
324
+ "static",
325
+ "static_assert",
326
+ "static_cast",
327
+ "struct",
328
+ "switch",
329
+ "template",
330
+ "this",
331
+ "throw",
332
+ "true",
333
+ "try",
334
+ "typedef",
335
+ "typeid",
336
+ "typename",
337
+ "union",
338
+ "using",
339
+ "virtual",
340
+ "void",
341
+ "volatile",
342
+ "while",
343
+ ]),
344
+ csharp: new Set([
345
+ "abstract",
346
+ "as",
347
+ "async",
348
+ "await",
349
+ "base",
350
+ "bool",
351
+ "break",
352
+ "byte",
353
+ "case",
354
+ "catch",
355
+ "char",
356
+ "checked",
357
+ "class",
358
+ "const",
359
+ "continue",
360
+ "decimal",
361
+ "default",
362
+ "delegate",
363
+ "do",
364
+ "double",
365
+ "else",
366
+ "enum",
367
+ "event",
368
+ "explicit",
369
+ "extern",
370
+ "false",
371
+ "finally",
372
+ "fixed",
373
+ "float",
374
+ "for",
375
+ "foreach",
376
+ "goto",
377
+ "if",
378
+ "implicit",
379
+ "in",
380
+ "int",
381
+ "interface",
382
+ "internal",
383
+ "is",
384
+ "lock",
385
+ "long",
386
+ "namespace",
387
+ "new",
388
+ "null",
389
+ "object",
390
+ "operator",
391
+ "out",
392
+ "override",
393
+ "params",
394
+ "private",
395
+ "protected",
396
+ "public",
397
+ "readonly",
398
+ "ref",
399
+ "return",
400
+ "sbyte",
401
+ "sealed",
402
+ "short",
403
+ "sizeof",
404
+ "stackalloc",
405
+ "static",
406
+ "string",
407
+ "struct",
408
+ "switch",
409
+ "this",
410
+ "throw",
411
+ "true",
412
+ "try",
413
+ "typeof",
414
+ "uint",
415
+ "ulong",
416
+ "unchecked",
417
+ "unsafe",
418
+ "ushort",
419
+ "using",
420
+ "virtual",
421
+ "void",
422
+ "volatile",
423
+ "while",
424
+ "yield",
425
+ "record",
426
+ "var",
427
+ ]),
428
+ java: new Set([
429
+ "abstract",
430
+ "assert",
431
+ "boolean",
432
+ "break",
433
+ "byte",
434
+ "case",
435
+ "catch",
436
+ "char",
437
+ "class",
438
+ "const",
439
+ "continue",
440
+ "default",
441
+ "do",
442
+ "double",
443
+ "else",
444
+ "enum",
445
+ "extends",
446
+ "final",
447
+ "finally",
448
+ "float",
449
+ "for",
450
+ "goto",
451
+ "if",
452
+ "implements",
453
+ "import",
454
+ "instanceof",
455
+ "int",
456
+ "interface",
457
+ "long",
458
+ "native",
459
+ "new",
460
+ "package",
461
+ "private",
462
+ "protected",
463
+ "public",
464
+ "return",
465
+ "short",
466
+ "static",
467
+ "strictfp",
468
+ "super",
469
+ "switch",
470
+ "synchronized",
471
+ "this",
472
+ "throw",
473
+ "throws",
474
+ "transient",
475
+ "try",
476
+ "void",
477
+ "volatile",
478
+ "while",
479
+ "true",
480
+ "false",
481
+ "null",
482
+ "record",
483
+ "sealed",
484
+ ]),
485
+ php: new Set([
486
+ "abstract",
487
+ "and",
488
+ "array",
489
+ "as",
490
+ "break",
491
+ "callable",
492
+ "case",
493
+ "catch",
494
+ "class",
495
+ "clone",
496
+ "const",
497
+ "continue",
498
+ "declare",
499
+ "default",
500
+ "die",
501
+ "do",
502
+ "echo",
503
+ "else",
504
+ "elseif",
505
+ "empty",
506
+ "enddeclare",
507
+ "endfor",
508
+ "endforeach",
509
+ "endif",
510
+ "endswitch",
511
+ "endwhile",
512
+ "eval",
513
+ "exit",
514
+ "extends",
515
+ "final",
516
+ "finally",
517
+ "fn",
518
+ "for",
519
+ "foreach",
520
+ "function",
521
+ "global",
522
+ "goto",
523
+ "if",
524
+ "implements",
525
+ "include",
526
+ "include_once",
527
+ "instanceof",
528
+ "insteadof",
529
+ "interface",
530
+ "isset",
531
+ "list",
532
+ "match",
533
+ "namespace",
534
+ "new",
535
+ "or",
536
+ "print",
537
+ "private",
538
+ "protected",
539
+ "public",
540
+ "readonly",
541
+ "require",
542
+ "require_once",
543
+ "return",
544
+ "static",
545
+ "switch",
546
+ "throw",
547
+ "trait",
548
+ "try",
549
+ "unset",
550
+ "use",
551
+ "var",
552
+ "while",
553
+ "xor",
554
+ "yield",
555
+ "true",
556
+ "false",
557
+ "null",
558
+ ]),
559
+ ruby: new Set([
560
+ "alias",
561
+ "and",
562
+ "BEGIN",
563
+ "begin",
564
+ "break",
565
+ "case",
566
+ "class",
567
+ "def",
568
+ "defined?",
569
+ "do",
570
+ "else",
571
+ "elsif",
572
+ "END",
573
+ "end",
574
+ "ensure",
575
+ "false",
576
+ "for",
577
+ "if",
578
+ "in",
579
+ "module",
580
+ "next",
581
+ "nil",
582
+ "not",
583
+ "or",
584
+ "redo",
585
+ "rescue",
586
+ "retry",
587
+ "return",
588
+ "self",
589
+ "super",
590
+ "then",
591
+ "true",
592
+ "undef",
593
+ "unless",
594
+ "until",
595
+ "when",
596
+ "while",
597
+ "yield",
598
+ "require",
599
+ "include",
600
+ "attr_accessor",
601
+ "attr_reader",
602
+ "attr_writer",
603
+ ]),
604
+ yaml: new Set(["true", "false", "yes", "no", "on", "off", "null", "~"]),
605
+ toml: new Set(["true", "false"]),
606
+ dockerfile: new Set([
607
+ "FROM",
608
+ "RUN",
609
+ "CMD",
610
+ "LABEL",
611
+ "MAINTAINER",
612
+ "EXPOSE",
613
+ "ENV",
614
+ "ADD",
615
+ "COPY",
616
+ "ENTRYPOINT",
617
+ "VOLUME",
618
+ "USER",
619
+ "WORKDIR",
620
+ "ARG",
621
+ "ONBUILD",
622
+ "STOPSIGNAL",
623
+ "HEALTHCHECK",
624
+ "SHELL",
625
+ ]),
626
+ graphql: new Set([
627
+ "query",
628
+ "mutation",
629
+ "subscription",
630
+ "fragment",
631
+ "on",
632
+ "type",
633
+ "interface",
634
+ "union",
635
+ "enum",
636
+ "scalar",
637
+ "input",
638
+ "implements",
639
+ "directive",
640
+ "schema",
641
+ ]),
642
+ };
643
+ const TYPES = new Set([
644
+ "string",
645
+ "number",
646
+ "boolean",
647
+ "any",
648
+ "void",
649
+ "never",
650
+ "unknown",
651
+ "object",
652
+ "bigint",
653
+ "symbol",
654
+ "i8",
655
+ "i16",
656
+ "i32",
657
+ "i64",
658
+ "i128",
659
+ "u8",
660
+ "u16",
661
+ "u32",
662
+ "u64",
663
+ "u128",
664
+ "f32",
665
+ "f64",
666
+ "usize",
667
+ "isize",
668
+ "str",
669
+ "bool",
670
+ "char",
671
+ "Vec",
672
+ "String",
673
+ "Option",
674
+ "Result",
675
+ "Box",
676
+ "Rc",
677
+ "Arc",
678
+ "HashMap",
679
+ "HashSet",
680
+ "int",
681
+ "int8",
682
+ "int16",
683
+ "int32",
684
+ "int64",
685
+ "uint",
686
+ "uint8",
687
+ "uint16",
688
+ "uint32",
689
+ "uint64",
690
+ "uintptr",
691
+ "float32",
692
+ "float64",
693
+ "complex64",
694
+ "complex128",
695
+ "byte",
696
+ "rune",
697
+ "error",
698
+ "Integer",
699
+ "Float",
700
+ "Double",
701
+ "Boolean",
702
+ "Character",
703
+ "List",
704
+ "Map",
705
+ "Set",
706
+ ]);
707
+ export function tokenizeLineWithState(line, language = "typescript", state = {}) {
708
+ const langKey = language.toLowerCase();
709
+ const keywords = KEYWORDS_BY_LANG[langKey] || KEYWORDS_BY_LANG.typescript;
710
+ const tokens = [];
711
+ let i = 0;
712
+ const len = line.length;
713
+ let inBlockComment = !!state.inBlockComment;
714
+ let inXmlComment = !!state.inXmlComment;
715
+ let inMultiLineString = state.inMultiLineString || null;
716
+ // Handle carried multi-line block comment
717
+ if (inBlockComment) {
718
+ const endIdx = line.indexOf("*/");
719
+ if (endIdx === -1) {
720
+ tokens.push({ text: line, kind: "comment" });
721
+ return { tokens, nextState: { inBlockComment: true } };
722
+ }
723
+ tokens.push({ text: line.slice(0, endIdx + 2), kind: "comment" });
724
+ inBlockComment = false;
725
+ i = endIdx + 2;
726
+ }
727
+ // Handle carried multi-line XML comment
728
+ if (inXmlComment) {
729
+ const endIdx = line.indexOf("-->");
730
+ if (endIdx === -1) {
731
+ tokens.push({ text: line, kind: "comment" });
732
+ return { tokens, nextState: { inXmlComment: true } };
733
+ }
734
+ tokens.push({ text: line.slice(0, endIdx + 3), kind: "comment" });
735
+ inXmlComment = false;
736
+ i = endIdx + 3;
737
+ }
738
+ // Handle carried multi-line string (template literal, Python triple quotes)
739
+ if (inMultiLineString) {
740
+ const delim = inMultiLineString;
741
+ let endIdx = -1;
742
+ let searchPos = 0;
743
+ while (searchPos < len) {
744
+ const idx = line.indexOf(delim, searchPos);
745
+ if (idx === -1)
746
+ break;
747
+ // Check for escape character before delimiter if 1-char delimiter
748
+ if (delim.length === 1 && idx > 0 && line[idx - 1] === "\\") {
749
+ searchPos = idx + 1;
750
+ continue;
751
+ }
752
+ endIdx = idx;
753
+ break;
754
+ }
755
+ if (endIdx === -1) {
756
+ tokens.push({ text: line, kind: "string" });
757
+ return { tokens, nextState: { inMultiLineString: delim } };
758
+ }
759
+ tokens.push({ text: line.slice(0, endIdx + delim.length), kind: "string" });
760
+ inMultiLineString = null;
761
+ i = endIdx + delim.length;
762
+ }
763
+ while (i < len) {
764
+ const char = line[i];
765
+ // Single-line comments
766
+ if (char === "/" && line[i + 1] === "/") {
767
+ tokens.push({ text: line.slice(i), kind: "comment" });
768
+ break;
769
+ }
770
+ // Multi-line block comment start
771
+ if (char === "/" && line[i + 1] === "*") {
772
+ const endIdx = line.indexOf("*/", i + 2);
773
+ if (endIdx === -1) {
774
+ tokens.push({ text: line.slice(i), kind: "comment" });
775
+ return { tokens, nextState: { inBlockComment: true } };
776
+ }
777
+ tokens.push({ text: line.slice(i, endIdx + 2), kind: "comment" });
778
+ i = endIdx + 2;
779
+ continue;
780
+ }
781
+ // Single-line hash comments for Python/Shell/Ruby/Yaml/Toml/Dockerfile
782
+ if (char === "#" &&
783
+ (langKey === "python" ||
784
+ langKey === "shell" ||
785
+ langKey === "ruby" ||
786
+ langKey === "yaml" ||
787
+ langKey === "toml" ||
788
+ langKey === "dockerfile")) {
789
+ tokens.push({ text: line.slice(i), kind: "comment" });
790
+ break;
791
+ }
792
+ // SQL comments
793
+ if (char === "-" && line[i + 1] === "-" && langKey === "sql") {
794
+ tokens.push({ text: line.slice(i), kind: "comment" });
795
+ break;
796
+ }
797
+ // HTML / XML comment start
798
+ if (char === "<" && line.slice(i, i + 4) === "<!--") {
799
+ const endIdx = line.indexOf("-->", i + 4);
800
+ if (endIdx === -1) {
801
+ tokens.push({ text: line.slice(i), kind: "comment" });
802
+ return { tokens, nextState: { inXmlComment: true } };
803
+ }
804
+ tokens.push({ text: line.slice(i, endIdx + 3), kind: "comment" });
805
+ i = endIdx + 3;
806
+ continue;
807
+ }
808
+ // Whitespace fast-path
809
+ if (/\s/.test(char)) {
810
+ const start = i;
811
+ while (i < len && /\s/.test(line[i])) {
812
+ i++;
813
+ }
814
+ tokens.push({ text: line.slice(start, i), kind: "plain" });
815
+ continue;
816
+ }
817
+ // HTML / XML Tags
818
+ if ((langKey === "html" || langKey === "xml") && char === "<") {
819
+ let endTag = i + 1;
820
+ while (endTag < len && !/[ >/]/.test(line[endTag])) {
821
+ endTag++;
822
+ }
823
+ const tagText = line.slice(i, endTag);
824
+ tokens.push({ text: tagText, kind: "tag" });
825
+ i = endTag;
826
+ continue;
827
+ }
828
+ // Python / TOML Triple-quoted strings (""" or ''')
829
+ if ((langKey === "python" || langKey === "toml") &&
830
+ (line.slice(i, i + 3) === '"""' || line.slice(i, i + 3) === "'''")) {
831
+ const delim = line.slice(i, i + 3);
832
+ const endIdx = line.indexOf(delim, i + 3);
833
+ if (endIdx === -1) {
834
+ tokens.push({ text: line.slice(i), kind: "string" });
835
+ return { tokens, nextState: { inMultiLineString: delim } };
836
+ }
837
+ tokens.push({ text: line.slice(i, endIdx + 3), kind: "string" });
838
+ i = endIdx + 3;
839
+ continue;
840
+ }
841
+ // Template literals (`)
842
+ if (char === "`") {
843
+ const start = i;
844
+ i++;
845
+ let closed = false;
846
+ while (i < len) {
847
+ if (line[i] === "\\") {
848
+ i += 2;
849
+ continue;
850
+ }
851
+ if (line[i] === "`") {
852
+ i++;
853
+ closed = true;
854
+ break;
855
+ }
856
+ i++;
857
+ }
858
+ if (!closed) {
859
+ tokens.push({ text: line.slice(start), kind: "string" });
860
+ return { tokens, nextState: { inMultiLineString: "`" } };
861
+ }
862
+ tokens.push({ text: line.slice(start, i), kind: "string" });
863
+ continue;
864
+ }
865
+ // Standard Strings (double quotes, single quotes)
866
+ if (char === '"' || char === "'") {
867
+ const quote = char;
868
+ const start = i;
869
+ i++;
870
+ while (i < len && line[i] !== quote) {
871
+ if (line[i] === "\\")
872
+ i++;
873
+ i++;
874
+ }
875
+ if (i < len)
876
+ i++;
877
+ tokens.push({ text: line.slice(start, i), kind: "string" });
878
+ continue;
879
+ }
880
+ // Numbers
881
+ if (/[0-9]/.test(char)) {
882
+ const start = i;
883
+ while (i < len && /[0-9a-fA-FxX._]/.test(line[i])) {
884
+ i++;
885
+ }
886
+ tokens.push({ text: line.slice(start, i), kind: "number" });
887
+ continue;
888
+ }
889
+ // Identifiers, keywords, types
890
+ if (/[a-zA-Z_$]/.test(char)) {
891
+ const start = i;
892
+ while (i < len && /[a-zA-Z0-9_$-]/.test(line[i])) {
893
+ i++;
894
+ }
895
+ const word = line.slice(start, i);
896
+ if (keywords.has(word)) {
897
+ tokens.push({ text: word, kind: "keyword" });
898
+ }
899
+ else if (TYPES.has(word)) {
900
+ tokens.push({ text: word, kind: "type" });
901
+ }
902
+ else if (i < len && line[i] === "(") {
903
+ tokens.push({ text: word, kind: "function" });
904
+ }
905
+ else if ((langKey === "html" || langKey === "css" || langKey === "yaml") &&
906
+ i < len &&
907
+ line[i] === ":") {
908
+ tokens.push({ text: word, kind: "attribute" });
909
+ }
910
+ else {
911
+ tokens.push({ text: word, kind: "plain" });
912
+ }
913
+ continue;
914
+ }
915
+ // Punctuation
916
+ if (/[{}[\],.;:]/.test(char) || char === "(" || char === ")") {
917
+ tokens.push({ text: char, kind: "punctuation" });
918
+ i++;
919
+ continue;
920
+ }
921
+ // Operators
922
+ if (/[+\-*%=<>!&|^~?]/.test(char) || char === "/") {
923
+ const start = i;
924
+ while (i < len && (/[+\-*%=<>!&|^~?]/.test(line[i]) || line[i] === "/")) {
925
+ i++;
926
+ }
927
+ tokens.push({ text: line.slice(start, i), kind: "operator" });
928
+ continue;
929
+ }
930
+ // Catch-all: guaranteed consumption for decorators (@), preprocessors (#),
931
+ // escapes (\), markdown, emojis, etc. Consume a full code point so
932
+ // surrogate pairs (emoji) stay in one token.
933
+ const code = line.codePointAt(i) ?? 0;
934
+ const charLen = code > 0xffff ? 2 : 1;
935
+ tokens.push({ text: line.slice(i, i + charLen), kind: "plain" });
936
+ i += charLen;
937
+ }
938
+ return { tokens, nextState: {} };
939
+ }
940
+ export function tokenizeLine(line, language = "typescript", state = {}) {
941
+ const result = tokenizeLineWithState(line, language, state);
942
+ const arr = result.tokens;
943
+ Object.defineProperty(arr, "nextState", {
944
+ value: result.nextState,
945
+ enumerable: false,
946
+ writable: true,
947
+ configurable: true,
948
+ });
949
+ return arr;
950
+ }
951
+ //# sourceMappingURL=microTokenizer.js.map