@mirascript/monaco 0.1.80 → 0.1.83

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.
package/README.md CHANGED
@@ -6,6 +6,7 @@
6
6
 
7
7
  - 注册 `mirascript` 与 `mirascript-template` 语言
8
8
  - 提供高亮、基础编辑支持与结构化语言能力
9
+ - 使用 `@mirascript/textmate` 与 VS Code、Shiki 共享同一套 TextMate grammar,且不接管 Monaco 主题
9
10
  - 支持按需加载补全、诊断、跳转等能力
10
11
  - 支持注入全局上下文,增强编辑体验
11
12
 
@@ -1,6 +1,8 @@
1
1
  import type { IDisposable } from '../monaco-api.js';
2
2
  import { configuration } from './language-configuration.js';
3
+ import { registerMiraScriptTokensProvider } from './tokens-provider.js';
3
4
  export { configuration };
5
+ export { registerMiraScriptTokensProvider };
4
6
  /** 注册 */
5
7
  export declare function registerBasic(): Promise<IDisposable[]>;
6
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/basic/index.ts"],"names":[],"mappings":"AAAA,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,CAI5D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/basic/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAA4B,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACtF,OAAO,EAAE,gCAAgC,EAAE,MAAM,sBAAsB,CAAC;AAExE,OAAO,EAAE,aAAa,EAAE,CAAC;AACzB,OAAO,EAAE,gCAAgC,EAAE,CAAC;AAE5C,SAAS;AACT,wBAAsB,aAAa,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAI5D"}
@@ -1,10 +1,12 @@
1
1
  import {
2
2
  configuration,
3
- registerBasic
4
- } from "../chunk-I4CXN5VV.js";
5
- import "../chunk-NAOKM25O.js";
3
+ registerBasic,
4
+ registerMiraScriptTokensProvider
5
+ } from "../chunk-7ZK72GPH.js";
6
+ import "../chunk-JOHUNWDB.js";
6
7
  export {
7
8
  configuration,
8
- registerBasic
9
+ registerBasic,
10
+ registerMiraScriptTokensProvider
9
11
  };
10
12
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
1
  import { type IDisposable } from '../monaco-api.js';
2
- /** 注册 Mirascript TokensProvider */
2
+ /** Register TextMate-backed token providers without changing Monaco themes. */
3
3
  export declare function registerMiraScriptTokensProvider(): IDisposable[];
4
4
  //# sourceMappingURL=tokens-provider.d.ts.map
@@ -1 +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;AAmd/D,qCAAqC;AACrC,wBAAgB,gCAAgC,IAAI,WAAW,EAAE,CAMhE"}
1
+ {"version":3,"file":"tokens-provider.d.ts","sourceRoot":"","sources":["../../src/basic/tokens-provider.ts"],"names":[],"mappings":"AAEA,OAAO,EAAa,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AA6H/D,+EAA+E;AAC/E,wBAAgB,gCAAgC,IAAI,WAAW,EAAE,CAOhE"}
@@ -0,0 +1,250 @@
1
+ import {
2
+ CONTRIBUTE_IDS,
3
+ languages
4
+ } from "./chunk-JOHUNWDB.js";
5
+
6
+ // src/constants.ts
7
+ import {
8
+ isKeyword,
9
+ KEYWORDS,
10
+ CONSTANT_KEYWORDS,
11
+ CONTROL_KEYWORDS,
12
+ NUMERIC_KEYWORDS,
13
+ RESERVED_KEYWORDS,
14
+ REG_IDENTIFIER,
15
+ REG_ORDINAL,
16
+ REG_WHITESPACE,
17
+ REG_BIN,
18
+ REG_HEX,
19
+ REG_OCT,
20
+ REG_NUMBER,
21
+ REG_IDENTIFIER_FULL,
22
+ REG_ORDINAL_FULL
23
+ } from "@mirascript/constants";
24
+ var MAX_VERBATIM_LENGTH = 16;
25
+
26
+ // src/basic/language-configuration.ts
27
+ function indentAction(action) {
28
+ if (languages == null) {
29
+ return {
30
+ indent: action[0]?.toLowerCase() + action.slice(1)
31
+ };
32
+ }
33
+ return { indentAction: languages.IndentAction[action] };
34
+ }
35
+ var configuration = () => ({
36
+ comments: {
37
+ lineComment: { comment: "//" },
38
+ blockComment: ["/*", "*/"]
39
+ },
40
+ brackets: [
41
+ ...Array.from({ length: MAX_VERBATIM_LENGTH }).flatMap((_, i) => {
42
+ const prefix = "$".repeat(MAX_VERBATIM_LENGTH - i - 1);
43
+ return [
44
+ [`${prefix}{`, "}"],
45
+ [`${prefix}(`, ")"]
46
+ ];
47
+ }),
48
+ ["[", "]"]
49
+ ],
50
+ wordPattern: /((?<!\.\s*)[\d_]+\.[\d_]+([eE][+-]?[\d_]+)?)|([^`~!#%^&*()\-=+[{\]}\\|;:'",.<>/?\s]+)/g,
51
+ autoClosingPairs: [
52
+ { open: "{", close: "}" },
53
+ { open: "[", close: "]" },
54
+ { open: "(", close: ")" },
55
+ { open: '"', close: '"', notIn: ["string"] },
56
+ { open: "'", close: "'", notIn: ["string", "comment"] },
57
+ { open: "`", close: "`", notIn: ["string", "comment"] },
58
+ { open: "/**", close: " */", notIn: ["string"] }
59
+ ],
60
+ onEnterRules: [
61
+ {
62
+ // e.g. /** | */
63
+ beforeText: /^\s*\/\*\*(?!\/)([^*]|\*(?!\/))*$/,
64
+ afterText: /^\s*\*\/$/,
65
+ action: {
66
+ ...indentAction("IndentOutdent"),
67
+ appendText: " * "
68
+ }
69
+ },
70
+ {
71
+ // e.g. /** ...|
72
+ beforeText: /^\s*\/\*\*(?!\/)([^*]|\*(?!\/))*$/,
73
+ action: {
74
+ ...indentAction("None"),
75
+ appendText: " * "
76
+ }
77
+ },
78
+ {
79
+ // e.g. * ...|
80
+ beforeText: /^(\t|( {2}))* \*( ([^*]|\*(?!\/))*)?$/,
81
+ action: {
82
+ ...indentAction("None"),
83
+ appendText: "* "
84
+ }
85
+ },
86
+ {
87
+ // e.g. */|
88
+ beforeText: /^(\t|( {2}))* \*\/\s*$/,
89
+ action: {
90
+ ...indentAction("None"),
91
+ removeText: 1
92
+ }
93
+ }
94
+ ],
95
+ autoCloseBefore: "*/%^ &| ><= )}] ;,?: '\"` \n ~#\\",
96
+ folding: {
97
+ markers: {
98
+ start: /^\s*\/\/#?\s*?region\b/gu,
99
+ end: /^\s*\/\/#?\s*?endregion\b/gu
100
+ }
101
+ }
102
+ });
103
+ function setLanguageConfiguration() {
104
+ return [
105
+ languages.setLanguageConfiguration("mirascript", configuration()),
106
+ languages.setLanguageConfiguration("mirascript-template", configuration()),
107
+ languages.setLanguageConfiguration("mirascript-doc", configuration())
108
+ ];
109
+ }
110
+
111
+ // src/basic/tokens-provider.ts
112
+ var TOKENIZE_MAX_LINE_LENGTH = 2e4;
113
+ var TOKENIZE_TIME_LIMIT = 500;
114
+ function tokenScope(scopes) {
115
+ const inInterpolation = scopes.some((scope) => scope.startsWith("meta.interpolation."));
116
+ let fallback = "";
117
+ const styledScopePrefixes = [
118
+ "invalid.",
119
+ "comment.",
120
+ "string.",
121
+ "keyword.",
122
+ "constant.",
123
+ "variable.",
124
+ "entity.",
125
+ "storage.",
126
+ "support.",
127
+ "markup."
128
+ ];
129
+ for (let index = scopes.length - 1; index >= 0; index -= 1) {
130
+ const scope = scopes[index];
131
+ if (scope === "source.mira" || scope === "source.mira.doc" || scope === "text.miratpl") continue;
132
+ if (scope.startsWith("meta.")) continue;
133
+ fallback ||= scope;
134
+ if (inInterpolation || styledScopePrefixes.some((prefix) => scope.startsWith(prefix))) return scope;
135
+ }
136
+ return fallback;
137
+ }
138
+ var HighlighterManager = class {
139
+ constructor() {
140
+ this.highlighterPromise = null;
141
+ }
142
+ /**
143
+ * Get the shared highlighter instance.
144
+ */
145
+ async getHighlighter() {
146
+ if (this.highlighterPromise) return this.highlighterPromise;
147
+ const [
148
+ { createHighlighterCore },
149
+ { createOnigurumaEngine },
150
+ wasm,
151
+ { mirascript, mirascriptDoc, mirascriptTemplate }
152
+ ] = await Promise.all([
153
+ import("@shikijs/core"),
154
+ import("@shikijs/engine-oniguruma"),
155
+ import("@shikijs/engine-oniguruma/wasm-inlined"),
156
+ import("@mirascript/textmate")
157
+ ]);
158
+ this.highlighterPromise = createHighlighterCore({
159
+ langs: [mirascript, mirascriptDoc, mirascriptTemplate],
160
+ themes: [],
161
+ engine: createOnigurumaEngine(wasm)
162
+ });
163
+ return this.highlighterPromise;
164
+ }
165
+ /** Get tokens provider factory of language */
166
+ getTokensProviderFactory(languageId) {
167
+ return {
168
+ create: async () => {
169
+ const highlighter = await this.getHighlighter();
170
+ const { INITIAL } = await import("@shikijs/vscode-textmate");
171
+ const grammar = highlighter.getLanguage(languageId);
172
+ return new TokensProvider(grammar, INITIAL);
173
+ }
174
+ };
175
+ }
176
+ /** @inheritdoc */
177
+ dispose() {
178
+ const promise = this.highlighterPromise;
179
+ this.highlighterPromise = null;
180
+ if (promise) {
181
+ promise.then((highlighter) => highlighter.dispose()).catch(() => {
182
+ console.error("Failed to dispose highlighter");
183
+ });
184
+ }
185
+ }
186
+ };
187
+ var TokensProvider = class {
188
+ constructor(grammar, initialState) {
189
+ this.grammar = grammar;
190
+ this.initialState = initialState;
191
+ }
192
+ /** @inheritdoc */
193
+ getInitialState() {
194
+ return this.initialState;
195
+ }
196
+ /** @inheritdoc */
197
+ tokenize(line, state) {
198
+ if (line.length >= TOKENIZE_MAX_LINE_LENGTH) {
199
+ console.warn(
200
+ `MiraScript TextMate tokenization skipped for line exceeding ${TOKENIZE_MAX_LINE_LENGTH} characters: ${line.slice(0, 100)}`
201
+ );
202
+ return {
203
+ endState: state,
204
+ tokens: [{ startIndex: 0, scopes: "" }]
205
+ };
206
+ }
207
+ const result = this.grammar.tokenizeLine(line, state, TOKENIZE_TIME_LIMIT);
208
+ if (result.stoppedEarly) {
209
+ console.warn(`MiraScript TextMate tokenization timed out: ${line.slice(0, 100)}`);
210
+ }
211
+ return {
212
+ endState: result.ruleStack,
213
+ tokens: result.tokens.map((token) => ({
214
+ startIndex: token.startIndex,
215
+ scopes: tokenScope(token.scopes)
216
+ }))
217
+ };
218
+ }
219
+ };
220
+ function registerMiraScriptTokensProvider() {
221
+ const manager = new HighlighterManager();
222
+ const disposables = CONTRIBUTE_IDS.map(
223
+ (id) => languages.registerTokensProviderFactory(id, manager.getTokensProviderFactory(id))
224
+ );
225
+ disposables.push(manager);
226
+ return disposables;
227
+ }
228
+
229
+ // src/basic/index.ts
230
+ async function registerBasic() {
231
+ const { loadModule } = await import("@mirascript/bindings/wasm");
232
+ await loadModule();
233
+ return [...setLanguageConfiguration(), ...registerMiraScriptTokensProvider()];
234
+ }
235
+
236
+ export {
237
+ isKeyword,
238
+ KEYWORDS,
239
+ RESERVED_KEYWORDS,
240
+ REG_BIN,
241
+ REG_HEX,
242
+ REG_OCT,
243
+ REG_NUMBER,
244
+ REG_IDENTIFIER_FULL,
245
+ REG_ORDINAL_FULL,
246
+ configuration,
247
+ registerMiraScriptTokensProvider,
248
+ registerBasic
249
+ };
250
+ //# sourceMappingURL=chunk-7ZK72GPH.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/constants.ts", "../src/basic/language-configuration.ts", "../src/basic/tokens-provider.ts", "../src/basic/index.ts"],
4
+ "mappings": "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",
5
+ "names": []
6
+ }
@@ -49,6 +49,27 @@ function registerMonacoApi(monacoApi) {
49
49
  } = monacoApi);
50
50
  }
51
51
 
52
+ // src/contribute.ts
53
+ import { mirascriptLanguage, mirascriptDocLanguage, mirascriptTemplateLanguage } from "@mirascript/textmate/language";
54
+ var CONTRIBUTE_IDS = [mirascriptLanguage.name, mirascriptTemplateLanguage.name, mirascriptDocLanguage.name];
55
+ function registerContribution() {
56
+ languages.register({
57
+ id: mirascriptLanguage.name,
58
+ extensions: [".mira"],
59
+ aliases: mirascriptLanguage.aliases,
60
+ mimetypes: ["text/x-mirascript"]
61
+ });
62
+ languages.register({
63
+ id: mirascriptTemplateLanguage.name,
64
+ extensions: [".miratpl"],
65
+ aliases: mirascriptTemplateLanguage.aliases,
66
+ mimetypes: ["text/x-mirascript-template"]
67
+ });
68
+ languages.register({
69
+ id: mirascriptDocLanguage.name
70
+ });
71
+ }
72
+
52
73
  export {
53
74
  Emitter,
54
75
  MarkerSeverity,
@@ -58,6 +79,8 @@ export {
58
79
  Uri,
59
80
  editor,
60
81
  languages,
61
- registerMonacoApi
82
+ registerMonacoApi,
83
+ CONTRIBUTE_IDS,
84
+ registerContribution
62
85
  };
63
- //# sourceMappingURL=chunk-NAOKM25O.js.map
86
+ //# sourceMappingURL=chunk-JOHUNWDB.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
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,UAAU,WAAW,WAAW;AAChC,UAAM,IAAI,MAAM,qDAAqD;AAAA,EACzE;AACA,MACI,CAAC,aACD,OAAO,cAAc,YACrB,CAAC,UAAU;AAAA;AAAA,EAGX,CAAC,UAAU;AAAA;AAAA;AAAA,EAIX,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;",
3
+ "sources": ["../src/monaco-api.js", "../src/contribute.ts"],
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,UAAU,WAAW,WAAW;AAChC,UAAM,IAAI,MAAM,qDAAqD;AAAA,EACzE;AACA,MACI,CAAC,aACD,OAAO,cAAc,YACrB,CAAC,UAAU;AAAA;AAAA,EAGX,CAAC,UAAU;AAAA;AAAA;AAAA,EAIX,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;;;ACjEA,SAAS,oBAAoB,uBAAuB,kCAAkC;AAG/E,IAAM,iBAAiB,CAAC,mBAAmB,MAAM,2BAA2B,MAAM,sBAAsB,IAAI;AAG5G,SAAS,uBAA6B;AACzC,YAAU,SAAS;AAAA,IACf,IAAI,mBAAmB;AAAA,IACvB,YAAY,CAAC,OAAO;AAAA,IACpB,SAAS,mBAAmB;AAAA,IAC5B,WAAW,CAAC,mBAAmB;AAAA,EACnC,CAAC;AAED,YAAU,SAAS;AAAA,IACf,IAAI,2BAA2B;AAAA,IAC/B,YAAY,CAAC,UAAU;AAAA,IACvB,SAAS,2BAA2B;AAAA,IACpC,WAAW,CAAC,4BAA4B;AAAA,EAC5C,CAAC;AAED,YAAU,SAAS;AAAA,IACf,IAAI,sBAAsB;AAAA,EAC9B,CAAC;AACL;",
5
5
  "names": []
6
6
  }
@@ -1,3 +1,4 @@
1
+ export declare const CONTRIBUTE_IDS: string[];
1
2
  /** 注册语言 */
2
3
  export declare function registerContribution(): void;
3
4
  //# sourceMappingURL=contribute.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"contribute.d.ts","sourceRoot":"","sources":["../src/contribute.ts"],"names":[],"mappings":"AAEA,WAAW;AACX,wBAAgB,oBAAoB,IAAI,IAAI,CAqB3C"}
1
+ {"version":3,"file":"contribute.d.ts","sourceRoot":"","sources":["../src/contribute.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,cAAc,UAAyF,CAAC;AAErH,WAAW;AACX,wBAAgB,oBAAoB,IAAI,IAAI,CAkB3C"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,KAAK,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,KAAK,WAAW,EAAE,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE9G,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,YAAY,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE3D,eAAe;AACf,MAAM,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;AAElG,UAAU;AACV,qBAAa,sBAAuB,YAAW,WAAW;IAC1C,QAAQ,CAAC,eAAe,CAAC,EAAE,iBAAiB;gBAAnC,eAAe,CAAC,EAAE,iBAAiB,YAAA;IAYxD,QAAQ,EAAE,iBAAiB,CAAM;IACjC,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,kBAAkB,CAAS;IACnC,aAAa;IACP,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAWxC,gBAAgB;IACV,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IActC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,OAAO,CAAC,QAAQ,CAAS;IACzB,kBAAkB;IAClB,OAAO,IAAI,IAAI;CASlB;AACD,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAC7B;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,SAAS,EAAE,cAAc,CAAC,EAAE,iBAAiB,GAAG,sBAAsB,CAGnH"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,KAAK,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,KAAK,WAAW,EAAE,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE9G,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,YAAY,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE3D,eAAe;AACf,MAAM,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;AAElG,UAAU;AACV,qBAAa,sBAAuB,YAAW,WAAW;IAC1C,QAAQ,CAAC,eAAe,CAAC,EAAE,iBAAiB;gBAAnC,eAAe,CAAC,EAAE,iBAAiB,YAAA;IAcxD,QAAQ,EAAE,iBAAiB,CAAM;IACjC,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,kBAAkB,CAAS;IACnC,aAAa;IACP,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAWxC,gBAAgB;IACV,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IActC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,OAAO,CAAC,QAAQ,CAAS;IACzB,kBAAkB;IAClB,OAAO,IAAI,IAAI;CASlB;AACD,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAC7B;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,SAAS,EAAE,cAAc,CAAC,EAAE,iBAAiB,GAAG,sBAAsB,CAGnH"}
package/dist/index.js CHANGED
@@ -1,29 +1,8 @@
1
1
  import {
2
2
  languages,
3
+ registerContribution,
3
4
  registerMonacoApi
4
- } from "./chunk-NAOKM25O.js";
5
-
6
- // src/contribute.ts
7
- function registerContribution() {
8
- languages.register({
9
- id: "mirascript",
10
- extensions: [".mira"],
11
- aliases: ["MiraScript", "mirascript", "mira"],
12
- mimetypes: ["text/x-mirascript"]
13
- });
14
- languages.register({
15
- id: "mirascript-template",
16
- extensions: [".miratpl"],
17
- aliases: ["MiraScriptTemplate", "mirascript-template", "miratpl"],
18
- mimetypes: ["text/x-mirascript-template"]
19
- });
20
- languages.register({
21
- id: "mirascript-doc",
22
- extensions: [],
23
- aliases: [],
24
- mimetypes: ["text/x-mirascript-doc"]
25
- });
26
- }
5
+ } from "./chunk-JOHUNWDB.js";
27
6
 
28
7
  // src/index.ts
29
8
  var MiraScriptMonacoLoader = class {
@@ -41,6 +20,7 @@ var MiraScriptMonacoLoader = class {
41
20
  languages.onLanguage("mirascript", _loadFullFeatures);
42
21
  languages.onLanguageEncountered("mirascript-template", _loadBasicFeatures);
43
22
  languages.onLanguage("mirascript-template", _loadFullFeatures);
23
+ languages.onLanguageEncountered("mirascript-doc", _loadBasicFeatures);
44
24
  }
45
25
  /** 加载基础功能 */
46
26
  async loadBasicFeatures() {
package/dist/index.js.map CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/contribute.ts", "../src/index.ts"],
4
- "mappings": ";;;;;;AAGO,SAAS,uBAA6B;AACzC,YAAU,SAAS;AAAA,IACf,IAAI;AAAA,IACJ,YAAY,CAAC,OAAO;AAAA,IACpB,SAAS,CAAC,cAAc,cAAc,MAAM;AAAA,IAC5C,WAAW,CAAC,mBAAmB;AAAA,EACnC,CAAC;AAED,YAAU,SAAS;AAAA,IACf,IAAI;AAAA,IACJ,YAAY,CAAC,UAAU;AAAA,IACvB,SAAS,CAAC,sBAAsB,uBAAuB,SAAS;AAAA,IAChE,WAAW,CAAC,4BAA4B;AAAA,EAC5C,CAAC;AAED,YAAU,SAAS;AAAA,IACf,IAAI;AAAA,IACJ,YAAY,CAAC;AAAA,IACb,SAAS,CAAC;AAAA,IACV,WAAW,CAAC,uBAAuB;AAAA,EACvC,CAAC;AACL;;;ACdO,IAAM,yBAAN,MAAoD;AAAA,EACvD,YAAqB,iBAAqC;AAArC;AAYrB,oBAA8B,CAAC;AAC/B,SAAQ,uBAAuB;AAC/B,SAAQ,qBAAqB;AA4B7B,SAAiB,cAA6B,CAAC;AAC/C,SAAQ,WAAW;AA1Cf,yBAAqB;AAErB,UAAM,qBAAqB,MAAM,KAAK,KAAK,kBAAkB;AAC7D,UAAM,oBAAoB,MAAM,KAAK,KAAK,gBAAgB;AAE1D,cAAU,sBAAsB,cAAc,kBAAkB;AAChE,cAAU,WAAW,cAAc,iBAAiB;AAEpD,cAAU,sBAAsB,uBAAuB,kBAAkB;AACzE,cAAU,WAAW,uBAAuB,iBAAiB;AAAA,EACjE;AAAA;AAAA,EAKA,MAAM,oBAAmC;AACrC,QAAI;AACA,YAAM,EAAE,cAAc,IAAI,MAAM,OAAO,kBAAkB;AACzD,UAAI,KAAK,wBAAwB,KAAK,SAAU;AAChD,WAAK,uBAAuB;AAC5B,WAAK,YAAY,KAAK,GAAI,MAAM,cAAc,CAAE;AAAA,IACpD,SAAS,OAAO;AAEZ,cAAQ,MAAM,6CAA6C,KAAK;AAAA,IACpE;AAAA,EACJ;AAAA;AAAA,EAEA,MAAM,kBAAiC;AACnC,QAAI;AACA,YAAM,QAAQ,KAAK,kBAAkB;AACrC,YAAM,EAAE,YAAY,IAAI,MAAM,OAAO,gBAAgB;AACrD,YAAM;AACN,UAAI,KAAK,sBAAsB,KAAK,SAAU;AAC9C,WAAK,qBAAqB;AAC1B,WAAK,YAAY,KAAK,GAAI,MAAM,YAAY,KAAK,iBAAiB,KAAK,QAAQ,CAAE;AAAA,IACrF,SAAS,OAAO;AAEZ,cAAQ,MAAM,2CAA2C,KAAK;AAAA,IAClE;AAAA,EACJ;AAAA;AAAA,EAKA,UAAgB;AACZ,QAAI,KAAK,UAAU;AACf,YAAM,IAAI,MAAM,mDAAmD;AAAA,IACvE;AACA,SAAK,WAAW;AAChB,eAAW,KAAK,KAAK,YAAY,OAAO,CAAC,GAAG;AACxC,QAAE,QAAQ;AAAA,IACd;AAAA,EACJ;AACJ;AAKO,SAAS,mBAAmB,WAAsB,gBAA4D;AACjH,oBAAkB,SAAS;AAC3B,SAAO,IAAI,uBAAuB,cAAc;AACpD;",
3
+ "sources": ["../src/index.ts"],
4
+ "mappings": ";;;;;;;AAUO,IAAM,yBAAN,MAAoD;AAAA,EACvD,YAAqB,iBAAqC;AAArC;AAcrB,oBAA8B,CAAC;AAC/B,SAAQ,uBAAuB;AAC/B,SAAQ,qBAAqB;AA4B7B,SAAiB,cAA6B,CAAC;AAC/C,SAAQ,WAAW;AA5Cf,yBAAqB;AAErB,UAAM,qBAAqB,MAAM,KAAK,KAAK,kBAAkB;AAC7D,UAAM,oBAAoB,MAAM,KAAK,KAAK,gBAAgB;AAE1D,cAAU,sBAAsB,cAAc,kBAAkB;AAChE,cAAU,WAAW,cAAc,iBAAiB;AAEpD,cAAU,sBAAsB,uBAAuB,kBAAkB;AACzE,cAAU,WAAW,uBAAuB,iBAAiB;AAE7D,cAAU,sBAAsB,kBAAkB,kBAAkB;AAAA,EACxE;AAAA;AAAA,EAKA,MAAM,oBAAmC;AACrC,QAAI;AACA,YAAM,EAAE,cAAc,IAAI,MAAM,OAAO,kBAAkB;AACzD,UAAI,KAAK,wBAAwB,KAAK,SAAU;AAChD,WAAK,uBAAuB;AAC5B,WAAK,YAAY,KAAK,GAAI,MAAM,cAAc,CAAE;AAAA,IACpD,SAAS,OAAO;AAEZ,cAAQ,MAAM,6CAA6C,KAAK;AAAA,IACpE;AAAA,EACJ;AAAA;AAAA,EAEA,MAAM,kBAAiC;AACnC,QAAI;AACA,YAAM,QAAQ,KAAK,kBAAkB;AACrC,YAAM,EAAE,YAAY,IAAI,MAAM,OAAO,gBAAgB;AACrD,YAAM;AACN,UAAI,KAAK,sBAAsB,KAAK,SAAU;AAC9C,WAAK,qBAAqB;AAC1B,WAAK,YAAY,KAAK,GAAI,MAAM,YAAY,KAAK,iBAAiB,KAAK,QAAQ,CAAE;AAAA,IACrF,SAAS,OAAO;AAEZ,cAAQ,MAAM,2CAA2C,KAAK;AAAA,IAClE;AAAA,EACJ;AAAA;AAAA,EAKA,UAAgB;AACZ,QAAI,KAAK,UAAU;AACf,YAAM,IAAI,MAAM,mDAAmD;AAAA,IACvE;AACA,SAAK,WAAW;AAChB,eAAW,KAAK,KAAK,YAAY,OAAO,CAAC,GAAG;AACxC,QAAE,QAAQ;AAAA,IACd;AAAA,EACJ;AACJ;AAKO,SAAS,mBAAmB,WAAsB,gBAA4D;AACjH,oBAAkB,SAAS;AAC3B,SAAO,IAAI,uBAAuB,cAAc;AACpD;",
5
5
  "names": []
6
6
  }
package/dist/lsp/index.js CHANGED
@@ -8,7 +8,7 @@ import {
8
8
  REG_ORDINAL_FULL,
9
9
  RESERVED_KEYWORDS,
10
10
  isKeyword
11
- } from "../chunk-I4CXN5VV.js";
11
+ } from "../chunk-7ZK72GPH.js";
12
12
  import {
13
13
  Emitter,
14
14
  MarkerSeverity,
@@ -18,7 +18,7 @@ import {
18
18
  Uri,
19
19
  editor,
20
20
  languages
21
- } from "../chunk-NAOKM25O.js";
21
+ } from "../chunk-JOHUNWDB.js";
22
22
 
23
23
  // src/lsp/providers/base.ts
24
24
  import { DefaultVmContext } from "@mirascript/mirascript/subtle";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mirascript/monaco",
3
- "version": "0.1.80",
3
+ "version": "0.1.83",
4
4
  "author": "CloudPSS",
5
5
  "license": "MIT",
6
6
  "description": "Monaco Editor integration for Mirascript.",
@@ -41,10 +41,14 @@
41
41
  }
42
42
  },
43
43
  "dependencies": {
44
- "@mirascript/bindings": "~0.1.80",
45
- "@mirascript/constants": "~0.1.80",
46
- "@mirascript/help": "~0.1.80",
47
- "@mirascript/mirascript": "~0.1.80"
44
+ "@shikijs/core": "^4.4.2",
45
+ "@shikijs/engine-oniguruma": "^4.4.2",
46
+ "@shikijs/vscode-textmate": "^10.0.2",
47
+ "@mirascript/constants": "~0.1.83",
48
+ "@mirascript/help": "~0.1.83",
49
+ "@mirascript/bindings": "~0.1.83",
50
+ "@mirascript/mirascript": "~0.1.83",
51
+ "@mirascript/textmate": "~0.1.83"
48
52
  },
49
53
  "peerDependencies": {
50
54
  "monaco-editor": ">= 0.0.40"
@@ -3,6 +3,8 @@ import { setLanguageConfiguration, configuration } from './language-configuratio
3
3
  import { registerMiraScriptTokensProvider } from './tokens-provider.js';
4
4
 
5
5
  export { configuration };
6
+ export { registerMiraScriptTokensProvider };
7
+
6
8
  /** 注册 */
7
9
  export async function registerBasic(): Promise<IDisposable[]> {
8
10
  const { loadModule } = await import('@mirascript/bindings/wasm');