@mirascript/monaco 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 (95) hide show
  1. package/dist/basic/index.d.ts +6 -0
  2. package/dist/basic/index.d.ts.map +1 -0
  3. package/dist/basic/index.js +10 -0
  4. package/dist/basic/index.js.map +6 -0
  5. package/dist/basic/language-configuration.d.ts +5 -0
  6. package/dist/basic/language-configuration.d.ts.map +1 -0
  7. package/dist/basic/tokens-provider.d.ts +4 -0
  8. package/dist/basic/tokens-provider.d.ts.map +1 -0
  9. package/dist/chunk-CEFEXBF7.js +65 -0
  10. package/dist/chunk-CEFEXBF7.js.map +6 -0
  11. package/dist/chunk-PTNWRTNM.js +474 -0
  12. package/dist/chunk-PTNWRTNM.js.map +6 -0
  13. package/dist/constants.d.ts +20 -0
  14. package/dist/constants.d.ts.map +1 -0
  15. package/dist/contribute.d.ts +3 -0
  16. package/dist/contribute.d.ts.map +1 -0
  17. package/dist/index.d.ts +26 -0
  18. package/dist/index.d.ts.map +1 -0
  19. package/dist/index.js +83 -0
  20. package/dist/index.js.map +6 -0
  21. package/dist/lsp/compile-result.d.ts +150 -0
  22. package/dist/lsp/compile-result.d.ts.map +1 -0
  23. package/dist/lsp/diagnostics.d.ts +5 -0
  24. package/dist/lsp/diagnostics.d.ts.map +1 -0
  25. package/dist/lsp/index.d.ts +21 -0
  26. package/dist/lsp/index.d.ts.map +1 -0
  27. package/dist/lsp/index.js +2285 -0
  28. package/dist/lsp/index.js.map +6 -0
  29. package/dist/lsp/providers/base.d.ts +21 -0
  30. package/dist/lsp/providers/base.d.ts.map +1 -0
  31. package/dist/lsp/providers/code-action-provider.d.ts +12 -0
  32. package/dist/lsp/providers/code-action-provider.d.ts.map +1 -0
  33. package/dist/lsp/providers/color-provider.d.ts +10 -0
  34. package/dist/lsp/providers/color-provider.d.ts.map +1 -0
  35. package/dist/lsp/providers/completion-item-provider.d.ts +21 -0
  36. package/dist/lsp/providers/completion-item-provider.d.ts.map +1 -0
  37. package/dist/lsp/providers/definition-reference-provider.d.ts +16 -0
  38. package/dist/lsp/providers/definition-reference-provider.d.ts.map +1 -0
  39. package/dist/lsp/providers/document-highlight-provider.d.ts +12 -0
  40. package/dist/lsp/providers/document-highlight-provider.d.ts.map +1 -0
  41. package/dist/lsp/providers/document-symbol-provider.d.ts +10 -0
  42. package/dist/lsp/providers/document-symbol-provider.d.ts.map +1 -0
  43. package/dist/lsp/providers/formatter-provider.d.ts +18 -0
  44. package/dist/lsp/providers/formatter-provider.d.ts.map +1 -0
  45. package/dist/lsp/providers/hover-provider.d.ts +12 -0
  46. package/dist/lsp/providers/hover-provider.d.ts.map +1 -0
  47. package/dist/lsp/providers/inlay-hints-provider.d.ts +10 -0
  48. package/dist/lsp/providers/inlay-hints-provider.d.ts.map +1 -0
  49. package/dist/lsp/providers/range-provider.d.ts +10 -0
  50. package/dist/lsp/providers/range-provider.d.ts.map +1 -0
  51. package/dist/lsp/providers/rename-provider.d.ts +12 -0
  52. package/dist/lsp/providers/rename-provider.d.ts.map +1 -0
  53. package/dist/lsp/providers/semantic-tokens-provider.d.ts +12 -0
  54. package/dist/lsp/providers/semantic-tokens-provider.d.ts.map +1 -0
  55. package/dist/lsp/providers/signature-help-provider.d.ts +12 -0
  56. package/dist/lsp/providers/signature-help-provider.d.ts.map +1 -0
  57. package/dist/lsp/utils.d.ts +37 -0
  58. package/dist/lsp/utils.d.ts.map +1 -0
  59. package/dist/lsp/worker-helper.d.ts +5 -0
  60. package/dist/lsp/worker-helper.d.ts.map +1 -0
  61. package/dist/lsp/worker.d.ts +22 -0
  62. package/dist/lsp/worker.d.ts.map +1 -0
  63. package/dist/lsp/worker.js +62 -0
  64. package/dist/lsp/worker.js.map +6 -0
  65. package/dist/monaco-api.d.ts +16 -0
  66. package/dist/monaco-api.d.ts.map +1 -0
  67. package/package.json +39 -0
  68. package/src/basic/index.ts +11 -0
  69. package/src/basic/language-configuration.ts +90 -0
  70. package/src/basic/tokens-provider.ts +358 -0
  71. package/src/constants.ts +56 -0
  72. package/src/contribute.ts +18 -0
  73. package/src/index.ts +71 -0
  74. package/src/lsp/compile-result.ts +518 -0
  75. package/src/lsp/diagnostics.ts +83 -0
  76. package/src/lsp/index.ts +84 -0
  77. package/src/lsp/providers/base.ts +40 -0
  78. package/src/lsp/providers/code-action-provider.ts +28 -0
  79. package/src/lsp/providers/color-provider.ts +129 -0
  80. package/src/lsp/providers/completion-item-provider.ts +497 -0
  81. package/src/lsp/providers/definition-reference-provider.ts +107 -0
  82. package/src/lsp/providers/document-highlight-provider.ts +71 -0
  83. package/src/lsp/providers/document-symbol-provider.ts +65 -0
  84. package/src/lsp/providers/formatter-provider.ts +81 -0
  85. package/src/lsp/providers/hover-provider.ts +150 -0
  86. package/src/lsp/providers/inlay-hints-provider.ts +121 -0
  87. package/src/lsp/providers/range-provider.ts +37 -0
  88. package/src/lsp/providers/rename-provider.ts +144 -0
  89. package/src/lsp/providers/semantic-tokens-provider.ts +166 -0
  90. package/src/lsp/providers/signature-help-provider.ts +119 -0
  91. package/src/lsp/utils.ts +322 -0
  92. package/src/lsp/worker-helper.ts +119 -0
  93. package/src/lsp/worker.ts +83 -0
  94. package/src/monaco-api.js +66 -0
  95. package/src/monaco-api.ts +18 -0
@@ -0,0 +1,6 @@
1
+ import type { IDisposable } from '../monaco-api.js';
2
+ import { configuration } from './language-configuration.js';
3
+ export { configuration };
4
+ /** 注册 */
5
+ export declare function registerBasic(): Promise<IDisposable[]>;
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/basic/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAA4B,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAGtF,OAAO,EAAE,aAAa,EAAE,CAAC;AACzB,SAAS;AACT,wBAAsB,aAAa,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAG5D"}
@@ -0,0 +1,10 @@
1
+ import {
2
+ configuration,
3
+ registerBasic
4
+ } from "../chunk-PTNWRTNM.js";
5
+ import "../chunk-CEFEXBF7.js";
6
+ export {
7
+ configuration,
8
+ registerBasic
9
+ };
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "mappings": "",
5
+ "names": []
6
+ }
@@ -0,0 +1,5 @@
1
+ import { type IDisposable, languages } from '../monaco-api.js';
2
+ export declare const configuration: () => languages.LanguageConfiguration;
3
+ /** 注册语言配置 */
4
+ export declare function setLanguageConfiguration(): IDisposable[];
5
+ //# sourceMappingURL=language-configuration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"language-configuration.d.ts","sourceRoot":"","sources":["../../src/basic/language-configuration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAc/D,eAAO,MAAM,aAAa,QAAO,SAAS,CAAC,qBAmEzC,CAAC;AAEH,aAAa;AACb,wBAAgB,wBAAwB,IAAI,WAAW,EAAE,CAKxD"}
@@ -0,0 +1,4 @@
1
+ import { type IDisposable } from '../monaco-api.js';
2
+ /** 注册 Mirascript 的 TokensProvider */
3
+ export declare function registerMiraScriptTokensProvider(): IDisposable[];
4
+ //# sourceMappingURL=tokens-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens-provider.d.ts","sourceRoot":"","sources":["../../src/basic/tokens-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AA+V/D,qCAAqC;AACrC,wBAAgB,gCAAgC,IAAI,WAAW,EAAE,CAKhE"}
@@ -0,0 +1,65 @@
1
+ // src/monaco-api.js
2
+ var monaco = null;
3
+ var CancellationTokenSource;
4
+ var Emitter;
5
+ var KeyCode;
6
+ var KeyMod;
7
+ var MarkerSeverity;
8
+ var MarkerTag;
9
+ var Position;
10
+ var Range;
11
+ var Selection;
12
+ var SelectionDirection;
13
+ var Token;
14
+ var Uri;
15
+ var editor;
16
+ var languages;
17
+ var service;
18
+ var utils;
19
+ function registerMonacoApi(monacoApi) {
20
+ if (monaco) {
21
+ throw new Error("MiraScriptMonacoLoader has already been registered.");
22
+ }
23
+ if (!monacoApi || typeof monacoApi !== "object" || // !monaco.languages ||
24
+ // 'function' != typeof monaco.languages.register ||
25
+ // 'function' != typeof monaco.languages.onLanguage ||
26
+ // !monaco.editor ||
27
+ // 'function' != typeof monaco.editor.create ||
28
+ // 'function' != typeof monaco.editor.createModel ||
29
+ // 'function' != typeof monaco.editor.createWebWorker ||
30
+ "function" != typeof monacoApi.Uri || "function" != typeof monacoApi.Range || "function" != typeof monacoApi.Position || "function" != typeof monacoApi.CancellationTokenSource || "function" != typeof monacoApi.Emitter) {
31
+ throw new TypeError("Invalid Monaco editor instance provided.");
32
+ }
33
+ monaco = monacoApi;
34
+ ({
35
+ CancellationTokenSource,
36
+ Emitter,
37
+ KeyCode,
38
+ KeyMod,
39
+ MarkerSeverity,
40
+ MarkerTag,
41
+ Position,
42
+ Range,
43
+ Selection,
44
+ SelectionDirection,
45
+ Token,
46
+ Uri,
47
+ editor,
48
+ languages,
49
+ service,
50
+ utils
51
+ } = monacoApi);
52
+ }
53
+
54
+ export {
55
+ Emitter,
56
+ MarkerSeverity,
57
+ MarkerTag,
58
+ Position,
59
+ Range,
60
+ Uri,
61
+ editor,
62
+ languages,
63
+ registerMonacoApi
64
+ };
65
+ //# sourceMappingURL=chunk-CEFEXBF7.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/monaco-api.js"],
4
+ "mappings": ";AAAA,IAAI,SAAS;AAGN,IAAI;AAAJ,IACH;AADG,IAEH;AAFG,IAGH;AAHG,IAIH;AAJG,IAKH;AALG,IAMH;AANG,IAOH;AAPG,IAQH;AARG,IASH;AATG,IAUH;AAVG,IAWH;AAXG,IAYH;AAZG,IAaH;AAbG,IAcH;AAdG,IAeH;AAMG,SAAS,kBAAkB,WAAW;AACzC,MAAI,QAAQ;AACR,UAAM,IAAI,MAAM,qDAAqD;AAAA,EACzE;AACA,MACI,CAAC,aACD,OAAO,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQrB,cAAc,OAAO,UAAU,OAC/B,cAAc,OAAO,UAAU,SAC/B,cAAc,OAAO,UAAU,YAC/B,cAAc,OAAO,UAAU,2BAC/B,cAAc,OAAO,UAAU,SACjC;AACE,UAAM,IAAI,UAAU,0CAA0C;AAAA,EAClE;AACA,WAAS;AACT,GAAC;AAAA,IACG;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,IAAI;AACR;",
5
+ "names": []
6
+ }
@@ -0,0 +1,474 @@
1
+ import {
2
+ languages
3
+ } from "./chunk-CEFEXBF7.js";
4
+
5
+ // src/basic/index.ts
6
+ import { ready } from "@mirascript/wasm";
7
+
8
+ // src/constants.ts
9
+ import { constants } from "@mirascript/mirascript/subtle";
10
+ import { wasm } from "@mirascript/wasm";
11
+ var keywords = () => {
12
+ const kw = wasm.keywords();
13
+ Object.freeze(kw);
14
+ keywords = () => kw;
15
+ return kw;
16
+ };
17
+ var controlKeywords = () => {
18
+ const kw = wasm.control_keywords();
19
+ Object.freeze(kw);
20
+ controlKeywords = () => kw;
21
+ return kw;
22
+ };
23
+ var numericKeywords = () => {
24
+ const kw = wasm.numeric_keywords();
25
+ Object.freeze(kw);
26
+ numericKeywords = () => kw;
27
+ return kw;
28
+ };
29
+ var constantKeywords = () => {
30
+ const kw = wasm.constant_keywords();
31
+ Object.freeze(kw);
32
+ constantKeywords = () => kw;
33
+ return kw;
34
+ };
35
+ var reservedKeywords = () => {
36
+ const kw = wasm.reserved_keywords();
37
+ Object.freeze(kw);
38
+ reservedKeywords = () => kw;
39
+ return kw;
40
+ };
41
+ var { REG_IDENTIFIER, REG_ORDINAL } = constants;
42
+ var REG_WHITESPACE = /[ \t\v\f\r\n]/u;
43
+ var REG_HEX = /0[xX][a-fA-F0-9_]*[a-fA-F0-9]/;
44
+ var REG_OCT = /0[oO][0-7_]*[0-7]/;
45
+ var REG_BIN = /0[bB][01_]*[01]/;
46
+ var REG_NUMBER = /\d[\d_]*(?:\.[\d_]+)?(?:[eE][+-]?[\d_]*\d)?/u;
47
+ var DOC_HEADER = " 𝙼𝚒𝚛𝚊𝚂𝚌𝚛𝚒𝚙𝚝 𝙶𝚕𝚘𝚋𝚊𝚕 𝙳𝚎𝚏𝚒𝚗𝚒𝚝𝚒𝚘𝚗𝚜 ";
48
+ var MAX_VERBATIM_LENGTH = 16;
49
+
50
+ // src/basic/language-configuration.ts
51
+ function indentAction(action) {
52
+ if (languages == null) {
53
+ return {
54
+ indent: action[0]?.toLowerCase() + action.slice(1)
55
+ };
56
+ }
57
+ return { indentAction: languages.IndentAction[action] };
58
+ }
59
+ var configuration = () => ({
60
+ comments: {
61
+ lineComment: "//",
62
+ blockComment: ["/*", "*/"]
63
+ },
64
+ brackets: [
65
+ ...Array.from({ length: MAX_VERBATIM_LENGTH }).flatMap((_, i) => {
66
+ const prefix = "$".repeat(MAX_VERBATIM_LENGTH - i - 1);
67
+ return [
68
+ [`${prefix}{`, "}"],
69
+ [`${prefix}(`, ")"]
70
+ ];
71
+ }),
72
+ ["[", "]"]
73
+ ],
74
+ wordPattern: /(-?\d+\.\w+([+-]\w*)?)|([^`~!#%^&*()\-=+[{\]}\\|;:'",.<>/?\s]+)/g,
75
+ autoClosingPairs: [
76
+ { open: "{", close: "}" },
77
+ { open: "[", close: "]" },
78
+ { open: "(", close: ")" },
79
+ { open: '"', close: '"', notIn: ["string"] },
80
+ { open: "'", close: "'", notIn: ["string", "comment"] },
81
+ { open: "`", close: "`", notIn: ["string", "comment"] },
82
+ { open: "/**", close: " */", notIn: ["string"] }
83
+ ],
84
+ onEnterRules: [
85
+ {
86
+ // e.g. /** | */
87
+ beforeText: /^\s*\/\*\*(?!\/)([^*]|\*(?!\/))*$/,
88
+ afterText: /^\s*\*\/$/,
89
+ action: {
90
+ ...indentAction("IndentOutdent"),
91
+ appendText: " * "
92
+ }
93
+ },
94
+ {
95
+ // e.g. /** ...|
96
+ beforeText: /^\s*\/\*\*(?!\/)([^*]|\*(?!\/))*$/,
97
+ action: {
98
+ ...indentAction("None"),
99
+ appendText: " * "
100
+ }
101
+ },
102
+ {
103
+ // e.g. * ...|
104
+ beforeText: /^(\t|( {2}))* \*( ([^*]|\*(?!\/))*)?$/,
105
+ action: {
106
+ ...indentAction("None"),
107
+ appendText: "* "
108
+ }
109
+ },
110
+ {
111
+ // e.g. */|
112
+ beforeText: /^(\t|( {2}))* \*\/\s*$/,
113
+ action: {
114
+ ...indentAction("None"),
115
+ removeText: 1
116
+ }
117
+ }
118
+ ],
119
+ autoCloseBefore: "*/%^ &| ><= )}] ;,?: '\"` \n ~#\\",
120
+ folding: {
121
+ markers: {
122
+ start: /^\s*\/\/#?\s*?region\b/gu,
123
+ end: /^\s*\/\/#?\s*?endregion\b/gu
124
+ }
125
+ }
126
+ });
127
+ function setLanguageConfiguration() {
128
+ return [
129
+ languages.setLanguageConfiguration("mirascript", configuration()),
130
+ languages.setLanguageConfiguration("mirascript-template", configuration())
131
+ ];
132
+ }
133
+
134
+ // src/basic/tokens-provider.ts
135
+ function identifierCases(data, defaultToken = "variable") {
136
+ return {
137
+ "@numericKeywords": { ...data, token: `constant.numeric` },
138
+ "@constantKeywords": { ...data, token: `constant.language` },
139
+ "@controlKeywords": { ...data, token: `keyword.control` },
140
+ "@keywords": { ...data, token: `keyword` },
141
+ "[@]+.*": { ...data, token: `variable.other.constant` },
142
+ "~it": { ...data, token: `variable.other.constant.emphasis` },
143
+ "@default": { ...data, token: defaultToken }
144
+ };
145
+ }
146
+ function getTokensProvider(mode) {
147
+ return {
148
+ ignoreCase: false,
149
+ unicode: true,
150
+ includeLF: false,
151
+ brackets: [
152
+ { open: "{", close: "}", token: "delimiter.curly" },
153
+ { open: "[", close: "]", token: "delimiter.square" },
154
+ { open: "(", close: ")", token: "delimiter.parenthesis" }
155
+ ],
156
+ defaultToken: "invalid",
157
+ whitespace: REG_WHITESPACE,
158
+ identifier: REG_IDENTIFIER,
159
+ docHeader: DOC_HEADER,
160
+ keywords: keywords(),
161
+ controlKeywords: controlKeywords(),
162
+ constantKeywords: constantKeywords(),
163
+ numericKeywords: numericKeywords(),
164
+ inlineDocParam: /\(parameter(?: pattern)?\)/,
165
+ start: mode === "template" ? "root_template" : "root",
166
+ tokenPostfix: ".mirascript",
167
+ tokenizer: {
168
+ root: [
169
+ [/^(?=\0)/, "", "@doc_mode"],
170
+ [/^\/\*\*@docHeader\*\*\/$/, "comment.doc", "@doc_mode"],
171
+ [/[[\](){}]/, "@brackets"],
172
+ { include: "@common" }
173
+ ],
174
+ root_template: [
175
+ [/[^$]+/, "string"],
176
+ [/(?=\$)/, "", "@string_interpolation.$S3"],
177
+ [/[$]/, "string"]
178
+ ],
179
+ common: [
180
+ [/(@identifier)(@whitespace*)(\??:)(?!:)/, ["support.type.property-name", "", "delimiter"]],
181
+ [
182
+ /(fn)(@whitespace+)(@identifier)(?=$|@whitespace|[[({,;])/,
183
+ ["keyword", "", { cases: identifierCases(void 0, "entity.name.function") }]
184
+ ],
185
+ [
186
+ /(for)(@whitespace+)(mut)(@whitespace+)(@identifier)(@whitespace+)(in)/,
187
+ ["keyword.control", "", "keyword", "", { cases: identifierCases() }, "", "keyword.control"]
188
+ ],
189
+ [
190
+ /(for)(@whitespace+)(@identifier)(@whitespace+)(in)/,
191
+ ["keyword.control", "", { cases: identifierCases() }, "", "keyword.control"]
192
+ ],
193
+ [
194
+ /(\.)(@whitespace*)(\d+)/,
195
+ [
196
+ "delimiter",
197
+ "",
198
+ {
199
+ cases: {
200
+ [REG_ORDINAL.source]: "number.ordinal",
201
+ "@default": "number.float"
202
+ }
203
+ }
204
+ ]
205
+ ],
206
+ [
207
+ /(\.)(@whitespace*)(@identifier)(@whitespace*)(!?)(@whitespace*(?=\())/,
208
+ ["delimiter", "", "entity.name.function", "", "delimiter", ""]
209
+ ],
210
+ [/(\.)(@whitespace*)(@identifier)/, ["delimiter", "", "variable"]],
211
+ [
212
+ /(@identifier)(@whitespace*(?=\())/,
213
+ [
214
+ {
215
+ cases: identifierCases(void 0, `entity.name.function`)
216
+ },
217
+ ""
218
+ ]
219
+ ],
220
+ { include: "@whitespace" },
221
+ { include: "@string" },
222
+ [/(@identifier)/, { cases: identifierCases() }],
223
+ [REG_OCT, "number.octal"],
224
+ [REG_BIN, "number.binary"],
225
+ [REG_HEX, "number.hex"],
226
+ [
227
+ REG_NUMBER,
228
+ {
229
+ cases: {
230
+ [REG_ORDINAL.source]: "number.ordinal",
231
+ "@default": "number.float"
232
+ }
233
+ }
234
+ ],
235
+ [/(\.\.|\?:|[-+=/~?:;,.!@$%^&|*<>])/, "delimiter"],
236
+ [REG_ORDINAL, "number.ordinal"]
237
+ ],
238
+ whitespace: [
239
+ [/(@whitespace)+/, ""],
240
+ [/\/\/.*$/, "comment.line"],
241
+ [/\/\*{2}/, "comment.doc", "@doc_comment"],
242
+ [/\/\*/, "comment.block", "@block_comment"]
243
+ ],
244
+ string: [
245
+ [/["'`]/, { token: "string.quote.open", next: "@string_normal.$#", bracket: "@open" }],
246
+ [
247
+ /(@+)(["'`])/,
248
+ { token: "string.quote.open.$2$1.raw", next: "@string_verbatim.$2$1.$1", bracket: "@open" }
249
+ ]
250
+ ],
251
+ string_normal: [
252
+ [/[^'"`\\$]+/, "string"],
253
+ { include: "@string_escape" },
254
+ [/(?=\$)/, "", "@string_interpolation."],
255
+ [
256
+ /['"`]/,
257
+ {
258
+ cases: {
259
+ "$S2==$#": { token: "string.quote.close", next: "@pop", bracket: "@close" },
260
+ "@default": "string"
261
+ }
262
+ }
263
+ ]
264
+ ],
265
+ string_verbatim: [
266
+ [/[^'"`$]+/, "string"],
267
+ [/(?=\$)/, "", "@string_interpolation.$S3"],
268
+ [
269
+ /(['"`]@+)/,
270
+ {
271
+ cases: {
272
+ "$S2==$#": { token: "string.quote.close.raw.$#", next: "@pop", bracket: "@close" },
273
+ "@default": "string"
274
+ }
275
+ }
276
+ ],
277
+ [/['"`$]/, "string"]
278
+ ],
279
+ string_escape: [
280
+ [/\\([\\'"`$rntbfv0])/, "string.escape"],
281
+ [/\\u\{([0-9a-fA-F]+)\}/, "string.escape.unicode"],
282
+ [/\\x([0-9a-fA-F]{2})/, "string.escape.ascii"],
283
+ [/\\./, { token: "string.escape.invalid" }]
284
+ ],
285
+ ...Object.fromEntries(
286
+ Array.from({ length: MAX_VERBATIM_LENGTH }, (_, i) => {
287
+ const dollarCount = i === 0 ? 1 : i;
288
+ const dollarRegex = `\\\${${dollarCount}}`;
289
+ return [
290
+ `string_interpolation.${"@".repeat(i)}`,
291
+ [
292
+ [
293
+ `(${dollarRegex})(${REG_IDENTIFIER.source})`,
294
+ ["punctuation.section.embedded", { cases: identifierCases({ next: "@pop" }) }]
295
+ ],
296
+ [
297
+ `(${dollarRegex}\\{)`,
298
+ {
299
+ token: "punctuation.section.embedded",
300
+ bracket: "@open",
301
+ next: "@braced"
302
+ }
303
+ ],
304
+ [
305
+ `(${dollarRegex}\\()`,
306
+ {
307
+ token: "punctuation.section.embedded",
308
+ bracket: "@open",
309
+ next: "@parenthesized"
310
+ }
311
+ ],
312
+ [`\\\${0,${dollarCount}}`, "string", "@pop"],
313
+ ["", "", "@pop"]
314
+ ]
315
+ ];
316
+ })
317
+ ),
318
+ string_interpolation: [[/\$*/, "string", "@pop"]],
319
+ braced: [
320
+ [/\{/, { token: "@brackets", next: "@push" }],
321
+ [/\}/, { token: "@brackets", next: "@pop" }],
322
+ [/[[\]()]/, "@brackets"],
323
+ { include: "@common" }
324
+ ],
325
+ parenthesized: [
326
+ [/\(/, { token: "@brackets", next: "@push" }],
327
+ [/\)/, { token: "@brackets", next: "@pop" }],
328
+ [/[[\]{}]/, "@brackets"],
329
+ { include: "@common" }
330
+ ],
331
+ bracketed: [
332
+ [/\[/, { token: "@brackets", next: "@push" }],
333
+ [/\]/, { token: "@brackets", next: "@pop" }],
334
+ [/[(){}]/, "@brackets"],
335
+ { include: "@common" }
336
+ ],
337
+ block_comment: [
338
+ [/\*\//, { token: "comment.block", next: "@pop" }],
339
+ [/[^*]+/, { token: "comment.block" }],
340
+ [/\*/, { token: "comment.block" }]
341
+ ],
342
+ doc_comment: [
343
+ [/\*\//, { token: "comment.doc", next: "@pop" }],
344
+ [/^(\s*)\*(?!\/)/, { token: "comment.doc" }],
345
+ [/\\\*(?!\/)/, { token: "comment.doc.escape" }],
346
+ [/@(param|returns)/, { token: "entity.name.tag.doc" }],
347
+ [/\*{2}(\S|\S.*?\S)\*{2}(?!\/)/, { token: "comment.strong" }],
348
+ [/\*(\S|\S.*?\S)\*(?!\/)/, { token: "comment.emphasis" }],
349
+ [/[^*@\\]+/, { token: "comment.doc" }],
350
+ [/[*@\\]/, { token: "comment.doc" }]
351
+ ],
352
+ doc_mode: [
353
+ // inline doc, start with `\0`
354
+ [
355
+ /^(\0@inlineDocParam)(@whitespace+)(\.\.|)(mut)(@whitespace+)(@identifier)/,
356
+ ["entity.name.label", "", "delimiter", "keyword.mut", "", "variable.emphasis"]
357
+ ],
358
+ [
359
+ /^(\0@inlineDocParam)(@whitespace+)(\.\.|)(@identifier)/,
360
+ ["entity.name.label", "", "delimiter", "variable.other.constant.emphasis"]
361
+ ],
362
+ [/^(\0\(@identifier\))(@whitespace+)/, ["entity.name.label", ""]],
363
+ [
364
+ /(@identifier)(@whitespace*)(:)(@whitespace*)(\/\*@whitespace*<)(extern )([.\w]*Function)(>@whitespace*\*\/)/,
365
+ [
366
+ "entity.name.function.doc",
367
+ "",
368
+ "delimiter",
369
+ "",
370
+ "comment.doc",
371
+ "type",
372
+ "entity.name.label",
373
+ "comment.doc"
374
+ ]
375
+ ],
376
+ [
377
+ /(@identifier)(@whitespace*)(:)(@whitespace*)(\/\*@whitespace*<)(function )([.\w]*)(>@whitespace*\*\/)/,
378
+ [
379
+ "entity.name.function.doc",
380
+ "",
381
+ "delimiter",
382
+ "",
383
+ "comment.doc",
384
+ "type",
385
+ "entity.name.label",
386
+ "comment.doc"
387
+ ]
388
+ ],
389
+ [/(@identifier)(@whitespace*)(:)(@whitespace+)/, ["support.type.property-name", "", "delimiter", ""]],
390
+ [
391
+ /(\/\*@whitespace*<)(\w+@whitespace*)([.\w]*)(>@whitespace*\*\/)/,
392
+ ["comment.doc", "type", "entity.name.label", "comment.doc"]
393
+ ],
394
+ [/(\s*)(\(module\))(\s*)(@identifier)/, ["", "entity.name.label", "", "entity.name.namespace"]],
395
+ [/(fn)(@whitespace+)(@identifier)$/, ["keyword.fn.doc", "", "entity.name.function.doc"]],
396
+ [
397
+ /(fn)(@whitespace+)(@identifier)(\()(\.\.)(\))$/,
398
+ ["keyword.fn.doc", "", "entity.name.function.doc", "@brackets", "delimiter", "@brackets"]
399
+ ],
400
+ [/fn/, "keyword.fn.doc", "@fn_doc"],
401
+ [
402
+ /(let)(@whitespace+)(mut)(@whitespace+)(@identifier)/,
403
+ [{ token: "keyword.$1" }, "", "keyword.mut", "", { token: "variable", next: "@root" }]
404
+ ],
405
+ [
406
+ /(let|const)(@whitespace+)(@identifier)/,
407
+ [{ token: "keyword.$1" }, "", { token: "variable.other.constant", next: "@root" }]
408
+ ],
409
+ { include: "@common" },
410
+ [/[[\](){}]/, "@brackets"]
411
+ ],
412
+ fn_doc: [
413
+ [/(@identifier)(\()/, ["entity.name.function.doc", "@brackets"]],
414
+ [/@whitespace+/, ""],
415
+ [
416
+ /(\.\.|)(@identifier)(\s*)(:|,|\))/,
417
+ [
418
+ "delimiter",
419
+ "variable.emphasis.doc",
420
+ "",
421
+ {
422
+ cases: {
423
+ ":": { token: "delimiter", next: "@type_doc" },
424
+ "\\)": "@brackets",
425
+ "@default": "delimiter"
426
+ }
427
+ }
428
+ ]
429
+ ],
430
+ [/[()]/, "@brackets"],
431
+ [/(->)/, "delimiter", "@type_doc"],
432
+ [/;/, { token: "delimiter", next: "@pop", goBack: 1 }]
433
+ ],
434
+ type_doc: [
435
+ { include: "@type_doc_common" },
436
+ [/[,)]/, "delimiter", "@pop"],
437
+ [/;/, { token: "delimiter", next: "@pop", goBack: 1 }]
438
+ ],
439
+ type_doc_inner: [{ include: "@type_doc_common" }, [/[,;]/, "delimiter"]],
440
+ type_doc_common: [
441
+ [/fn\b/, "type", "@fn_doc"],
442
+ [/(type)(\()(@identifier)(\))/, ["type", "@brackets", "variable.emphasis.doc", "@brackets"]],
443
+ [/@identifier/, "type"],
444
+ [/[[(]/, "@brackets", "@type_doc_inner"],
445
+ [/[\])]/, "@brackets", "@pop"],
446
+ [/[&|.]/, "delimiter"],
447
+ [/@whitespace+/, ""]
448
+ ]
449
+ }
450
+ };
451
+ }
452
+ function registerMiraScriptTokensProvider() {
453
+ return [
454
+ languages.setMonarchTokensProvider("mirascript", getTokensProvider("script")),
455
+ languages.setMonarchTokensProvider("mirascript-template", getTokensProvider("template"))
456
+ ];
457
+ }
458
+
459
+ // src/basic/index.ts
460
+ async function registerBasic() {
461
+ await ready;
462
+ return [...setLanguageConfiguration(), ...registerMiraScriptTokensProvider()];
463
+ }
464
+
465
+ export {
466
+ keywords,
467
+ reservedKeywords,
468
+ REG_IDENTIFIER,
469
+ REG_ORDINAL,
470
+ DOC_HEADER,
471
+ configuration,
472
+ registerBasic
473
+ };
474
+ //# sourceMappingURL=chunk-PTNWRTNM.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/basic/index.ts", "../src/constants.ts", "../src/basic/language-configuration.ts", "../src/basic/tokens-provider.ts"],
4
+ "mappings": "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",
5
+ "names": []
6
+ }
@@ -0,0 +1,20 @@
1
+ /** 所有 MiraScript 关键字 */
2
+ export declare let keywords: () => readonly string[];
3
+ /** MiraScript 控制流关键字 */
4
+ export declare let controlKeywords: () => readonly string[];
5
+ /** MiraScript 数值字面量关键字 */
6
+ export declare let numericKeywords: () => readonly string[];
7
+ /** MiraScript 字面量关键字 */
8
+ export declare let constantKeywords: () => readonly string[];
9
+ /** MiraScript 保留字关键字 */
10
+ export declare let reservedKeywords: () => readonly string[];
11
+ export declare const REG_IDENTIFIER: RegExp, REG_ORDINAL: RegExp;
12
+ export declare const REG_WHITESPACE: RegExp;
13
+ export declare const REG_HEX: RegExp;
14
+ export declare const REG_OCT: RegExp;
15
+ export declare const REG_BIN: RegExp;
16
+ export declare const REG_NUMBER: RegExp;
17
+ export declare const DOC_HEADER = " \uD835\uDE7C\uD835\uDE92\uD835\uDE9B\uD835\uDE8A\uD835\uDE82\uD835\uDE8C\uD835\uDE9B\uD835\uDE92\uD835\uDE99\uD835\uDE9D \uD835\uDE76\uD835\uDE95\uD835\uDE98\uD835\uDE8B\uD835\uDE8A\uD835\uDE95 \uD835\uDE73\uD835\uDE8E\uD835\uDE8F\uD835\uDE92\uD835\uDE97\uD835\uDE92\uD835\uDE9D\uD835\uDE92\uD835\uDE98\uD835\uDE97\uD835\uDE9C ";
18
+ /** 基础语言服务支持的最大插值字符串 `$` 数量 */
19
+ export declare const MAX_VERBATIM_LENGTH = 16;
20
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAGA,wBAAwB;AACxB,eAAO,IAAI,QAAQ,QAAO,SAAS,MAAM,EAKxC,CAAC;AAEF,wBAAwB;AACxB,eAAO,IAAI,eAAe,QAAO,SAAS,MAAM,EAK/C,CAAC;AAEF,0BAA0B;AAC1B,eAAO,IAAI,eAAe,QAAO,SAAS,MAAM,EAK/C,CAAC;AAEF,wBAAwB;AACxB,eAAO,IAAI,gBAAgB,QAAO,SAAS,MAAM,EAKhD,CAAC;AAEF,wBAAwB;AACxB,eAAO,IAAI,gBAAgB,QAAO,SAAS,MAAM,EAKhD,CAAC;AAEF,eAAO,MAAQ,cAAc,UAAE,WAAW,QAAc,CAAC;AAEzD,eAAO,MAAM,cAAc,QAAmB,CAAC;AAC/C,eAAO,MAAM,OAAO,QAAkC,CAAC;AACvD,eAAO,MAAM,OAAO,QAAsB,CAAC;AAC3C,eAAO,MAAM,OAAO,QAAoB,CAAC;AACzC,eAAO,MAAM,UAAU,QAAiD,CAAC;AAGzE,eAAO,MAAM,UAAU,6UAA+D,CAAC;AAEvF,8BAA8B;AAC9B,eAAO,MAAM,mBAAmB,KAAK,CAAC"}
@@ -0,0 +1,3 @@
1
+ /** 注册语言 */
2
+ export declare function registerContribution(): void;
3
+ //# sourceMappingURL=contribute.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contribute.d.ts","sourceRoot":"","sources":["../src/contribute.ts"],"names":[],"mappings":"AAEA,WAAW;AACX,wBAAgB,oBAAoB,IAAI,IAAI,CAc3C"}