meaoiu 0.1.2 → 0.1.4

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 (73) hide show
  1. package/LANGUAGE_GUIDE.md +1 -0
  2. package/README.md +385 -336
  3. package/dist/api/serviceState.d.ts +1 -1
  4. package/dist/api/serviceState.d.ts.map +1 -1
  5. package/dist/api/serviceState.js +1 -1
  6. package/dist/api/serviceState.js.map +1 -1
  7. package/dist/api/services/completions.d.ts.map +1 -1
  8. package/dist/api/services/completions.js +4 -3
  9. package/dist/api/services/completions.js.map +1 -1
  10. package/dist/api/services/formatting.d.ts +6 -1
  11. package/dist/api/services/formatting.d.ts.map +1 -1
  12. package/dist/api/services/formatting.js +156 -146
  13. package/dist/api/services/formatting.js.map +1 -1
  14. package/dist/api/services/highlight.d.ts.map +1 -1
  15. package/dist/api/services/highlight.js +28 -38
  16. package/dist/api/services/highlight.js.map +1 -1
  17. package/dist/api/services/inlayHints.d.ts +1 -1
  18. package/dist/api/services/inlayHints.d.ts.map +1 -1
  19. package/dist/api/services/inlayHints.js +4 -8
  20. package/dist/api/services/inlayHints.js.map +1 -1
  21. package/dist/api/services/search.d.ts.map +1 -1
  22. package/dist/api/services/search.js +7 -3
  23. package/dist/api/services/search.js.map +1 -1
  24. package/dist/api/utils/astUtils.d.ts.map +1 -1
  25. package/dist/api/utils/astUtils.js +18 -12
  26. package/dist/api/utils/astUtils.js.map +1 -1
  27. package/dist/api/utils/symbolAnalyzer.d.ts +1 -1
  28. package/dist/api/utils/symbolAnalyzer.d.ts.map +1 -1
  29. package/dist/api/utils/symbolAnalyzer.js +60 -63
  30. package/dist/api/utils/symbolAnalyzer.js.map +1 -1
  31. package/dist/cli/main.d.ts +0 -1
  32. package/dist/cli/main.js +3 -9
  33. package/dist/cli/main.js.map +1 -1
  34. package/dist/cli/tools/formatter.d.ts.map +1 -1
  35. package/dist/cli/tools/formatter.js +13 -3
  36. package/dist/cli/tools/formatter.js.map +1 -1
  37. package/dist/cli/tools/searcher.js +1 -1
  38. package/dist/cli/tools/searcher.js.map +1 -1
  39. package/dist/cli/tools/starter.d.ts +1 -2
  40. package/dist/cli/tools/starter.d.ts.map +1 -1
  41. package/dist/cli/tools/starter.js +5 -3
  42. package/dist/cli/tools/starter.js.map +1 -1
  43. package/dist/cli/tools/toolUtils.d.ts.map +1 -1
  44. package/dist/cli/tools/toolUtils.js +9 -13
  45. package/dist/cli/tools/toolUtils.js.map +1 -1
  46. package/dist/core/ast.d.ts +3 -2
  47. package/dist/core/ast.d.ts.map +1 -1
  48. package/dist/core/builtIns.d.ts.map +1 -1
  49. package/dist/core/builtIns.js +3 -1
  50. package/dist/core/builtIns.js.map +1 -1
  51. package/dist/core/error.d.ts +1 -0
  52. package/dist/core/error.d.ts.map +1 -1
  53. package/dist/core/error.js +4 -11
  54. package/dist/core/error.js.map +1 -1
  55. package/dist/core/lexer/preprocessor.d.ts.map +1 -1
  56. package/dist/core/lexer/preprocessor.js +30 -57
  57. package/dist/core/lexer/preprocessor.js.map +1 -1
  58. package/dist/core/lexer/tokenizer.d.ts +52 -52
  59. package/dist/core/lexer/tokenizer.d.ts.map +1 -1
  60. package/dist/core/lexer/tokenizer.js +59 -52
  61. package/dist/core/lexer/tokenizer.js.map +1 -1
  62. package/dist/core/parser.d.ts.map +1 -1
  63. package/dist/core/parser.js +194 -209
  64. package/dist/core/parser.js.map +1 -1
  65. package/dist/core/run/environment.js +3 -3
  66. package/dist/core/run/interpreter.d.ts.map +1 -1
  67. package/dist/core/run/interpreter.js +152 -158
  68. package/dist/core/run/interpreter.js.map +1 -1
  69. package/dist/core/run/io.d.ts.map +1 -1
  70. package/dist/core/run/io.js +4 -0
  71. package/dist/core/run/io.js.map +1 -1
  72. package/dist/core/typedef.js +5 -5
  73. package/package.json +3 -3
@@ -7,7 +7,7 @@ type DocState = {
7
7
  export declare class StateManager {
8
8
  #private;
9
9
  constructor(useOnebased?: boolean);
10
- static makeDocState(version: number, sourceCode: string): DocState;
10
+ static makeDocState(this: void, version: number, sourceCode: string): DocState;
11
11
  updateState(doc: DocState): ServiceState;
12
12
  useState(doc: DocState): ServiceState;
13
13
  getParseResult(doc: DocState): ParseResult | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"serviceState.d.ts","sourceRoot":"","sources":["../../src/api/serviceState.ts"],"names":[],"mappings":"AAGA,OAAO,EAAoB,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAkB,KAAK,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE/E,KAAK,QAAQ,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,MAAM,CAAA;CAAE,CAAC;AAE3D,qBAAa,YAAY;;gBAIZ,WAAW,UAAO;WAIhB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,QAAQ;IAIlE,WAAW,CAAC,GAAG,EAAE,QAAQ,GAAG,YAAY;IAMxC,QAAQ,CAAC,GAAG,EAAE,QAAQ,GAAG,YAAY;IAMrC,cAAc,CAAC,GAAG,EAAE,QAAQ,GAAG,WAAW,GAAG,SAAS;IAItD,gBAAgB,CAAC,GAAG,EAAE,QAAQ,GAAG,aAAa,GAAG,SAAS;CAGjE;AAED,qBAAa,YAAY;;gBAKZ,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,UAAO;IAKnE,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,IAAI,WAAW,IAAI,WAAW,CAE7B;IAED,IAAI,aAAa,IAAI,aAAa,CAEjC;CACD"}
1
+ {"version":3,"file":"serviceState.d.ts","sourceRoot":"","sources":["../../src/api/serviceState.ts"],"names":[],"mappings":"AAGA,OAAO,EAAoB,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAkB,KAAK,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE/E,KAAK,QAAQ,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,MAAM,CAAA;CAAE,CAAC;AAE3D,qBAAa,YAAY;;gBAIZ,WAAW,UAAO;WAIhB,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,QAAQ;IAI9E,WAAW,CAAC,GAAG,EAAE,QAAQ,GAAG,YAAY;IAMxC,QAAQ,CAAC,GAAG,EAAE,QAAQ,GAAG,YAAY;IAMrC,cAAc,CAAC,GAAG,EAAE,QAAQ,GAAG,WAAW,GAAG,SAAS;IAItD,gBAAgB,CAAC,GAAG,EAAE,QAAQ,GAAG,aAAa,GAAG,SAAS;CAGjE;AAED,qBAAa,YAAY;;gBAKZ,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,UAAO;IAKnE,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,IAAI,WAAW,IAAI,WAAW,CAE7B;IAED,IAAI,aAAa,IAAI,aAAa,CAEjC;CACD"}
@@ -44,7 +44,7 @@ export class ServiceState {
44
44
  return this.#parseResult;
45
45
  }
46
46
  get analyzeResult() {
47
- return this.#analyzeResult ??= analyzeSymbols(this.parseResult.program);
47
+ return (this.#analyzeResult ??= analyzeSymbols(this.parseResult.program));
48
48
  }
49
49
  }
50
50
  //# sourceMappingURL=serviceState.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"serviceState.js","sourceRoot":"","sources":["../../src/api/serviceState.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAE1B,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAa,KAAK,EAAoB,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,cAAc,EAAsB,MAAM,2BAA2B,CAAC;AAI/E,MAAM,OAAO,YAAY;IACxB,YAAY,CAAU;IACtB,WAAW,GAAoC,IAAI,OAAO,EAAE,CAAC;IAE7D,YAAY,WAAW,GAAG,IAAI;QAC7B,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;IACjC,CAAC;IAEM,MAAM,CAAC,YAAY,CAAC,OAAe,EAAE,UAAkB;QAC7D,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE,CAAC;IAC/C,CAAC;IAEM,WAAW,CAAC,GAAa;QAC/B,MAAM,KAAK,GAAG,IAAI,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAC9E,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACjC,OAAO,KAAK,CAAC;IACd,CAAC;IAEM,QAAQ,CAAC,GAAa;QAC5B,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,GAAG,CAAC,OAAO,KAAK,KAAK,EAAE,OAAO;YAAE,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAClE,OAAO,KAAK,CAAC;IACd,CAAC;IAEM,cAAc,CAAC,GAAa;QAClC,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC;IAC/C,CAAC;IAEM,gBAAgB,CAAC,GAAa;QACpC,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,aAAa,CAAC;IACjD,CAAC;CACD;AAED,MAAM,OAAO,YAAY;IACxB,QAAQ,CAAS;IACjB,YAAY,CAAc;IAC1B,cAAc,CAAiB;IAE/B,YAAY,OAAe,EAAE,UAAkB,EAAE,WAAW,GAAG,IAAI;QAClE,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,WAAW,EAAE,CAAC,6BAAqB,CAAC;IACtF,CAAC;IAED,IAAI,OAAO;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;IAED,IAAI,WAAW;QACd,OAAO,IAAI,CAAC,YAAY,CAAC;IAC1B,CAAC;IAED,IAAI,aAAa;QAChB,OAAO,IAAI,CAAC,cAAc,KAAK,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACzE,CAAC;CACD"}
1
+ {"version":3,"file":"serviceState.js","sourceRoot":"","sources":["../../src/api/serviceState.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAE1B,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAa,KAAK,EAAoB,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,cAAc,EAAsB,MAAM,2BAA2B,CAAC;AAI/E,MAAM,OAAO,YAAY;IACxB,YAAY,CAAU;IACtB,WAAW,GAAoC,IAAI,OAAO,EAAE,CAAC;IAE7D,YAAY,WAAW,GAAG,IAAI;QAC7B,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;IACjC,CAAC;IAEM,MAAM,CAAC,YAAY,CAAa,OAAe,EAAE,UAAkB;QACzE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE,CAAC;IAC/C,CAAC;IAEM,WAAW,CAAC,GAAa;QAC/B,MAAM,KAAK,GAAG,IAAI,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAC9E,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACjC,OAAO,KAAK,CAAC;IACd,CAAC;IAEM,QAAQ,CAAC,GAAa;QAC5B,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,GAAG,CAAC,OAAO,KAAK,KAAK,EAAE,OAAO;YAAE,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAClE,OAAO,KAAK,CAAC;IACd,CAAC;IAEM,cAAc,CAAC,GAAa;QAClC,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC;IAC/C,CAAC;IAEM,gBAAgB,CAAC,GAAa;QACpC,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,aAAa,CAAC;IACjD,CAAC;CACD;AAED,MAAM,OAAO,YAAY;IACxB,QAAQ,CAAS;IACjB,YAAY,CAAc;IAC1B,cAAc,CAAiB;IAE/B,YAAY,OAAe,EAAE,UAAkB,EAAE,WAAW,GAAG,IAAI;QAClE,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,WAAW,EAAE,CAAC,6BAAqB,CAAC;IACtF,CAAC;IAED,IAAI,OAAO;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;IAED,IAAI,WAAW;QACd,OAAO,IAAI,CAAC,YAAY,CAAC;IAC1B,CAAC;IAED,IAAI,aAAa;QAChB,OAAO,CAAC,IAAI,CAAC,cAAc,KAAK,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3E,CAAC;CACD"}
@@ -1 +1 @@
1
- {"version":3,"file":"completions.d.ts","sourceRoot":"","sources":["../../../src/api/services/completions.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AA0BrD,0BAAkB,cAAc;IAC/B,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,OAAO,KAAK;IACZ,SAAS,KAAK;CACd;AACD,KAAK,UAAU,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,cAAc,CAAA;CAAE,CAAC;AAuB1D,wBAAgB,cAAc,CAAC,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,GAAG,UAAU,EAAE,CAQ3F"}
1
+ {"version":3,"file":"completions.d.ts","sourceRoot":"","sources":["../../../src/api/services/completions.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AA0BrD,0BAAkB,cAAc;IAC/B,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,OAAO,KAAK;IACZ,SAAS,KAAK;CACd;AACD,KAAK,UAAU,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,cAAc,CAAA;CAAE,CAAC;AAuB1D,wBAAgB,cAAc,CAAC,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,GAAG,UAAU,EAAE,CAO3F"}
@@ -41,8 +41,9 @@ function getSymbolSuggestions(scope) {
41
41
  export function getCompletions(serviceState, position) {
42
42
  const { rootScope, nodeScopeMap } = serviceState.analyzeResult;
43
43
  const currentScope = findScopeAt(position, nodeScopeMap) ?? rootScope;
44
- const symbolSuggestions = getSymbolSuggestions(currentScope);
45
- const keywordSuggestions = sortedKeywords.map(label => ({ label, kind: 14 /* SuggestionKind.KEYWORD */ }));
46
- return [...symbolSuggestions, ...keywordSuggestions.reverse()];
44
+ const suggestions = getSymbolSuggestions(currentScope);
45
+ for (let i = sortedKeywords.length; i-- > 0; suggestions.push({ label: sortedKeywords[i], kind: 14 /* SuggestionKind.KEYWORD */ }))
46
+ ;
47
+ return suggestions;
47
48
  }
48
49
  //# sourceMappingURL=completions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"completions.js","sourceRoot":"","sources":["../../../src/api/services/completions.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAGlC,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAK/D,iBAAiB;AACjB,SAAS,WAAW,CACnB,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAY,EACpD,YAAkC;IAElC,IAAI,WAAiC,CAAC;IAEtC,KAAK,MAAM,IAAI,IAAI,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC;QACxC,MAAM,iBAAiB,GACtB,UAAU,GAAG,IAAI,CAAC,IAAI;YACtB,UAAU,GAAG,IAAI,CAAC,OAAO;YACzB,CAAC,UAAU,KAAK,IAAI,CAAC,IAAI,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC;YAClD,CAAC,UAAU,KAAK,IAAI,CAAC,OAAO,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC;YACxD,CAAC,WAAW;gBACX,CAAC,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI;oBAC5B,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO;oBAClC,CAAC,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC;oBAC9D,CAAC,IAAI,CAAC,OAAO,KAAK,WAAW,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAChF,IAAI,CAAC,iBAAiB;YAAE,WAAW,GAAG,IAAI,CAAC;IAC5C,CAAC;IACD,OAAO,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAChE,CAAC;AAUD,MAAM,eAAe,GAAG;IACvB,8BAAqB,iCAAyB;IAC9C,8BAAqB,iCAAyB;IAC9C,+BAAsB,mCAA0B;CACM,CAAC;AAExD,oBAAoB;AACpB,SAAS,oBAAoB,CAAC,KAAY;IACzC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,WAAW,GAAiB,EAAE,CAAC;IACrC,KAAK,IAAI,OAAO,GAAsB,KAAK,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QAChF,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;YACjD,MAAM,GAAG,GAAG,GAAG,KAAK,KAAK,IAAI,EAAE,CAAC;YAChC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,OAAO;YAC1B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;IACJ,CAAC;IACD,OAAO,WAAW,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,YAA0B,EAAE,QAAkB;IAC5E,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,YAAY,CAAC,aAAa,CAAC;IAC/D,MAAM,YAAY,GAAG,WAAW,CAAC,QAAQ,EAAE,YAAY,CAAC,IAAI,SAAS,CAAC;IAEtE,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,YAAY,CAAC,CAAC;IAC7D,MAAM,kBAAkB,GAAG,cAAc,CAAC,GAAG,CAAa,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,iCAAwB,EAAE,CAAC,CAAC,CAAC;IAE9G,OAAO,CAAC,GAAG,iBAAiB,EAAE,GAAG,kBAAkB,CAAC,OAAO,EAAE,CAAC,CAAC;AAChE,CAAC"}
1
+ {"version":3,"file":"completions.js","sourceRoot":"","sources":["../../../src/api/services/completions.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAGlC,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAK/D,iBAAiB;AACjB,SAAS,WAAW,CACnB,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAY,EACpD,YAAkC;IAElC,IAAI,WAAiC,CAAC;IAEtC,KAAK,MAAM,IAAI,IAAI,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC;QACxC,MAAM,iBAAiB,GACtB,UAAU,GAAG,IAAI,CAAC,IAAI;YACtB,UAAU,GAAG,IAAI,CAAC,OAAO;YACzB,CAAC,UAAU,KAAK,IAAI,CAAC,IAAI,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC;YAClD,CAAC,UAAU,KAAK,IAAI,CAAC,OAAO,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC;YACxD,CAAC,WAAW;gBACX,CAAC,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI;oBAC5B,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO;oBAClC,CAAC,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC;oBAC9D,CAAC,IAAI,CAAC,OAAO,KAAK,WAAW,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAChF,IAAI,CAAC,iBAAiB;YAAE,WAAW,GAAG,IAAI,CAAC;IAC5C,CAAC;IACD,OAAO,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAChE,CAAC;AAUD,MAAM,eAAe,GAAG;IACvB,8BAAqB,iCAAyB;IAC9C,8BAAqB,iCAAyB;IAC9C,+BAAsB,mCAA0B;CACM,CAAC;AAExD,oBAAoB;AACpB,SAAS,oBAAoB,CAAC,KAAY;IACzC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,WAAW,GAAiB,EAAE,CAAC;IACrC,KAAK,IAAI,OAAO,GAAsB,KAAK,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QAChF,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;YACjD,MAAM,GAAG,GAAG,GAAG,KAAK,KAAK,IAAI,EAAE,CAAC;YAChC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,OAAO;YAC1B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;IACJ,CAAC;IACD,OAAO,WAAW,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,YAA0B,EAAE,QAAkB;IAC5E,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,YAAY,CAAC,aAAa,CAAC;IAC/D,MAAM,YAAY,GAAG,WAAW,CAAC,QAAQ,EAAE,YAAY,CAAC,IAAI,SAAS,CAAC;IAEtE,MAAM,WAAW,GAAG,oBAAoB,CAAC,YAAY,CAAC,CAAC;IACvD,KAAK,IAAI,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,CAAE,EAAE,IAAI,iCAAwB,EAAE,CAAC;QAAC,CAAC;IAC5H,OAAO,WAAW,CAAC;AACpB,CAAC"}
@@ -1,2 +1,7 @@
1
- export declare function getFormattedCode(sourceCode: string): string;
1
+ import type { MeaoiuError } from '../../core/error.js';
2
+ export type FormatResult = {
3
+ errors: MeaoiuError[];
4
+ format: () => string;
5
+ };
6
+ export declare function getFormattedCode(sourceCode: string): FormatResult;
2
7
  //# sourceMappingURL=formatting.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"formatting.d.ts","sourceRoot":"","sources":["../../../src/api/services/formatting.ts"],"names":[],"mappings":"AAyNA,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAI3D"}
1
+ {"version":3,"file":"formatting.d.ts","sourceRoot":"","sources":["../../../src/api/services/formatting.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAgOvD,MAAM,MAAM,YAAY,GAAG;IAC1B,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,MAAM,EAAE,MAAM,MAAM,CAAC;CACrB,CAAC;AACF,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,YAAY,CAGjE"}
@@ -1,140 +1,99 @@
1
1
  // src/api/services/formatting.ts
2
- import { isKeyword, tokenize } from '../../core/lexer/tokenizer.js';
2
+ import { isCurlyIdSymbol, tokenize } from '../../core/lexer/tokenizer.js';
3
3
  import { parse } from '../../core/parser.js';
4
- function indent(options) {
5
- return options.indentChar.repeat(options.level);
6
- }
7
- function printLeadingComments(node, options) {
8
- const comments = node.leadingComments;
4
+ const indent = ({ indentChar, level }) => indentChar.repeat(level);
5
+ const nextLevel = (options) => ({ ...options, level: options.level + 1 });
6
+ function printCommentLines(comments, options, boundaryLine) {
9
7
  if (!comments?.length)
10
8
  return '';
11
- return comments.map(c => `${indent(options)}(${c.value})`).join('\n') + '\n';
9
+ const currentIndent = indent(options);
10
+ let result = '';
11
+ for (let i = 0;;) {
12
+ const comment = comments[i++];
13
+ result += `(${comment.value})`;
14
+ if (i < comments.length) {
15
+ const lineDiff = comments[i].line - comment.endLine;
16
+ result += `${'\n'.repeat(Math.max(lineDiff, 1))}${currentIndent}`;
17
+ continue;
18
+ }
19
+ if (boundaryLine === undefined)
20
+ return result;
21
+ if (boundaryLine === comment.endLine)
22
+ return `${result} `;
23
+ const lineDiff = boundaryLine - comment.endLine;
24
+ return `${result}${'\n'.repeat(Math.max(lineDiff, 1))}${currentIndent}`;
25
+ }
12
26
  }
13
- function printTrailingComments(node) {
14
- const comments = node.trailingComments;
15
- if (!comments?.length)
16
- return '';
17
- return ' ' + comments.map(c => `(${c.value})`).join(' ');
27
+ function printLeadingComments({ leadingComments, line }, options) {
28
+ return printCommentLines(leadingComments, options, line);
18
29
  }
19
- function printIdentifier(node) {
20
- const symbol = node.symbol;
21
- if (isKeyword(symbol))
22
- return `{${symbol}}`;
23
- return symbol;
30
+ function printTrailingComments({ trailingComments: comments }) {
31
+ return comments?.length ? ' ' + comments.map(c => `(${c.value})`).join(' ') : '';
32
+ }
33
+ function printNormalBlock({ body }, options) {
34
+ if (!body.length)
35
+ return '[##]';
36
+ if (body.length === 1) {
37
+ const stmt = body[0];
38
+ const isLackingAlternate = stmt.kind !== 8 /* NodeKind.ExpressionStatement */ ||
39
+ stmt.expression.kind !== 15 /* NodeKind.IfExpression */ ||
40
+ !stmt.expression.alternate; // 自带换行的「不然」没法压行,要排除
41
+ if (isLackingAlternate)
42
+ return `[# ${printNodeContent(stmt, options)}~ #]`; // 前后有空格
43
+ }
44
+ const innerOptions = nextLevel(options);
45
+ const innerIndent = indent(innerOptions);
46
+ const parts = [];
47
+ for (let i = 0;;) {
48
+ const stmt = body[i++];
49
+ parts.push(`${innerIndent}${printNodeContent(stmt, innerOptions)}~${printTrailingComments(stmt)}`);
50
+ if (i >= body.length)
51
+ return `[#\n${parts.join('\n')}\n${indent(options)}#]`;
52
+ const { leadingComments: nextLeading, line: nextStmtLine } = body[i];
53
+ const nextTopLine = nextLeading?.length ? nextLeading[0].line : nextStmtLine;
54
+ const gap = nextTopLine - stmt.endLine - 1;
55
+ for (let eL = Math.max(gap, 0); eL-- > 0; parts.push(''))
56
+ ;
57
+ }
58
+ }
59
+ function printCollectionBlock({ body }, options) {
60
+ if (body.length === 0)
61
+ return '[==]';
62
+ const nextLevelOptions = nextLevel(options);
63
+ const blockContent = body.map(stmt => printNodeContent(stmt, nextLevelOptions)).join(', ');
64
+ return `[= ${blockContent} =]`;
24
65
  }
25
66
  function printNodeContent(node, options) {
26
- if (!node)
27
- return '';
28
- const nextLevelOptions = { ...options, level: options.level + 1 };
29
67
  const leading = printLeadingComments(node, options);
30
68
  let content = '';
31
69
  switch (node.kind) {
32
- case 1 /* NodeKind.Program */: {
33
- const body = node.body;
34
- const parts = [];
35
- for (let i = 0; i < body.length; i++) {
36
- const stmt = body[i];
37
- const stmtString = printNodeContent(stmt, options) + '~' + printTrailingComments(stmt);
38
- parts.push(stmtString);
39
- const nextStmt = body[i + 1];
40
- if (!nextStmt)
41
- continue;
42
- const gap = nextStmt.line - stmt.endLine - 1;
43
- const commentCount = nextStmt.leadingComments?.length ?? 0;
44
- const hasFunction = stmt.kind === 4 /* NodeKind.FunctionDeclaration */ || nextStmt.kind === 4 /* NodeKind.FunctionDeclaration */;
45
- for (let eL = Math.max(gap - commentCount, +hasFunction); eL-- > 0; parts.push(''))
46
- ;
47
- }
48
- return parts.join('\n');
49
- }
50
- case 14 /* NodeKind.BlockExpression */: {
51
- const { isCollection, body } = node;
52
- if (isCollection) {
53
- // 是纸箱 [= ... =]
54
- if (body.length === 0) {
55
- content = '[==]';
56
- break;
57
- }
58
- // 纸箱元素用逗号+空格连接
59
- const blockContent = body.map(stmt => printNodeContent(stmt, nextLevelOptions)).join(', ');
60
- content = `[= ${blockContent} =]`;
61
- }
62
- else {
63
- // 是普通块 [# ... #]
64
- if (body.length === 0) {
65
- content = '[##]';
66
- break;
67
- }
68
- // 语句用~和换行连接
69
- const blockContent = body
70
- .map(stmt => printNodeContent(stmt, nextLevelOptions) + '~' + printTrailingComments(stmt))
71
- .join('\n');
72
- content = `[#\n${blockContent}\n${indent(options)}#]`;
73
- }
74
- break;
75
- }
76
- case 2 /* NodeKind.VariableDeclaration */: {
77
- const { initialization, identifier } = node;
78
- const printedContent = initialization
79
- ? printNodeContent(initialization, { ...options, level: 0 }).trim()
80
- : printIdentifier(identifier);
81
- content = `${indent(options)}蹭 ${printedContent}`;
82
- break;
83
- }
84
- case 3 /* NodeKind.AssignmentStatement */: {
85
- const { operator, assignee, value } = node;
86
- const o = operator === 4 /* TokenKind.ASSIGNMENT_ONLY */ ? '才是' : operator === 3 /* TokenKind.ASSIGNMENT_LIKE */ ? '就像' : '就是';
87
- content = `${indent(options)}${printNodeContent(assignee, options)} ${o} ${printNodeContent(value, options)}`;
88
- break;
89
- }
90
- case 17 /* NodeKind.CallExpression */: {
91
- const { args, callee } = node;
92
- const argsExpr = printNodeContent(args, { ...options, level: 0 });
93
- const p = options.level > 0 ? indent(options) : '';
94
- content = `${p}扒 ${argsExpr} ${printIdentifier(callee)}`;
95
- break;
96
- }
97
- case 15 /* NodeKind.IfExpression */: {
98
- const { consequent, condition, alternate } = node;
99
- let r = `${printNodeContent(consequent, options)} 好不好? ${printNodeContent(condition, { ...options, level: 0 })}`;
100
- if (alternate)
101
- r += `\n${indent(options)}不然 ${printNodeContent(alternate, options)}`;
102
- content = `${indent(options)}${r}`;
103
- break;
104
- }
105
- case 4 /* NodeKind.FunctionDeclaration */: {
106
- const { parameters, name, body } = node;
107
- const paramsBlock = printNodeContent(parameters, options);
108
- content = `${indent(options)}想要 ${paramsBlock} ${printIdentifier(name)} ${printNodeContent(body, options)}`;
70
+ case 9 /* NodeKind.NumericLiteral */:
71
+ content = String(node.value);
109
72
  break;
110
- }
111
- case 16 /* NodeKind.LoopExpression */: {
112
- content = `${indent(options)}玩耍 ${printNodeContent(node.body, options)}`;
73
+ case 10 /* NodeKind.StringLiteral */: {
74
+ const { value } = node;
75
+ content = value.includes("'") ? `"${value}"` : `'${value}'`;
113
76
  break;
114
77
  }
115
- case 5 /* NodeKind.ReturnStatement */: {
116
- const a = node.argument;
117
- content = `${indent(options)}叼回来${a ? ` ${printNodeContent(a, options)}` : ''}`;
78
+ case 11 /* NodeKind.BooleanLiteral */:
79
+ content = node.value ? '好喵' : '坏喵';
118
80
  break;
119
- }
120
- case 6 /* NodeKind.AmbushStatement */: {
121
- const a = node.argument;
122
- content = `${indent(options)}偷袭${a ? ` ${printNodeContent(a, options)}` : ''}`;
81
+ case 12 /* NodeKind.NullLiteral */:
82
+ content = '空碗';
123
83
  break;
124
- }
125
- case 7 /* NodeKind.BreakStatement */: {
126
- content = `${indent(options)}累了`;
84
+ case 13 /* NodeKind.Identifier */: {
85
+ const { symbol } = node;
86
+ content = isCurlyIdSymbol(symbol) ? `{${symbol}}` : symbol;
127
87
  break;
128
88
  }
129
89
  case 18 /* NodeKind.MemberAccessExpression */: {
130
90
  const { object, property } = node;
131
- // 打印 a@b
132
91
  content = `${printNodeContent(object, options)}@${printNodeContent(property, options)}`;
133
92
  break;
134
93
  }
135
94
  case 19 /* NodeKind.UnaryExpression */: {
136
95
  const { operator, argument } = node;
137
- const op = operator === 3 /* TokenKind.ASSIGNMENT_LIKE */ ? '高仿' : '抢走';
96
+ const op = operator === 7 /* TokenKind.ASSIGNMENT_LIKE */ ? '高仿' : '抢走';
138
97
  content = `${op} ${printNodeContent(argument, options)}`;
139
98
  break;
140
99
  }
@@ -145,11 +104,18 @@ function printNodeContent(node, options) {
145
104
  }
146
105
  case 21 /* NodeKind.ComparisonExpression */: {
147
106
  const { expressions, operators } = node;
148
- const parts = [];
149
- for (let i = 0; i < expressions.length; i++) {
150
- parts.push(printNodeContent(expressions[i], options));
151
- if (i < operators.length)
152
- parts.push(operators[i].value);
107
+ const parts = [printNodeContent(expressions[0], options)];
108
+ for (let i = 0; i < operators.length;) {
109
+ parts.push(operators[i++].value, printNodeContent(expressions[i], options));
110
+ }
111
+ content = parts.join(' ');
112
+ break;
113
+ }
114
+ case 22 /* NodeKind.SequenceExpression */: {
115
+ const { sections, operators } = node;
116
+ const parts = [printNodeContent(sections[0], options)];
117
+ for (let i = 0; i < operators.length;) {
118
+ parts.push(`${operators[i++].value},`, printNodeContent(sections[i], options));
153
119
  }
154
120
  content = parts.join(' ');
155
121
  break;
@@ -157,47 +123,92 @@ function printNodeContent(node, options) {
157
123
  case 23 /* NodeKind.LogicalExpression */: {
158
124
  const { left, operator, right } = node;
159
125
  const [o, c] = {
160
- [39 /* TokenKind.LOGIC_CLOSE_AND */]: ['和', '都好'],
161
- [40 /* TokenKind.LOGIC_CLOSE_OR */]: ['或', '不坏'],
162
- [41 /* TokenKind.LOGIC_CLOSE_NOR */]: ['和', '都坏'],
163
- [42 /* TokenKind.LOGIC_CLOSE_NAND */]: ['或', '不好'],
126
+ [41 /* TokenKind.LOGIC_CLOSE_AND */]: ['和', '都好'],
127
+ [42 /* TokenKind.LOGIC_CLOSE_OR */]: ['或', '不坏'],
128
+ [43 /* TokenKind.LOGIC_CLOSE_NOR */]: ['和', '都坏'],
129
+ [44 /* TokenKind.LOGIC_CLOSE_NAND */]: ['或', '不好'],
164
130
  }[operator];
165
131
  content = `${printNodeContent(left, options)} ${o} ${printNodeContent(right, options)} ${c}`;
166
132
  break;
167
133
  }
168
- case 22 /* NodeKind.SequenceExpression */: {
169
- const { sections, operators } = node;
170
- let s = printNodeContent(sections[0], options);
171
- for (let i = 0; i < operators.length; i++) {
172
- s += ` ${operators[i].value}, ${printNodeContent(sections[i + 1], options)}`;
173
- }
174
- content = s;
134
+ case 14 /* NodeKind.BlockExpression */:
135
+ content = (node.isCollection ? printCollectionBlock : printNormalBlock)(node, options);
136
+ break;
137
+ case 15 /* NodeKind.IfExpression */: {
138
+ const { consequent, condition, alternate } = node;
139
+ const mainClause = `${printNodeContent(consequent, options)} 好不好? ${printNodeContent(condition, options)}`;
140
+ const alternateClause = alternate ? `\n${indent(options)}不然 ${printNodeContent(alternate, options)}` : '';
141
+ content = `${mainClause}${alternateClause}`;
175
142
  break;
176
143
  }
177
- case 13 /* NodeKind.Identifier */:
178
- content = printIdentifier(node);
144
+ case 16 /* NodeKind.LoopExpression */:
145
+ content = `玩耍 ${printNodeContent(node.body, options)}`;
179
146
  break;
180
- case 9 /* NodeKind.NumericLiteral */:
181
- content = String(node.value);
147
+ case 17 /* NodeKind.CallExpression */: {
148
+ const { args, callee } = node;
149
+ const argsExpr = printNodeContent(args, options);
150
+ content = `扒 ${argsExpr} ${printNodeContent(callee, options)}`;
182
151
  break;
183
- case 10 /* NodeKind.StringLiteral */: {
184
- const v = node.value;
185
- content = v.includes("'") ? `"${v}"` : `'${v}'`;
152
+ }
153
+ case 8 /* NodeKind.ExpressionStatement */:
154
+ content = printNodeContent(node.expression, options);
155
+ break;
156
+ case 7 /* NodeKind.BreakStatement */:
157
+ content = '累了';
158
+ break;
159
+ case 6 /* NodeKind.AmbushStatement */: {
160
+ const a = node.argument;
161
+ content = `偷袭${a ? ` ${printNodeContent(a, options)}` : ''}`;
186
162
  break;
187
163
  }
188
- case 11 /* NodeKind.BooleanLiteral */:
189
- content = node.value ? '好喵' : '坏喵';
164
+ case 5 /* NodeKind.ReturnStatement */: {
165
+ const a = node.argument;
166
+ content = `叼回来${a ? ` ${printNodeContent(a, options)}` : ''}`;
190
167
  break;
191
- case 12 /* NodeKind.NullLiteral */:
192
- content = '空碗';
168
+ }
169
+ case 3 /* NodeKind.AssignmentStatement */: {
170
+ const { operator, assignee, value } = node;
171
+ const o = operator === 8 /* TokenKind.ASSIGNMENT_ONLY */ ? '才是' : operator === 7 /* TokenKind.ASSIGNMENT_LIKE */ ? '就像' : '就是';
172
+ content = `${printNodeContent(assignee, options)} ${o} ${printNodeContent(value, options)}`;
193
173
  break;
194
- case 0 /* NodeKind.ErrorNode */:
195
- content = `(喵!解析错误: ${node.message})`;
174
+ }
175
+ case 2 /* NodeKind.VariableDeclaration */: {
176
+ const { initialization, identifier } = node;
177
+ const printedContent = printNodeContent(initialization ?? identifier, options);
178
+ content = `蹭 ${printedContent}`;
196
179
  break;
197
- case 8 /* NodeKind.ExpressionStatement */: {
198
- content = printNodeContent(node.expression, options);
180
+ }
181
+ case 4 /* NodeKind.FunctionDeclaration */: {
182
+ const { parameters, name, body } = node;
183
+ const paramsBlock = printNodeContent(parameters, options);
184
+ content = `想要 ${paramsBlock} ${printNodeContent(name, options)} ${printNodeContent(body, options)}`;
199
185
  break;
200
186
  }
187
+ case 1 /* NodeKind.Program */: {
188
+ const { body, trailingComments } = node;
189
+ if (!body.length)
190
+ return printCommentLines(trailingComments, options);
191
+ const parts = [];
192
+ for (let i = 0;;) {
193
+ const stmt = body[i++];
194
+ parts.push(`${printNodeContent(stmt, options)}~${printTrailingComments(stmt)}`);
195
+ if (i >= body.length)
196
+ break;
197
+ const { leadingComments: nextLeading, line: nextStmtLine, kind: nextStmtKind } = body[i];
198
+ const nextTopLine = nextLeading?.length ? nextLeading[0].line : nextStmtLine;
199
+ const gap = nextTopLine - stmt.endLine - 1;
200
+ const hasFunction = nextStmtKind === 4 /* NodeKind.FunctionDeclaration */ || stmt.kind === 4 /* NodeKind.FunctionDeclaration */;
201
+ for (let eL = Math.max(gap, +hasFunction); eL-- > 0; parts.push(''))
202
+ ;
203
+ }
204
+ const lineDiff = trailingComments?.length ? trailingComments[0].line - body.at(-1).endLine : 0;
205
+ for (let eL = Math.max(lineDiff, 0); eL-- > 0; parts.push(''))
206
+ ;
207
+ return parts.join('\n') + printCommentLines(trailingComments, options);
208
+ }
209
+ case 0 /* NodeKind.ErrorNode */:
210
+ content = `(喵!解析错误: ${node.message})`;
211
+ break;
201
212
  default: // 此处已推断为不可达
202
213
  const _n = node;
203
214
  console.warn(`[格式化器] 目前无法整理此类节点 `, _n);
@@ -205,8 +216,7 @@ function printNodeContent(node, options) {
205
216
  return leading + content;
206
217
  }
207
218
  export function getFormattedCode(sourceCode) {
208
- const ast = parse(tokenize(sourceCode, { ignoreComments: false }), 1 /* ParseMode.TOLERANT */).program;
209
- const options = { indentChar: '\t', level: 0 };
210
- return printNodeContent(ast, options);
219
+ const { program: ast, errors } = parse(tokenize(sourceCode, { ignoreComments: false }), 1 /* ParseMode.TOLERANT */);
220
+ return { errors, format: () => printNodeContent(ast, { indentChar: '\t', level: 0 }) };
211
221
  }
212
222
  //# sourceMappingURL=formatting.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"formatting.js","sourceRoot":"","sources":["../../../src/api/services/formatting.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"formatting.js","sourceRoot":"","sources":["../../../src/api/services/formatting.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"highlight.d.ts","sourceRoot":"","sources":["../../../src/api/services/highlight.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIvD,MAAM,MAAM,cAAc,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,CAAC;AAKtH,eAAO,MAAM,MAAM;;;CAAiC,CAAC;AAQrD,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,YAAY,GAAG,cAAc,EAAE,CA+C/E"}
1
+ {"version":3,"file":"highlight.d.ts","sourceRoot":"","sources":["../../../src/api/services/highlight.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIvD,MAAM,MAAM,cAAc,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,CAAC;AAKtH,eAAO,MAAM,MAAM;;;CAAiC,CAAC;AAQrD,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,YAAY,GAAG,cAAc,EAAE,CAyC/E"}
@@ -13,46 +13,36 @@ export function getHighlightTokens(serviceState) {
13
13
  const highlightTokens = [];
14
14
  const parentMap = buildParentMap(serviceState.parseResult.program);
15
15
  const { symbolMap } = serviceState.analyzeResult;
16
- symbolMap.forEach(({ kind: symbolKind, tag: symbolTag, name: symbolName, isBuiltIn, declarations, references }) => {
17
- const tokenTypeIndex = tokenTypeIndexMap[symbolKind];
18
- // 收集声明
19
- for (const dec of declarations) {
20
- const modifiers = [tokenModifiers.indexOf('declaration')];
21
- if (isBuiltIn)
22
- modifiers.push(tokenModifiers.indexOf('defaultLibrary'));
23
- const modBitmask = modifiers.reduce((a, b) => a | (1 << b), 0);
24
- highlightTokens.push({
25
- line: dec.line,
26
- col: dec.col,
27
- length: symbolName.length,
28
- tokenType: tokenTypeIndex,
29
- tokenModifiers: modBitmask,
30
- });
31
- }
32
- // 收集引用
33
- for (const ref of references) {
34
- const modifiers = [];
35
- if (isBuiltIn)
36
- modifiers.push(tokenModifiers.indexOf('defaultLibrary'));
16
+ const MASK_DECLARATION = 1 << tokenModifiers.indexOf('declaration');
17
+ const MASK_MODIFICATION = 1 << tokenModifiers.indexOf('modification');
18
+ const MASK_DEFAULT_LIBRARY = 1 << tokenModifiers.indexOf('defaultLibrary');
19
+ const MASK_DEPRECATED = 1 << tokenModifiers.indexOf('deprecated');
20
+ let needsSort = false, prevLine = -1, prevCol = -1;
21
+ symbolMap.forEach((symbolInfo, node) => {
22
+ if (node.kind !== 13 /* NodeKind.Identifier */)
23
+ return;
24
+ const { kind: symbolKind, tag: symbolTag, isBuiltIn, declarations } = symbolInfo;
25
+ let modMask = -isBuiltIn & MASK_DEFAULT_LIBRARY;
26
+ // 区分声明处与引用处
27
+ if (declarations.includes(node))
28
+ modMask |= MASK_DECLARATION;
29
+ else {
37
30
  if (symbolTag === 2 /* SymbolTag.DECAYED */)
38
- modifiers.push(tokenModifiers.indexOf('deprecated'));
39
- const parent = parentMap.get(ref);
40
- if (parent?.kind === 3 /* NodeKind.AssignmentStatement */ && parent.assignee === ref) {
41
- modifiers.push(tokenModifiers.indexOf('modification'));
42
- }
43
- const modBitmask = modifiers.reduce((a, b) => a | (1 << b), 0);
44
- highlightTokens.push({
45
- line: ref.line,
46
- col: ref.col,
47
- length: ref.symbol.length,
48
- tokenType: tokenTypeIndex,
49
- tokenModifiers: modBitmask,
50
- });
31
+ modMask |= MASK_DEPRECATED;
32
+ const parent = parentMap.get(node);
33
+ if (parent?.kind === 3 /* NodeKind.AssignmentStatement */ && parent.assignee === node)
34
+ modMask |= MASK_MODIFICATION;
51
35
  }
36
+ const { line, col, symbol } = node;
37
+ const tokenTypeIndex = tokenTypeIndexMap[symbolKind];
38
+ highlightTokens.push({ line, col, length: symbol.length, tokenType: tokenTypeIndex, tokenModifiers: modMask });
39
+ if (needsSort)
40
+ return;
41
+ needsSort = line < prevLine || (line === prevLine && col < prevCol);
42
+ prevLine = line;
43
+ prevCol = col;
52
44
  });
53
- // 严格按照行列顺序,将收集到的 token 排序!
54
- return highlightTokens.sort((a, b) => {
55
- return a.line !== b.line ? a.line - b.line : a.col - b.col;
56
- });
45
+ // 按需排序
46
+ return needsSort ? highlightTokens.sort((a, b) => a.line - b.line || a.col - b.col) : highlightTokens;
57
47
  }
58
48
  //# sourceMappingURL=highlight.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"highlight.js","sourceRoot":"","sources":["../../../src/api/services/highlight.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"highlight.js","sourceRoot":"","sources":["../../../src/api/services/highlight.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,7 @@ export type InlayHint = {
12
12
  label: string;
13
13
  kind: InlayHintKind;
14
14
  paddingLeft?: boolean;
15
- paddingRight?: boolean;
15
+ paddingRight: boolean;
16
16
  };
17
17
  /**
18
18
  * 主函数:获取源代码的内联提示
@@ -1 +1 @@
1
- {"version":3,"file":"inlayHints.d.ts","sourceRoot":"","sources":["../../../src/api/services/inlayHints.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAGrD,mBAAW,aAAa;IACvB,IAAI,IAAI;IACR,SAAS,IAAI;CACb;AAED;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG;IACvB,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,aAAa,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAgCF;;GAEG;AACH,wBAAgB,aAAa,CAAC,YAAY,EAAE,YAAY,GAAG,SAAS,EAAE,CAsErE"}
1
+ {"version":3,"file":"inlayHints.d.ts","sourceRoot":"","sources":["../../../src/api/services/inlayHints.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAGrD,mBAAW,aAAa;IACvB,IAAI,IAAI;IACR,SAAS,IAAI;CACb;AAED;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG;IACvB,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,aAAa,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;CACtB,CAAC;AAgCF;;GAEG;AACH,wBAAgB,aAAa,CAAC,YAAY,EAAE,YAAY,GAAG,SAAS,EAAE,CAkErE"}