@mirascript/monaco 0.1.13 → 0.1.15

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.
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  configuration,
3
3
  registerBasic
4
- } from "../chunk-TXZH2FPV.js";
4
+ } from "../chunk-B7ONXYAM.js";
5
5
  import "../chunk-CEFEXBF7.js";
6
6
  export {
7
7
  configuration,
@@ -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;AAgZ/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":"AAAA,OAAO,EAAa,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAoa/D,qCAAqC;AACrC,wBAAgB,gCAAgC,IAAI,WAAW,EAAE,CAMhE"}
@@ -30,12 +30,7 @@ var reservedKeywords = () => {
30
30
  reservedKeywords = () => kw;
31
31
  return kw;
32
32
  };
33
- var { REG_IDENTIFIER, REG_ORDINAL } = constants;
34
- var REG_WHITESPACE = /[ \t\v\f\r\n]/u;
35
- var REG_HEX = /0[xX][a-fA-F0-9_]*[a-fA-F0-9]/;
36
- var REG_OCT = /0[oO][0-7_]*[0-7]/;
37
- var REG_BIN = /0[bB][01_]*[01]/;
38
- var REG_NUMBER = /\d[\d_]*(?:\.[\d_]+)?(?:[eE][+-]?[\d_]*\d)?/u;
33
+ var { REG_IDENTIFIER, REG_ORDINAL, REG_WHITESPACE, REG_BIN, REG_HEX, REG_OCT, REG_NUMBER } = constants;
39
34
  var MAX_VERBATIM_LENGTH = 16;
40
35
 
41
36
  // src/basic/language-configuration.ts
@@ -213,9 +208,17 @@ function getTokensProvider(mode) {
213
208
  { include: "@whitespace" },
214
209
  { include: "@string" },
215
210
  [/(@identifier)/, { cases: identifierCases() }],
216
- [REG_OCT, "number.octal"],
217
- [REG_BIN, "number.binary"],
218
- [REG_HEX, "number.hex"],
211
+ [
212
+ /0[xobXOB]\p{XID_Continue}*/u,
213
+ {
214
+ cases: {
215
+ [REG_OCT.source]: "number.octal",
216
+ [REG_BIN.source]: "number.binary",
217
+ [REG_HEX.source]: "number.hex",
218
+ "@default": "number.invalid"
219
+ }
220
+ }
221
+ ],
219
222
  [
220
223
  REG_NUMBER,
221
224
  {
@@ -442,8 +445,20 @@ function getTokensProvider(mode) {
442
445
  ["comment.doc", "type.doc", "keyword.javascript", "", "type.javascript", "comment.doc"]
443
446
  ],
444
447
  [
445
- /(\/\*@whitespace*<)(extern )([\w]*)(>@whitespace*\*\/)/,
446
- ["comment.doc", "type.doc", "type.javascript", "comment.doc"]
448
+ /(\/\*@whitespace*<)(extern )([\w]*)(\()(\d+)(\))(>@whitespace*\*\/)/,
449
+ [
450
+ "comment.doc",
451
+ "type.doc",
452
+ "type.javascript",
453
+ "delimiter",
454
+ "number.doc",
455
+ "delimiter",
456
+ "comment.doc"
457
+ ]
458
+ ],
459
+ [
460
+ /(\/\*@whitespace*<)(extern )([\w]*)([^>]*)(>@whitespace*\*\/)/,
461
+ ["comment.doc", "type.doc", "type.javascript", "", "comment.doc"]
447
462
  ],
448
463
  [
449
464
  /(\/\*@whitespace*<)(function )([.\w]*)(>@whitespace*\*\/)/,
@@ -511,4 +526,4 @@ export {
511
526
  configuration,
512
527
  registerBasic
513
528
  };
514
- //# sourceMappingURL=chunk-TXZH2FPV.js.map
529
+ //# sourceMappingURL=chunk-B7ONXYAM.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
+ }
@@ -8,12 +8,7 @@ export declare let numericKeywords: () => readonly string[];
8
8
  export declare let constantKeywords: () => readonly string[];
9
9
  /** MiraScript 保留字关键字 */
10
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;
11
+ export declare const REG_IDENTIFIER: RegExp, REG_ORDINAL: RegExp, REG_WHITESPACE: RegExp, REG_BIN: RegExp, REG_HEX: RegExp, REG_OCT: RegExp, REG_NUMBER: RegExp;
17
12
  /** 基础语言服务支持的最大插值字符串 `$` 数量 */
18
13
  export declare const MAX_VERBATIM_LENGTH = 16;
19
14
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAGpE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAIpB,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;AAEzE,8BAA8B;AAC9B,eAAO,MAAM,mBAAmB,KAAK,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAGpE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAIpB,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,UAAE,cAAc,UAAE,OAAO,UAAE,OAAO,UAAE,OAAO,UAAE,UAAU,QAAc,CAAC;AAEhH,8BAA8B;AAC9B,eAAO,MAAM,mBAAmB,KAAK,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { editor } from '../monaco-api.js';
2
2
  import type { CompileResult } from './compile-result.js';
3
3
  /** 设置标记 */
4
- export declare function setMarkers(model: editor.ITextModel, result: CompileResult): void;
4
+ export declare function setMarkers(model: editor.ITextModel, result: CompileResult): Promise<void>;
5
5
  //# sourceMappingURL=diagnostics.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../src/lsp/diagnostics.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAkC,MAAM,kBAAkB,CAAC;AAC1E,OAAO,KAAK,EAAE,aAAa,EAAoB,MAAM,qBAAqB,CAAC;AAkE3E,WAAW;AACX,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI,CAahF"}
1
+ {"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../src/lsp/diagnostics.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAA+C,MAAM,kBAAkB,CAAC;AACvF,OAAO,KAAK,EAAE,aAAa,EAAoB,MAAM,qBAAqB,CAAC;AAyF3E,WAAW;AACX,wBAAsB,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAiC/F"}
package/dist/lsp/index.js CHANGED
@@ -3,7 +3,7 @@ import {
3
3
  REG_ORDINAL,
4
4
  keywords,
5
5
  reservedKeywords
6
- } from "../chunk-TXZH2FPV.js";
6
+ } from "../chunk-B7ONXYAM.js";
7
7
  import {
8
8
  Emitter,
9
9
  MarkerSeverity,
@@ -30,7 +30,7 @@ import {
30
30
  isVmRecord,
31
31
  serialize
32
32
  } from "@mirascript/mirascript";
33
- import { operations, serializePropName, serializeString } from "@mirascript/mirascript/subtle";
33
+ import { operations, serializeRecordKey, serializeString } from "@mirascript/mirascript/subtle";
34
34
  function globalParamsSignature(info) {
35
35
  if (info == null || !info.params && !info.paramsType) return [["..", "..", ""]];
36
36
  const paramItems = [];
@@ -193,7 +193,7 @@ function serializeForDisplay(value, maxEntries = 100, maxWidth = 40) {
193
193
  entries.push(`../* x${e.length - entries.length} */`);
194
194
  break;
195
195
  }
196
- const sk = serializePropName(key);
196
+ const sk = serializeRecordKey(key);
197
197
  const entry = `${sk}: ${serializeForDisplayInner(value2 ?? null, maxWidth - sk.length - 4)}`;
198
198
  entries.push(entry);
199
199
  resultLength += entry.length;
@@ -223,7 +223,7 @@ function serializeForDisplay(value, maxEntries = 100, maxWidth = 40) {
223
223
  if (isArray && String(index) === key) {
224
224
  entry = serializeForDisplayInner(value.get(key) ?? null, maxWidth - 2);
225
225
  } else {
226
- const sk = serializePropName(key);
226
+ const sk = serializeRecordKey(key);
227
227
  entry = `${sk}: ${serializeForDisplayInner(value.get(key) ?? null, maxWidth - sk.length - 4)}`;
228
228
  }
229
229
  entries.push(entry);
@@ -297,8 +297,9 @@ function valueDoc(name, value, type) {
297
297
  }
298
298
  return { script: `${prefix}${valueStr}${suffix}`, doc: [] };
299
299
  }
300
- function getDeep(value, path) {
301
- let current = value;
300
+ function getDeep(globals, name, path) {
301
+ if (!globals.has(name)) return void 0;
302
+ let current = globals.get(name);
302
303
  for (const key of path) {
303
304
  if (current == null) return current;
304
305
  if (!operations.$Has(current, key)) return void 0;
@@ -671,18 +672,22 @@ var CompileResult = class {
671
672
 
672
673
  // src/lsp/diagnostics.ts
673
674
  import { DiagnosticCode as DiagnosticCode3, getDiagnosticMessage } from "@mirascript/mirascript/subtle";
674
- var makeMarker = (model, modelVersionId, diagnostic, severity) => {
675
- const { range, code } = diagnostic;
676
- const { startLineNumber, startColumn, endLineNumber, endColumn } = range;
677
- let unnecessary = false;
678
- const deprecated = false;
679
- if (code === DiagnosticCode3.UnusedLocalVariable || code === DiagnosticCode3.UnusedLocalFunction) {
680
- unnecessary = true;
681
- severity = MarkerSeverity.Hint;
675
+ var formatMessage = (model, template, $0) => {
676
+ if (template.includes(`$0`)) {
677
+ const replacement = typeof $0 == "string" ? $0 : $0 ? model.getValueInRange($0) : "";
678
+ template = template.replaceAll(`$0`, replacement);
682
679
  }
683
- let message = getDiagnosticMessage(code) ?? "Unknown error";
684
- if (message.includes(`$0`)) {
685
- message = message.replaceAll(`$0`, model.getValueInRange(range));
680
+ return template;
681
+ };
682
+ var makeMarkerData = (model, range, code, message, severity) => {
683
+ const { startLineNumber, startColumn, endLineNumber, endColumn } = range;
684
+ if (!message) {
685
+ if (typeof code != "number") {
686
+ message = "";
687
+ } else {
688
+ const template = getDiagnosticMessage(code);
689
+ message = template ? formatMessage(model, template, range) : "Unknown diagnostic";
690
+ }
686
691
  }
687
692
  const marker = {
688
693
  startLineNumber,
@@ -691,10 +696,10 @@ var makeMarker = (model, modelVersionId, diagnostic, severity) => {
691
696
  endColumn,
692
697
  message,
693
698
  severity,
694
- modelVersionId,
699
+ modelVersionId: model.getVersionId(),
695
700
  source: "MiraScript"
696
701
  };
697
- const codeName = DiagnosticCode3[code];
702
+ const codeName = typeof code == "number" ? DiagnosticCode3[code] : void 0;
698
703
  if (codeName) {
699
704
  marker.code = {
700
705
  value: codeName,
@@ -703,6 +708,17 @@ var makeMarker = (model, modelVersionId, diagnostic, severity) => {
703
708
  } else {
704
709
  marker.code = `${code}`;
705
710
  }
711
+ return marker;
712
+ };
713
+ var makeMarker = (model, diagnostic, severity) => {
714
+ const { range, code } = diagnostic;
715
+ let unnecessary = false;
716
+ const deprecated = false;
717
+ if (code === DiagnosticCode3.UnusedLocalVariable || code === DiagnosticCode3.UnusedLocalFunction) {
718
+ unnecessary = true;
719
+ severity = MarkerSeverity.Hint;
720
+ }
721
+ const marker = makeMarkerData(model, range, code, void 0, severity);
706
722
  if (unnecessary) {
707
723
  marker.tags ??= [];
708
724
  marker.tags.push(MarkerTag.Unnecessary);
@@ -715,30 +731,50 @@ var makeMarker = (model, modelVersionId, diagnostic, severity) => {
715
731
  marker.relatedInformation = [];
716
732
  for (const ref of diagnostic.references) {
717
733
  const { range: range2, code: code2 } = ref;
718
- const { startLineNumber: startLineNumber2, startColumn: startColumn2, endLineNumber: endLineNumber2, endColumn: endColumn2 } = range2;
719
- const message2 = getDiagnosticMessage(code2) ?? "...here";
734
+ const { startLineNumber, startColumn, endLineNumber, endColumn } = range2;
735
+ const message = getDiagnosticMessage(code2) ?? "...here";
720
736
  marker.relatedInformation.push({
721
- message: message2,
737
+ message,
722
738
  resource: model.uri,
723
- startLineNumber: startLineNumber2,
724
- startColumn: startColumn2,
725
- endLineNumber: endLineNumber2,
726
- endColumn: endColumn2
739
+ startLineNumber,
740
+ startColumn,
741
+ endLineNumber,
742
+ endColumn
727
743
  });
728
744
  }
729
745
  }
730
746
  return marker;
731
747
  };
732
- function setMarkers(model, result) {
748
+ async function setMarkers(model, result) {
733
749
  const setModelMarkers = editor?.setModelMarkers;
734
750
  if (typeof setModelMarkers != "function") return;
735
751
  const { version } = result;
736
752
  if (version !== model.getVersionId()) return;
737
- const errors = result.errors.map((d) => makeMarker(model, version, d, MarkerSeverity.Error));
738
- const warnings = result.warnings.map((d) => makeMarker(model, version, d, MarkerSeverity.Warning));
739
- const infos = result.infos.map((d) => makeMarker(model, version, d, MarkerSeverity.Info));
740
- const hints = result.hints.map((d) => makeMarker(model, version, d, MarkerSeverity.Hint));
753
+ const errors = result.errors.map((d) => makeMarker(model, d, MarkerSeverity.Error));
754
+ const warnings = result.warnings.map((d) => makeMarker(model, d, MarkerSeverity.Warning));
755
+ const infos = result.infos.map((d) => makeMarker(model, d, MarkerSeverity.Info));
756
+ const hints = result.hints.map((d) => makeMarker(model, d, MarkerSeverity.Hint));
741
757
  const markers = [...errors, ...warnings, ...infos, ...hints];
758
+ const { globals } = result.groupedTags(model);
759
+ if (globals.length) {
760
+ const context = await getContext(model);
761
+ for (const g of globals) {
762
+ const { name } = g;
763
+ if (context.has(name)) continue;
764
+ const template = getDiagnosticMessage(DiagnosticCode3.GlobalVariableNotDeclared);
765
+ if (!template) continue;
766
+ const message = formatMessage(model, template, name);
767
+ markers.push(
768
+ makeMarkerData(
769
+ model,
770
+ g.references[0].range,
771
+ DiagnosticCode3.GlobalVariableNotDeclared,
772
+ message,
773
+ MarkerSeverity.Warning
774
+ )
775
+ );
776
+ }
777
+ }
742
778
  setModelMarkers(model, "mirascript", markers);
743
779
  }
744
780
 
@@ -855,6 +891,9 @@ var DEFAULT_MONACO_CONTEXT = Object.freeze({
855
891
  get(key) {
856
892
  return DefaultVmContext.get(key);
857
893
  },
894
+ getOrUndefined(key) {
895
+ return DefaultVmContext.has(key) ? DefaultVmContext.get(key) : void 0;
896
+ },
858
897
  has(key) {
859
898
  return DefaultVmContext.has(key);
860
899
  },
@@ -865,58 +904,75 @@ var DEFAULT_MONACO_CONTEXT = Object.freeze({
865
904
  return void 0;
866
905
  }
867
906
  });
907
+ async function getContextImpl(model, clearCache) {
908
+ try {
909
+ const context = await contextProvider?.(model);
910
+ if (!context) {
911
+ return DEFAULT_MONACO_CONTEXT;
912
+ }
913
+ const monacoContext = Object.freeze({
914
+ get(key) {
915
+ try {
916
+ return context.get(key);
917
+ } catch {
918
+ clearCache();
919
+ return DEFAULT_MONACO_CONTEXT.get(key);
920
+ }
921
+ },
922
+ getOrUndefined(key) {
923
+ try {
924
+ return context.has(key) ? context.get(key) : void 0;
925
+ } catch {
926
+ clearCache();
927
+ return DEFAULT_MONACO_CONTEXT.getOrUndefined(key);
928
+ }
929
+ },
930
+ has(key) {
931
+ try {
932
+ return context.has(key);
933
+ } catch {
934
+ clearCache();
935
+ return DEFAULT_MONACO_CONTEXT.has(key);
936
+ }
937
+ },
938
+ keys() {
939
+ try {
940
+ return context.keys();
941
+ } catch {
942
+ clearCache();
943
+ return DEFAULT_MONACO_CONTEXT.keys();
944
+ }
945
+ },
946
+ describe(key) {
947
+ try {
948
+ return context.describe?.(key) || void 0;
949
+ } catch {
950
+ clearCache();
951
+ return DEFAULT_MONACO_CONTEXT.describe(key);
952
+ }
953
+ }
954
+ });
955
+ return monacoContext;
956
+ } catch (ex) {
957
+ console.error("Error getting MiraScript Monaco context:", ex);
958
+ return DEFAULT_MONACO_CONTEXT;
959
+ }
960
+ }
868
961
  var cachedContext = null;
869
962
  async function getContext(model) {
870
963
  if (cachedContext?.[0] === model) {
871
964
  return cachedContext[1];
872
965
  }
873
- const context = await contextProvider?.(model);
874
- if (!context) {
875
- return DEFAULT_MONACO_CONTEXT;
876
- }
877
- const monacoContext = Object.freeze({
878
- get(key) {
879
- try {
880
- return context.get(key);
881
- } catch {
882
- clearCache();
883
- return DefaultVmContext.get(key);
884
- }
885
- },
886
- has(key) {
887
- try {
888
- return context.has(key);
889
- } catch {
890
- clearCache();
891
- return DefaultVmContext.has(key);
892
- }
893
- },
894
- keys() {
895
- try {
896
- return context.keys();
897
- } catch {
898
- clearCache();
899
- return DefaultVmContext.keys();
900
- }
901
- },
902
- describe(key) {
903
- try {
904
- return context.describe?.(key) || void 0;
905
- } catch {
906
- clearCache();
907
- return void 0;
908
- }
909
- }
910
- });
911
- const cache2 = [model, monacoContext];
912
- cachedContext = cache2;
913
966
  const clearCache = () => {
914
967
  if (cachedContext === cache2) {
915
968
  cachedContext = null;
916
969
  }
917
970
  };
971
+ const context = getContextImpl(model, clearCache);
972
+ const cache2 = [model, context];
973
+ cachedContext = cache2;
918
974
  setTimeout(clearCache, 100);
919
- return monacoContext;
975
+ return context;
920
976
  }
921
977
  var Provider = class {
922
978
  constructor() {
@@ -1285,8 +1341,8 @@ var CompletionItemProvider = class extends Provider {
1285
1341
  const suggestions = [];
1286
1342
  const localKeys = new Set(locals.map((item) => item.insertText));
1287
1343
  for (const key of new Set(global.keys())) {
1344
+ if (!global.has(key)) continue;
1288
1345
  const element = global.get(key);
1289
- if (element === void 0) continue;
1290
1346
  if (isVmModule2(element)) {
1291
1347
  for (const f of element.keys()) {
1292
1348
  if (char && !f.toLowerCase().includes(char)) {
@@ -1305,7 +1361,7 @@ var CompletionItemProvider = class extends Provider {
1305
1361
  if (char && !key.toLowerCase().includes(char)) {
1306
1362
  continue;
1307
1363
  }
1308
- const doc = global.describe?.(key) ?? void 0;
1364
+ const doc = global.describe(key);
1309
1365
  suggestions.push({
1310
1366
  insertText: localKeys.has(key) ? `global.${key}` : key,
1311
1367
  // 如果有同名局部变量,使用 global. 前缀
@@ -1354,7 +1410,7 @@ var CompletionItemProvider = class extends Provider {
1354
1410
  }
1355
1411
  const vmGlobal = await this.getContext(model);
1356
1412
  fields.pop();
1357
- const value = getDeep(vmGlobal.get(def.def.name), fields);
1413
+ const value = getDeep(vmGlobal, def.def.name, fields);
1358
1414
  if (value == null || typeof value != "object") {
1359
1415
  return [];
1360
1416
  }
@@ -1493,8 +1549,7 @@ var DefinitionReferenceProvider = class extends Provider {
1493
1549
  const { globalModel } = this;
1494
1550
  const globals = await this.getContext(model);
1495
1551
  const [name, ...access] = path;
1496
- if (!globals.has(name)) return void 0;
1497
- const value = getDeep(globals.get(name), access);
1552
+ const value = getDeep(globals, name, access);
1498
1553
  if (value === void 0) return void 0;
1499
1554
  const { script, doc } = valueDoc(path.at(-1), value, "declare");
1500
1555
  const code = ["", ...docComment(doc), script, ""];
@@ -1720,13 +1775,13 @@ var HoverProvider = class extends Provider {
1720
1775
  let range;
1721
1776
  if ("name" in def) {
1722
1777
  const globals = await this.getContext(model);
1723
- const value = globals.has(def.name) ? globals.get(def.name) : void 0;
1778
+ const value = globals.getOrUndefined(def.name);
1724
1779
  const { script, doc } = valueDoc(def.name, value, "hint");
1725
1780
  contents.push({ value: codeblock(`\0(global) ${script}`) });
1726
1781
  for (const d of doc) {
1727
1782
  contents.push({ value: d });
1728
1783
  }
1729
- const describe = globals.describe?.(def.name);
1784
+ const describe = globals.describe(def.name);
1730
1785
  if (describe) {
1731
1786
  contents.push({ value: describe });
1732
1787
  }
@@ -1814,7 +1869,7 @@ var HoverProvider = class extends Provider {
1814
1869
  return void 0;
1815
1870
  }
1816
1871
  const vmGlobal = await this.getContext(model);
1817
- const value = getDeep(vmGlobal.get(def.name), fields);
1872
+ const value = getDeep(vmGlobal, def.name, fields);
1818
1873
  if (value == null) return void 0;
1819
1874
  const lastField = fields.pop();
1820
1875
  const { script, doc } = valueDoc(lastField, value, "field");
@@ -2125,12 +2180,15 @@ var DocumentSemanticTokensProvider = class extends Provider {
2125
2180
  const id = model.getValueInRange(range);
2126
2181
  if (id.startsWith("@")) {
2127
2182
  tokenType = 2 /* CONSTANT */;
2128
- } else if (isVmFunction2(globals.get(id))) {
2129
- tokenType = 4 /* FUNCTION */;
2130
- } else if (isVmModule3(globals.get(id))) {
2131
- tokenType = 5 /* MODULE */;
2132
2183
  } else {
2133
- tokenType = 3 /* GLOBAL */;
2184
+ const val = globals.getOrUndefined(id);
2185
+ if (isVmFunction2(val)) {
2186
+ tokenType = 4 /* FUNCTION */;
2187
+ } else if (isVmModule3(val)) {
2188
+ tokenType = 5 /* MODULE */;
2189
+ } else {
2190
+ tokenType = 3 /* GLOBAL */;
2191
+ }
2134
2192
  }
2135
2193
  break;
2136
2194
  }
@@ -2267,7 +2325,7 @@ var SignatureHelpProvider = class extends Provider {
2267
2325
  if ("name" in callableInfo.def.def) {
2268
2326
  const { name } = callableInfo.def.def;
2269
2327
  const globals = await this.getContext(model);
2270
- const callable = getDeep(globals.get(name), callableInfo.fields);
2328
+ const callable = getDeep(globals, name, callableInfo.fields);
2271
2329
  const info = getVmFunctionInfo3(callable);
2272
2330
  if (!info) return void 0;
2273
2331
  sig = { ...fnSignature(name, info), name, summary: info.summary };