@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,119 @@
1
+ /**
2
+ * Parse a standard TextMate/LSP snippet template.
3
+ * Examples:
4
+ * "console.log($1);"
5
+ * "for (let ${1:i} = 0; ${1:i} < ${2:n}; ${1:i}++) {\n\t$0\n}"
6
+ */
7
+ export function parseSnippet(template) {
8
+ let text = "";
9
+ const fields = [];
10
+ let i = 0;
11
+ const len = template.length;
12
+ while (i < len) {
13
+ const ch = template[i];
14
+ if (ch === "\\") {
15
+ if (i + 1 < len) {
16
+ text += template[i + 1];
17
+ i += 2;
18
+ continue;
19
+ }
20
+ }
21
+ if (ch === "$") {
22
+ // $1 or $0
23
+ if (/[0-9]/.test(template[i + 1] || "")) {
24
+ const index = parseInt(template[i + 1], 10);
25
+ const start = text.length;
26
+ fields.push({ index, start, end: start, placeholder: "" });
27
+ i += 2;
28
+ continue;
29
+ }
30
+ // ${1:placeholder} or ${1}
31
+ if (template[i + 1] === "{") {
32
+ const closeIdx = template.indexOf("}", i + 2);
33
+ if (closeIdx !== -1) {
34
+ const inner = template.slice(i + 2, closeIdx);
35
+ const colonIdx = inner.indexOf(":");
36
+ let index = 0;
37
+ let placeholder = "";
38
+ if (colonIdx !== -1) {
39
+ index = parseInt(inner.slice(0, colonIdx), 10) || 0;
40
+ placeholder = inner.slice(colonIdx + 1);
41
+ }
42
+ else {
43
+ index = parseInt(inner, 10) || 0;
44
+ }
45
+ const start = text.length;
46
+ text += placeholder;
47
+ const end = text.length;
48
+ fields.push({ index, start, end, placeholder });
49
+ i = closeIdx + 1;
50
+ continue;
51
+ }
52
+ }
53
+ }
54
+ text += ch;
55
+ i++;
56
+ }
57
+ return { text, fields };
58
+ }
59
+ /**
60
+ * Fuzzy matching score for auto-completion.
61
+ * Returns a score (higher is better) or null if target does not match query.
62
+ */
63
+ export function fuzzyScore(query, target) {
64
+ if (!query)
65
+ return 0;
66
+ const q = query.toLowerCase();
67
+ const t = target.toLowerCase();
68
+ if (t === q)
69
+ return 1000;
70
+ if (t.startsWith(q))
71
+ return 500 - (t.length - q.length);
72
+ let qIdx = 0;
73
+ let score = 0;
74
+ let prevMatchIdx = -10;
75
+ for (let tIdx = 0; tIdx < t.length; tIdx++) {
76
+ if (qIdx < q.length && t[tIdx] === q[qIdx]) {
77
+ // Base match score
78
+ score += 10;
79
+ // Consecutive character bonus
80
+ if (tIdx === prevMatchIdx + 1) {
81
+ score += 15;
82
+ }
83
+ // Word boundary bonus (start of string, after _ or -, or CamelCase)
84
+ if (tIdx === 0 ||
85
+ target[tIdx - 1] === "_" ||
86
+ target[tIdx - 1] === "-" ||
87
+ target[tIdx - 1] === "." ||
88
+ (target[tIdx] >= "A" &&
89
+ target[tIdx] <= "Z" &&
90
+ target[tIdx - 1] >= "a" &&
91
+ target[tIdx - 1] <= "z")) {
92
+ score += 25;
93
+ }
94
+ prevMatchIdx = tIdx;
95
+ qIdx++;
96
+ }
97
+ }
98
+ // Not all query characters were found
99
+ if (qIdx < q.length)
100
+ return null;
101
+ // Slight penalty for longer non-matching target length
102
+ score -= t.length - q.length;
103
+ return score;
104
+ }
105
+ export function filterAndSortCompletions(query, items) {
106
+ if (!query)
107
+ return items;
108
+ const scored = [];
109
+ for (const item of items) {
110
+ const textToMatch = item.filterText || item.label;
111
+ const score = fuzzyScore(query, textToMatch);
112
+ if (score !== null) {
113
+ scored.push({ item, score });
114
+ }
115
+ }
116
+ scored.sort((a, b) => b.score - a.score);
117
+ return scored.map((s) => s.item);
118
+ }
119
+ //# sourceMappingURL=SnippetEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SnippetEngine.js","sourceRoot":"","sources":["../../src/snippet/SnippetEngine.ts"],"names":[],"mappings":"AAYA;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,QAAgB;IAC3C,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,MAAM,MAAM,GAAmB,EAAE,CAAC;IAClC,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC;IAE5B,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC;QACf,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAEvB,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;YAChB,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC;gBAChB,IAAI,IAAI,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACxB,CAAC,IAAI,CAAC,CAAC;gBACP,SAAS;YACX,CAAC;QACH,CAAC;QAED,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACf,WAAW;YACX,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;gBACxC,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;gBAC1B,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC3D,CAAC,IAAI,CAAC,CAAC;gBACP,SAAS;YACX,CAAC;YAED,2BAA2B;YAC3B,IAAI,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBAC5B,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC9C,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;oBACpB,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;oBAC9C,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBACpC,IAAI,KAAK,GAAG,CAAC,CAAC;oBACd,IAAI,WAAW,GAAG,EAAE,CAAC;oBACrB,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;wBACpB,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;wBACpD,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;oBAC1C,CAAC;yBAAM,CAAC;wBACN,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;oBACnC,CAAC;oBAED,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;oBAC1B,IAAI,IAAI,WAAW,CAAC;oBACpB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;oBACxB,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;oBAChD,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC;oBACjB,SAAS;gBACX,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,IAAI,EAAE,CAAC;QACX,CAAC,EAAE,CAAC;IACN,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC1B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,KAAa,EAAE,MAAc;IACtD,IAAI,CAAC,KAAK;QAAE,OAAO,CAAC,CAAC;IACrB,MAAM,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAC9B,MAAM,CAAC,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IAE/B,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACzB,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QAAE,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;IAExD,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;IAEvB,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;QAC3C,IAAI,IAAI,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3C,mBAAmB;YACnB,KAAK,IAAI,EAAE,CAAC;YAEZ,8BAA8B;YAC9B,IAAI,IAAI,KAAK,YAAY,GAAG,CAAC,EAAE,CAAC;gBAC9B,KAAK,IAAI,EAAE,CAAC;YACd,CAAC;YAED,oEAAoE;YACpE,IACE,IAAI,KAAK,CAAC;gBACV,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,GAAG;gBACxB,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,GAAG;gBACxB,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,GAAG;gBACxB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG;oBAClB,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG;oBACnB,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,GAAG;oBACvB,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,EAC1B,CAAC;gBACD,KAAK,IAAI,EAAE,CAAC;YACd,CAAC;YAED,YAAY,GAAG,IAAI,CAAC;YACpB,IAAI,EAAE,CAAC;QACT,CAAC;IACH,CAAC;IAED,sCAAsC;IACtC,IAAI,IAAI,GAAG,CAAC,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAEjC,uDAAuD;IACvD,KAAK,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IAE7B,OAAO,KAAK,CAAC;AACf,CAAC;AAOD,MAAM,UAAU,wBAAwB,CACtC,KAAa,EACb,KAAU;IAEV,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IAEzB,MAAM,MAAM,GAAoB,EAAE,CAAC;IACnC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC;QAClD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAC7C,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACzC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACnC,CAAC"}
@@ -0,0 +1,24 @@
1
+ import type { EditorTheme } from "@termaxjs/editor-core";
2
+ export interface VSCodeThemeRule {
3
+ name?: string;
4
+ scope?: string | string[];
5
+ settings: {
6
+ foreground?: string;
7
+ fontStyle?: string;
8
+ };
9
+ }
10
+ export interface VSCodeThemeJSON {
11
+ name?: string;
12
+ type?: "dark" | "light";
13
+ colors?: Record<string, string>;
14
+ tokenColors?: VSCodeThemeRule[];
15
+ }
16
+ /**
17
+ * Converts a standard VS Code theme JSON object into a high-performance TermaxEditor EditorTheme.
18
+ */
19
+ export declare class VSCodeThemeConverter {
20
+ static convert(themeJson: VSCodeThemeJSON, themeName?: string): EditorTheme;
21
+ }
22
+ export declare const TokyoNightTheme: EditorTheme;
23
+ export declare const CatppuccinMochaTheme: EditorTheme;
24
+ //# sourceMappingURL=VSCodeThemeConverter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VSCodeThemeConverter.d.ts","sourceRoot":"","sources":["../../src/themes/VSCodeThemeConverter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC1B,QAAQ,EAAE;QACR,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,WAAW,CAAC,EAAE,eAAe,EAAE,CAAC;CACjC;AAED;;GAEG;AACH,qBAAa,oBAAoB;WACjB,OAAO,CAAC,SAAS,EAAE,eAAe,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,WAAW;CAkEnF;AAGD,eAAO,MAAM,eAAe,EAAE,WAsB5B,CAAC;AAEH,eAAO,MAAM,oBAAoB,EAAE,WAsBjC,CAAC"}
@@ -0,0 +1,118 @@
1
+ /**
2
+ * Converts a standard VS Code theme JSON object into a high-performance TermaxEditor EditorTheme.
3
+ */
4
+ export class VSCodeThemeConverter {
5
+ static convert(themeJson, themeName) {
6
+ const colors = themeJson.colors ?? {};
7
+ const rules = themeJson.tokenColors ?? [];
8
+ const background = colors["editor.background"] ?? (themeJson.type === "light" ? "#ffffff" : "#1e1e1e");
9
+ const foreground = colors["editor.foreground"] ?? (themeJson.type === "light" ? "#000000" : "#d4d4d4");
10
+ const lineHighlight = colors["editor.lineHighlightBackground"];
11
+ const lineNumber = colors["editorLineNumber.foreground"];
12
+ const lineNumberActive = colors["editorLineNumber.activeForeground"];
13
+ const caret = colors["editorCursor.foreground"] ?? foreground;
14
+ const selection = colors["editor.selectionBackground"];
15
+ const gutterBackground = colors["editorGutter.background"] ?? background;
16
+ const syntax = {};
17
+ for (const rule of rules) {
18
+ if (!rule.settings?.foreground)
19
+ continue;
20
+ const fg = rule.settings.foreground;
21
+ const scopes = Array.isArray(rule.scope)
22
+ ? rule.scope
23
+ : typeof rule.scope === "string"
24
+ ? rule.scope.split(/,\s*/)
25
+ : [];
26
+ for (const scope of scopes) {
27
+ const cleanScope = scope.trim().toLowerCase();
28
+ if (cleanScope.includes("comment")) {
29
+ syntax.comment = fg;
30
+ }
31
+ else if (cleanScope.includes("string")) {
32
+ syntax.string = fg;
33
+ }
34
+ else if (cleanScope.includes("operator") || cleanScope.includes("punctuation")) {
35
+ syntax.operator = fg;
36
+ }
37
+ else if (cleanScope.includes("keyword") || cleanScope.includes("storage.type")) {
38
+ syntax.keyword = fg;
39
+ }
40
+ else if (cleanScope.includes("function") || cleanScope.includes("method")) {
41
+ syntax.function = fg;
42
+ }
43
+ else if (cleanScope.includes("variable") || cleanScope.includes("parameter")) {
44
+ syntax.variable = fg;
45
+ }
46
+ else if (cleanScope.includes("constant") || cleanScope.includes("number")) {
47
+ syntax.number = fg;
48
+ }
49
+ else if (cleanScope.includes("type") ||
50
+ cleanScope.includes("class") ||
51
+ cleanScope.includes("interface")) {
52
+ syntax.type = fg;
53
+ }
54
+ }
55
+ }
56
+ return {
57
+ name: themeName || themeJson.name || "VS Code Converted Theme",
58
+ background,
59
+ foreground,
60
+ lineHighlight,
61
+ lineNumber,
62
+ lineNumberActive,
63
+ caret,
64
+ selection,
65
+ gutterBackground,
66
+ syntax,
67
+ tokens: syntax,
68
+ };
69
+ }
70
+ }
71
+ // Built-in iconic presets converted from VS Code ecosystem
72
+ export const TokyoNightTheme = VSCodeThemeConverter.convert({
73
+ name: "Tokyo Night",
74
+ type: "dark",
75
+ colors: {
76
+ "editor.background": "#1a1b26",
77
+ "editor.foreground": "#a9b1d6",
78
+ "editor.lineHighlightBackground": "#1e202e",
79
+ "editorLineNumber.foreground": "#363b54",
80
+ "editorLineNumber.activeForeground": "#7aa2f7",
81
+ "editorCursor.foreground": "#c0caf5",
82
+ "editor.selectionBackground": "#283457",
83
+ },
84
+ tokenColors: [
85
+ { scope: "comment", settings: { foreground: "#565f89" } },
86
+ { scope: "keyword, storage.type", settings: { foreground: "#bb9af7" } },
87
+ { scope: "string", settings: { foreground: "#9ece6a" } },
88
+ { scope: "entity.name.function", settings: { foreground: "#7aa2f7" } },
89
+ { scope: "variable", settings: { foreground: "#c0caf5" } },
90
+ { scope: "constant.numeric", settings: { foreground: "#ff9e64" } },
91
+ { scope: "entity.name.type", settings: { foreground: "#2ac3de" } },
92
+ { scope: "keyword.operator", settings: { foreground: "#89ddff" } },
93
+ ],
94
+ });
95
+ export const CatppuccinMochaTheme = VSCodeThemeConverter.convert({
96
+ name: "Catppuccin Mocha",
97
+ type: "dark",
98
+ colors: {
99
+ "editor.background": "#1e1e2e",
100
+ "editor.foreground": "#cdd6f4",
101
+ "editor.lineHighlightBackground": "#313244",
102
+ "editorLineNumber.foreground": "#6c7086",
103
+ "editorLineNumber.activeForeground": "#cba6f7",
104
+ "editorCursor.foreground": "#f5e0dc",
105
+ "editor.selectionBackground": "#45475a",
106
+ },
107
+ tokenColors: [
108
+ { scope: "comment", settings: { foreground: "#6c7086" } },
109
+ { scope: "keyword, storage.type", settings: { foreground: "#cba6f7" } },
110
+ { scope: "string", settings: { foreground: "#a6e3a1" } },
111
+ { scope: "entity.name.function", settings: { foreground: "#89b4fa" } },
112
+ { scope: "variable", settings: { foreground: "#f5e0dc" } },
113
+ { scope: "constant.numeric", settings: { foreground: "#fab387" } },
114
+ { scope: "entity.name.type", settings: { foreground: "#f9e2af" } },
115
+ { scope: "keyword.operator", settings: { foreground: "#94e2d5" } },
116
+ ],
117
+ });
118
+ //# sourceMappingURL=VSCodeThemeConverter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VSCodeThemeConverter.js","sourceRoot":"","sources":["../../src/themes/VSCodeThemeConverter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { EditorTheme } from "@termaxjs/editor-core";
2
+ export type { EditorTheme };
3
+ export declare const githubDark: EditorTheme;
4
+ export declare const githubLight: EditorTheme;
5
+ export declare const oneDark: EditorTheme;
6
+ export declare const dracula: EditorTheme;
7
+ export declare const tokyoNight: EditorTheme;
8
+ export declare const THEMES: Record<string, EditorTheme>;
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/themes/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EAAE,WAAW,EAAE,CAAC;AAE5B,eAAO,MAAM,UAAU,EAAE,WAuBxB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,WAuBzB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,WAuBrB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,WAuBrB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,WAuBxB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAM9C,CAAC"}
@@ -0,0 +1,128 @@
1
+ export const githubDark = {
2
+ name: "GitHub Dark",
3
+ background: "#0d1117",
4
+ foreground: "#c9d1d9",
5
+ lineHighlight: "rgba(56, 139, 253, 0.08)",
6
+ lineNumber: "#6e7681",
7
+ lineNumberActive: "#e6edf3",
8
+ caret: "#58a6ff",
9
+ selection: "rgba(56, 139, 253, 0.25)",
10
+ border: "#30363d",
11
+ tokens: {
12
+ keyword: "#ff7b72",
13
+ type: "#79c0ff",
14
+ string: "#a5d6ff",
15
+ number: "#79c0ff",
16
+ comment: "#8b949e",
17
+ function: "#d2a8ff",
18
+ operator: "#ff7b72",
19
+ punctuation: "#c9d1d9",
20
+ tag: "#7ee787",
21
+ attribute: "#79c0ff",
22
+ plain: "#c9d1d9",
23
+ },
24
+ };
25
+ export const githubLight = {
26
+ name: "GitHub Light",
27
+ background: "#ffffff",
28
+ foreground: "#24292f",
29
+ lineHighlight: "rgba(234, 238, 242, 0.8)",
30
+ lineNumber: "#8c959f",
31
+ lineNumberActive: "#24292f",
32
+ caret: "#0969da",
33
+ selection: "rgba(84, 174, 255, 0.3)",
34
+ border: "#d0d7de",
35
+ tokens: {
36
+ keyword: "#cf222e",
37
+ type: "#0550ae",
38
+ string: "#0a3069",
39
+ number: "#0550ae",
40
+ comment: "#6e7781",
41
+ function: "#8250df",
42
+ operator: "#cf222e",
43
+ punctuation: "#24292f",
44
+ tag: "#116329",
45
+ attribute: "#0550ae",
46
+ plain: "#24292f",
47
+ },
48
+ };
49
+ export const oneDark = {
50
+ name: "One Dark",
51
+ background: "#282c34",
52
+ foreground: "#abb2bf",
53
+ lineHighlight: "#2c313a",
54
+ lineNumber: "#4b5263",
55
+ lineNumberActive: "#abb2bf",
56
+ caret: "#528bff",
57
+ selection: "#3e4451",
58
+ border: "#181a1f",
59
+ tokens: {
60
+ keyword: "#c678dd",
61
+ type: "#e5c07b",
62
+ string: "#98c379",
63
+ number: "#d19a66",
64
+ comment: "#5c6370",
65
+ function: "#61afef",
66
+ operator: "#56b6c2",
67
+ punctuation: "#abb2bf",
68
+ tag: "#e06c75",
69
+ attribute: "#d19a66",
70
+ plain: "#abb2bf",
71
+ },
72
+ };
73
+ export const dracula = {
74
+ name: "Dracula",
75
+ background: "#282a36",
76
+ foreground: "#f8f8f2",
77
+ lineHighlight: "#44475a",
78
+ lineNumber: "#6272a4",
79
+ lineNumberActive: "#f8f8f2",
80
+ caret: "#ff79c6",
81
+ selection: "rgba(68, 71, 90, 0.8)",
82
+ border: "#191a21",
83
+ tokens: {
84
+ keyword: "#ff79c6",
85
+ type: "#8be9fd",
86
+ string: "#f1fa8c",
87
+ number: "#bd93f9",
88
+ comment: "#6272a4",
89
+ function: "#50fa7b",
90
+ operator: "#ff79c6",
91
+ punctuation: "#f8f8f2",
92
+ tag: "#ff79c6",
93
+ attribute: "#50fa7b",
94
+ plain: "#f8f8f2",
95
+ },
96
+ };
97
+ export const tokyoNight = {
98
+ name: "Tokyo Night",
99
+ background: "#1a1b26",
100
+ foreground: "#a9b1d6",
101
+ lineHighlight: "#24283b",
102
+ lineNumber: "#565f89",
103
+ lineNumberActive: "#c0caf5",
104
+ caret: "#7aa2f7",
105
+ selection: "#33467c",
106
+ border: "#15161e",
107
+ tokens: {
108
+ keyword: "#bb9af7",
109
+ type: "#2ac3de",
110
+ string: "#9ece6a",
111
+ number: "#ff9e64",
112
+ comment: "#565f89",
113
+ function: "#7aa2f7",
114
+ operator: "#89ddff",
115
+ punctuation: "#a9b1d6",
116
+ tag: "#f7768e",
117
+ attribute: "#7dcfff",
118
+ plain: "#a9b1d6",
119
+ },
120
+ };
121
+ export const THEMES = {
122
+ githubDark,
123
+ githubLight,
124
+ oneDark,
125
+ dracula,
126
+ tokyoNight,
127
+ };
128
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/themes/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import { type Position, type Selection, type Range } from "@termaxjs/editor-core";
2
+ export type VimMode = "NORMAL" | "INSERT" | "VISUAL" | "VISUAL_LINE" | "VISUAL_BLOCK" | "COMMAND";
3
+ export interface VimContext {
4
+ lines: string[];
5
+ cursor: Position;
6
+ selection: Range | null;
7
+ selections: Selection[];
8
+ insertText: (text: string) => void;
9
+ deleteSelectionOrChar: (isForward?: boolean) => void;
10
+ enter: () => void;
11
+ setCursor: (pos: Position, preserveSelection?: boolean) => void;
12
+ setSelection: (range: Range | null) => void;
13
+ setSelections: (selections: Selection[]) => void;
14
+ setContent: (content: string) => void;
15
+ undo: () => void;
16
+ redo: () => void;
17
+ onSave?: () => void;
18
+ }
19
+ export declare class VimEngine {
20
+ mode: VimMode;
21
+ commandBuffer: string;
22
+ registers: Map<string, string>;
23
+ exInput: string;
24
+ handleKey(key: string, ctx: VimContext, e?: {
25
+ ctrlKey?: boolean;
26
+ metaKey?: boolean;
27
+ preventDefault?: () => void;
28
+ }): boolean;
29
+ private handleNormalVisualKey;
30
+ executeExCommand(cmd: string, ctx: VimContext): void;
31
+ }
32
+ //# sourceMappingURL=VimState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VimState.d.ts","sourceRoot":"","sources":["../../src/vim/VimState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,SAAS,EAAE,KAAK,KAAK,EAAoB,MAAM,uBAAuB,CAAC;AAEpG,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,aAAa,GAAG,cAAc,GAAG,SAAS,CAAC;AAElG,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,EAAE,QAAQ,CAAC;IACjB,SAAS,EAAE,KAAK,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,qBAAqB,EAAE,CAAC,SAAS,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACrD,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,SAAS,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,iBAAiB,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAChE,YAAY,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,KAAK,IAAI,CAAC;IAC5C,aAAa,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,KAAK,IAAI,CAAC;IACjD,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,qBAAa,SAAS;IACb,IAAI,EAAE,OAAO,CAAY;IACzB,aAAa,SAAM;IACnB,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAa;IAC3C,OAAO,SAAM;IAEb,SAAS,CACd,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,UAAU,EACf,CAAC,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,IAAI,CAAA;KAAE,GACxE,OAAO;IAyDV,OAAO,CAAC,qBAAqB;IA8MtB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,IAAI;CAmB5D"}