@mirascript/monaco 0.1.9 → 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.
@@ -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]: 'entity.name.namespace',
26
- [TokenType.PROPERTY]: 'support.type.property-name',
27
- [TokenType.KEYWORD_CONTROL]: 'keyword.control',
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}mirascript\n${value}\n${CODEBLOCK_FENCE}\n`;
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
- export function serializeForDisplay(value: VmValue, maxEntries = 100, maxWidth = 40): string {
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 = isVmExtern(value) && Array.isArray(value.value);
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[]): VmValue {
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 null;
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 ?? null;
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
- }