@mirascript/monaco 0.1.7 → 0.1.10
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/dist/basic/index.js +1 -1
- package/dist/basic/language-configuration.d.ts.map +1 -1
- package/dist/basic/tokens-provider.d.ts.map +1 -1
- package/dist/{chunk-PVHQXTKW.js → chunk-KA3F2DFK.js} +108 -70
- package/dist/chunk-KA3F2DFK.js.map +6 -0
- package/dist/constants.d.ts +0 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/contribute.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/lsp/index.js +114 -91
- package/dist/lsp/index.js.map +2 -2
- package/dist/lsp/providers/base.d.ts +11 -2
- package/dist/lsp/providers/base.d.ts.map +1 -1
- package/dist/lsp/providers/completion-item-provider.d.ts.map +1 -1
- package/dist/lsp/providers/definition-reference-provider.d.ts.map +1 -1
- package/dist/lsp/providers/hover-provider.d.ts.map +1 -1
- package/dist/lsp/utils.d.ts +4 -4
- package/dist/lsp/utils.d.ts.map +1 -1
- package/package.json +6 -4
- package/src/basic/language-configuration.ts +2 -1
- package/src/basic/tokens-provider.ts +104 -63
- package/src/constants.ts +0 -3
- package/src/contribute.ts +7 -0
- package/src/lsp/providers/base.ts +23 -3
- package/src/lsp/providers/completion-item-provider.ts +7 -5
- package/src/lsp/providers/definition-reference-provider.ts +58 -52
- package/src/lsp/providers/hover-provider.ts +7 -19
- package/src/lsp/providers/semantic-tokens-provider.ts +3 -3
- package/src/lsp/utils.ts +39 -17
- package/dist/chunk-PVHQXTKW.js.map +0 -6
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { CancellationToken, editor, IMarkdownString, IRange, languages, Position } from '../../monaco-api.js';
|
|
2
2
|
import { Provider } from './base.js';
|
|
3
3
|
import { DiagnosticCode } from '@mirascript/wasm';
|
|
4
|
-
import { codeblock, getDeep, valueDoc, paramsList
|
|
4
|
+
import { codeblock, getDeep, valueDoc, paramsList } from '../utils.js';
|
|
5
5
|
import type { FieldsAccessAt, VariableAccessAt } from '../compile-result.js';
|
|
6
6
|
|
|
7
7
|
/** @inheritdoc */
|
|
@@ -131,24 +131,12 @@ export class HoverProvider extends Provider implements languages.HoverProvider {
|
|
|
131
131
|
token: CancellationToken,
|
|
132
132
|
context?: languages.HoverContext<languages.Hover>,
|
|
133
133
|
): Promise<languages.Hover | undefined> {
|
|
134
|
-
const
|
|
135
|
-
if (!
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
return this.provideVariableHover(model, d);
|
|
141
|
-
}
|
|
142
|
-
const word = wordAt(model, position);
|
|
143
|
-
if (word) {
|
|
144
|
-
const a = compiled.fieldAccessAt(model, {
|
|
145
|
-
lineNumber: position.lineNumber,
|
|
146
|
-
column: word.range.endColumn,
|
|
147
|
-
});
|
|
148
|
-
if (a) {
|
|
149
|
-
return this.provideFieldHover(model, word.range, a);
|
|
150
|
-
}
|
|
134
|
+
const value = await this.getValueAt(model, position);
|
|
135
|
+
if (!value) return undefined;
|
|
136
|
+
if ('fields' in value) {
|
|
137
|
+
return this.provideFieldHover(model, value.range, value.fields);
|
|
138
|
+
} else {
|
|
139
|
+
return this.provideVariableHover(model, value.variable);
|
|
151
140
|
}
|
|
152
|
-
return undefined;
|
|
153
141
|
}
|
|
154
142
|
}
|
|
@@ -22,9 +22,9 @@ const TOKEN_TYPES: Record<TokenType, string> = {
|
|
|
22
22
|
[TokenType.CONSTANT]: 'variable.other.constant',
|
|
23
23
|
[TokenType.GLOBAL]: 'variable',
|
|
24
24
|
[TokenType.FUNCTION]: 'entity.name.function',
|
|
25
|
-
[TokenType.MODULE]: '
|
|
26
|
-
[TokenType.PROPERTY]: '
|
|
27
|
-
[TokenType.KEYWORD_CONTROL]: 'keyword.
|
|
25
|
+
[TokenType.MODULE]: 'type',
|
|
26
|
+
[TokenType.PROPERTY]: 'variable.other.property',
|
|
27
|
+
[TokenType.KEYWORD_CONTROL]: 'keyword.flow',
|
|
28
28
|
[TokenType.PARAM]: 'variable.other.constant.emphasis',
|
|
29
29
|
[TokenType.PARAM_MUTABLE]: 'variable.emphasis',
|
|
30
30
|
};
|
package/src/lsp/utils.ts
CHANGED
|
@@ -10,8 +10,10 @@ import {
|
|
|
10
10
|
isVmRecord,
|
|
11
11
|
serialize,
|
|
12
12
|
type VmAny,
|
|
13
|
+
type VmModule,
|
|
13
14
|
type VmFunctionInfo,
|
|
14
15
|
type VmValue,
|
|
16
|
+
type VmExtern,
|
|
15
17
|
} from '@mirascript/mirascript';
|
|
16
18
|
import { operations, serializePropName, serializeString } from '@mirascript/mirascript/subtle';
|
|
17
19
|
import type { LocalDefinition } from './compile-result.js';
|
|
@@ -125,23 +127,24 @@ export function globalFnDoc(info: VmFunctionInfo): string[] {
|
|
|
125
127
|
paramDoc.push(`- **返回值**: ${info.returns}`);
|
|
126
128
|
}
|
|
127
129
|
if (paramDoc.length) {
|
|
128
|
-
doc.push(paramDoc.join('\n'));
|
|
130
|
+
doc.push('', paramDoc.join('\n'));
|
|
129
131
|
}
|
|
130
132
|
if (info.examples?.length) {
|
|
131
133
|
let exp = `### 示例`;
|
|
132
134
|
for (const example of info.examples) {
|
|
133
135
|
exp += codeblock(example);
|
|
134
136
|
}
|
|
135
|
-
doc.push(exp);
|
|
137
|
+
doc.push('', exp);
|
|
136
138
|
}
|
|
137
139
|
return doc;
|
|
138
140
|
}
|
|
139
141
|
|
|
140
142
|
/** 获取代码块格式化字符串 */
|
|
141
143
|
export function codeblock(value: string): string {
|
|
144
|
+
const lang = value.startsWith('\0') ? 'mirascript-doc' : 'mirascript';
|
|
142
145
|
const includeFences = /`{3,}/.exec(value);
|
|
143
146
|
const CODEBLOCK_FENCE = includeFences ? '`'.repeat(includeFences[0].length + 1) : '```';
|
|
144
|
-
return `\n${CODEBLOCK_FENCE}
|
|
147
|
+
return `\n${CODEBLOCK_FENCE}${lang}\n${value}\n${CODEBLOCK_FENCE}\n`;
|
|
145
148
|
}
|
|
146
149
|
|
|
147
150
|
/** 检查位置是否在范围内,且范围非空 */
|
|
@@ -179,11 +182,14 @@ function serializeForDisplayInner(value: VmValue, maxWidth: number): string {
|
|
|
179
182
|
if (!len) return '()';
|
|
180
183
|
return `(../* x${len} */)`;
|
|
181
184
|
}
|
|
185
|
+
if (isVmExtern(value)) {
|
|
186
|
+
return `/* <extern ${value.describe}> */`;
|
|
187
|
+
}
|
|
182
188
|
return `/* ${operations.$ToString(value)} */`;
|
|
183
189
|
}
|
|
184
190
|
|
|
185
191
|
/** 将值序列化为便于展示的字符串 */
|
|
186
|
-
|
|
192
|
+
function serializeForDisplay(value: Exclude<VmValue, VmModule>, maxEntries = 100, maxWidth = 40): string {
|
|
187
193
|
if (isVmPrimitive(value) || isVmFunction(value)) {
|
|
188
194
|
return serializeForDisplayInner(value, maxWidth);
|
|
189
195
|
}
|
|
@@ -217,11 +223,24 @@ export function serializeForDisplay(value: VmValue, maxEntries = 100, maxWidth =
|
|
|
217
223
|
resultLength += entry.length;
|
|
218
224
|
}
|
|
219
225
|
} else {
|
|
220
|
-
const hint = serializeForDisplayInner(value, 100);
|
|
221
|
-
const isArray =
|
|
226
|
+
const hint = serializeForDisplayInner(value satisfies VmExtern, 100);
|
|
227
|
+
const isArray = Array.isArray(value.value);
|
|
222
228
|
begin = `${hint} ${isArray ? '[' : '('}`;
|
|
223
229
|
end = isArray ? ']' : ')';
|
|
224
230
|
const keys = value.keys();
|
|
231
|
+
if (keys.length === 0 && !isArray) {
|
|
232
|
+
if (typeof value.value == 'object') {
|
|
233
|
+
// 没有可枚举属性,尝试获取所有属性,仅在 LSP 进行展示时使用
|
|
234
|
+
// 实际程序运行时这些属性仍然不可通过 `keys()` 或 `for .. in` 访问
|
|
235
|
+
for (const key of Object.getOwnPropertyNames(value.value)) {
|
|
236
|
+
if (value.has(key)) keys.push(key);
|
|
237
|
+
}
|
|
238
|
+
} else {
|
|
239
|
+
// 没有可枚举属性的函数
|
|
240
|
+
begin = hint;
|
|
241
|
+
end = '';
|
|
242
|
+
}
|
|
243
|
+
}
|
|
225
244
|
for (const [index, key] of keys.entries()) {
|
|
226
245
|
if (entries.length > maxEntries) {
|
|
227
246
|
entries.push(`../* x${keys.length - entries.length} */`);
|
|
@@ -245,6 +264,15 @@ export function serializeForDisplay(value: VmValue, maxEntries = 100, maxWidth =
|
|
|
245
264
|
return `${begin}${entries.join(', ')}${end}`;
|
|
246
265
|
}
|
|
247
266
|
|
|
267
|
+
/** 生成 doc comment */
|
|
268
|
+
export function docComment(doc: string[]): string[] {
|
|
269
|
+
const lines = doc.flatMap((sec) => sec.split('\n').map((s) => s.trimEnd()));
|
|
270
|
+
const firstLine = lines.findIndex((line) => line.length > 0);
|
|
271
|
+
const lastLine = lines.findLastIndex((line) => line.length > 0);
|
|
272
|
+
if (firstLine < 0 || lastLine < 0) return [];
|
|
273
|
+
return [`/**`, ...lines.slice(firstLine, lastLine + 1).map((line) => ` * ${line}`), ` */`];
|
|
274
|
+
}
|
|
275
|
+
|
|
248
276
|
/** 获取变量文档 */
|
|
249
277
|
export function valueDoc(
|
|
250
278
|
name: string,
|
|
@@ -283,14 +311,7 @@ export function valueDoc(
|
|
|
283
311
|
for (const k of exports) {
|
|
284
312
|
const v = value.get(k);
|
|
285
313
|
const vDoc = valueDoc(k, v, isVmModule(v) ? 'field' : 'declare');
|
|
286
|
-
const code = [
|
|
287
|
-
`/**`,
|
|
288
|
-
...vDoc.doc.flatMap((sec) => sec.split('\n')).map((line) => ` * ${line}`),
|
|
289
|
-
` */`,
|
|
290
|
-
'export ' + vDoc.script,
|
|
291
|
-
'',
|
|
292
|
-
'',
|
|
293
|
-
];
|
|
314
|
+
const code = [...docComment(vDoc.doc), 'export ' + vDoc.script, '', ''];
|
|
294
315
|
script += code.join('\n');
|
|
295
316
|
}
|
|
296
317
|
script = script.trimEnd();
|
|
@@ -312,11 +333,12 @@ export function valueDoc(
|
|
|
312
333
|
}
|
|
313
334
|
|
|
314
335
|
/** 获取深层属性 */
|
|
315
|
-
export function getDeep(value: VmAny, path: readonly string[]):
|
|
336
|
+
export function getDeep(value: VmAny, path: readonly string[]): VmAny {
|
|
316
337
|
let current: VmAny = value;
|
|
317
338
|
for (const key of path) {
|
|
318
|
-
if (current == null) return
|
|
339
|
+
if (current == null) return current;
|
|
340
|
+
if (!operations.$Has(current, key)) return undefined;
|
|
319
341
|
current = operations.$Get(current, key);
|
|
320
342
|
}
|
|
321
|
-
return current
|
|
343
|
+
return current;
|
|
322
344
|
}
|
|
@@ -1,6 +0,0 @@
|
|
|
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
|
-
}
|