@spyglassmc/core 0.4.0 → 0.4.1

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 (56) hide show
  1. package/lib/common/Dev.js +5 -2
  2. package/lib/common/Operations.js +7 -3
  3. package/lib/common/ReadonlyProxy.js +3 -1
  4. package/lib/common/StateProxy.js +18 -7
  5. package/lib/common/externals/BrowserExternals.js +2 -9
  6. package/lib/common/externals/NodeJsExternals.js +7 -17
  7. package/lib/common/externals/index.d.ts +0 -3
  8. package/lib/common/util.d.ts +1 -0
  9. package/lib/common/util.js +14 -10
  10. package/lib/node/AstNode.js +6 -4
  11. package/lib/node/FileNode.js +6 -1
  12. package/lib/node/ResourceLocationNode.d.ts +2 -2
  13. package/lib/node/ResourceLocationNode.js +11 -5
  14. package/lib/parser/boolean.js +1 -1
  15. package/lib/parser/comment.d.ts +1 -1
  16. package/lib/parser/comment.js +1 -1
  17. package/lib/parser/float.js +2 -1
  18. package/lib/parser/integer.js +2 -1
  19. package/lib/parser/list.d.ts +1 -1
  20. package/lib/parser/list.js +3 -3
  21. package/lib/parser/long.js +2 -1
  22. package/lib/parser/record.d.ts +1 -1
  23. package/lib/parser/record.js +18 -8
  24. package/lib/parser/resourceLocation.js +61 -8
  25. package/lib/parser/string.js +75 -7
  26. package/lib/parser/util.js +7 -3
  27. package/lib/processor/ColorInfoProvider.js +20 -7
  28. package/lib/processor/binder/builtin.js +27 -17
  29. package/lib/processor/checker/builtin.d.ts +1 -2
  30. package/lib/processor/checker/builtin.js +10 -12
  31. package/lib/processor/colorizer/builtin.js +8 -7
  32. package/lib/processor/completer/Completer.js +4 -2
  33. package/lib/processor/completer/builtin.js +26 -23
  34. package/lib/processor/formatter/builtin.js +14 -12
  35. package/lib/processor/linter/builtin/undeclaredSymbol.js +47 -24
  36. package/lib/processor/linter/builtin.js +7 -8
  37. package/lib/service/CacheService.js +9 -6
  38. package/lib/service/Config.d.ts +2 -2
  39. package/lib/service/Config.js +23 -19
  40. package/lib/service/Downloader.js +12 -7
  41. package/lib/service/FileService.js +22 -8
  42. package/lib/service/MetaRegistry.js +7 -6
  43. package/lib/service/Profiler.js +10 -5
  44. package/lib/service/Project.js +36 -30
  45. package/lib/service/Service.js +19 -9
  46. package/lib/service/fileUtil.js +2 -1
  47. package/lib/source/IndexMap.js +1 -1
  48. package/lib/source/LanguageError.js +1 -1
  49. package/lib/source/Location.js +4 -1
  50. package/lib/source/Range.js +6 -3
  51. package/lib/source/Source.js +3 -1
  52. package/lib/symbol/Symbol.d.ts +7 -7
  53. package/lib/symbol/Symbol.js +22 -9
  54. package/lib/symbol/SymbolUtil.d.ts +2 -2
  55. package/lib/symbol/SymbolUtil.js +74 -43
  56. package/package.json +2 -2
@@ -1,8 +1,8 @@
1
1
  import { AstNode } from '../node/index.js';
2
- import { ColorPresentation, completer, traversePreOrder } from '../processor/index.js';
2
+ import { ColorPresentation, completer, traversePreOrder, } from '../processor/index.js';
3
3
  import { Range } from '../source/index.js';
4
4
  import { SymbolUsageTypes } from '../symbol/index.js';
5
- import { ColorizerContext, CompleterContext, FormatterContext, ProcessorContext, SignatureHelpProviderContext } from './Context.js';
5
+ import { ColorizerContext, CompleterContext, FormatterContext, ProcessorContext, SignatureHelpProviderContext, } from './Context.js';
6
6
  import { fileUtil } from './fileUtil.js';
7
7
  import { Hover } from './Hover.js';
8
8
  import { ProfilerFactory } from './Profiler.js';
@@ -44,9 +44,11 @@ export class Service {
44
44
  try {
45
45
  this.debug(`Getting color info for '${doc.uri}' # ${doc.version}`);
46
46
  const ans = [];
47
- traversePreOrder(node, _ => true, node => node.color, node => ans.push({
47
+ traversePreOrder(node, (_) => true, (node) => node.color, (node) => ans.push({
48
48
  color: Array.isArray(node.color) ? node.color : node.color.value,
49
- range: Array.isArray(node.color) ? node.range : (node.color.range ?? node.range),
49
+ range: Array.isArray(node.color)
50
+ ? node.range
51
+ : node.color.range ?? node.range,
50
52
  }));
51
53
  return ans;
52
54
  }
@@ -63,7 +65,7 @@ export class Service {
63
65
  const nodeColor = node.color;
64
66
  if (nodeColor && !Array.isArray(nodeColor)) {
65
67
  const colorRange = nodeColor.range ?? node.range;
66
- return nodeColor.format.map(format => ColorPresentation.fromColorFormat(format, color, colorRange));
68
+ return nodeColor.format.map((format) => ColorPresentation.fromColorFormat(format, color, colorRange));
67
69
  }
68
70
  node = node.parent;
69
71
  }
@@ -78,7 +80,11 @@ export class Service {
78
80
  this.debug(`Getting completion for '${doc.uri}' # ${doc.version} @ ${offset}`);
79
81
  const shouldComplete = this.project.meta.shouldComplete(doc.languageId, triggerCharacter);
80
82
  if (shouldComplete) {
81
- return completer.file(node, CompleterContext.create(this.project, { doc, offset, triggerCharacter }));
83
+ return completer.file(node, CompleterContext.create(this.project, {
84
+ doc,
85
+ offset,
86
+ triggerCharacter,
87
+ }));
82
88
  }
83
89
  }
84
90
  catch (e) {
@@ -121,7 +127,8 @@ export class Service {
121
127
  while (node) {
122
128
  const symbol = this.project.symbols.resolveAlias(node.symbol);
123
129
  if (symbol) {
124
- const hover = `\`\`\`typescript\n(${symbol.category}${symbol.subcategory ? `/${symbol.subcategory}` : ''}) ${symbol.identifier}\n\`\`\`` + (symbol.desc ? `\n******\n${symbol.desc}` : '');
130
+ const hover = `\`\`\`typescript\n(${symbol.category}${symbol.subcategory ? `/${symbol.subcategory}` : ''}) ${symbol.identifier}\n\`\`\`` +
131
+ (symbol.desc ? `\n******\n${symbol.desc}` : '');
125
132
  return Hover.create(node.range, hover);
126
133
  }
127
134
  if (node.hover) {
@@ -154,7 +161,10 @@ export class Service {
154
161
  getSignatureHelp(node, doc, offset) {
155
162
  try {
156
163
  this.debug(`Getting signature help for '${doc.uri}' # ${doc.version} @ ${offset}`);
157
- const ctx = SignatureHelpProviderContext.create(this.project, { doc, offset });
164
+ const ctx = SignatureHelpProviderContext.create(this.project, {
165
+ doc,
166
+ offset,
167
+ });
158
168
  for (const provider of this.project.meta.signatureHelpProviders) {
159
169
  const result = provider(node, ctx);
160
170
  if (result) {
@@ -184,7 +194,7 @@ export class Service {
184
194
  for (const usage of searchedUsages) {
185
195
  let locs = symbol[usage] ?? [];
186
196
  if (currentFileOnly) {
187
- locs = locs.filter(l => l.uri === doc.uri);
197
+ locs = locs.filter((l) => l.uri === doc.uri);
188
198
  }
189
199
  rawLocations.push(...locs);
190
200
  }
@@ -43,7 +43,8 @@ export var fileUtil;
43
43
  }
44
44
  fileUtil.ensureEndingSlash = ensureEndingSlash;
45
45
  function join(fromUri, toUri) {
46
- return ensureEndingSlash(fromUri) + (toUri.startsWith('/') ? toUri.slice(1) : toUri);
46
+ return (ensureEndingSlash(fromUri) +
47
+ (toUri.startsWith('/') ? toUri.slice(1) : toUri));
47
48
  }
48
49
  fileUtil.join = join;
49
50
  /**
@@ -33,7 +33,7 @@ export var IndexMap;
33
33
  }
34
34
  IndexMap.toOuterRange = toOuterRange;
35
35
  function merge(outerMap, innerMap) {
36
- return innerMap.map(p => ({
36
+ return innerMap.map((p) => ({
37
37
  inner: p.inner,
38
38
  outer: toOuterRange(outerMap, p.outer),
39
39
  }));
@@ -15,7 +15,7 @@ export const LanguageError = Object.freeze({
15
15
  posRange: PositionRange.from(error.range, doc),
16
16
  message: error.message,
17
17
  severity: error.severity,
18
- ...error.info && { info: error.info },
18
+ ...(error.info && { info: error.info }),
19
19
  };
20
20
  },
21
21
  });
@@ -6,7 +6,10 @@ export var Location;
6
6
  return {
7
7
  uri: partial.uri ?? '',
8
8
  range: Range.get(partial.range ?? { start: 0, end: 0 }),
9
- posRange: partial.posRange ?? { start: { line: 0, character: 0 }, end: { line: 0, character: 0 } },
9
+ posRange: partial.posRange ?? {
10
+ start: { line: 0, character: 0 },
11
+ end: { line: 0, character: 0 },
12
+ },
10
13
  };
11
14
  }
12
15
  Location.get = get;
@@ -42,7 +42,8 @@ export var Range;
42
42
  }
43
43
  Range.span = span;
44
44
  function is(obj) {
45
- return (!!obj && typeof obj === 'object' &&
45
+ return (!!obj &&
46
+ typeof obj === 'object' &&
46
47
  typeof obj.start === 'number' &&
47
48
  typeof obj.end === 'number');
48
49
  }
@@ -65,7 +66,8 @@ export var Range;
65
66
  Range.toString = toString;
66
67
  function contains(range, offset, endInclusive = false) {
67
68
  range = get(range);
68
- return range.start <= offset && (endInclusive ? offset <= range.end : offset < range.end);
69
+ return (range.start <= offset &&
70
+ (endInclusive ? offset <= range.end : offset < range.end));
69
71
  }
70
72
  Range.contains = contains;
71
73
  function containsRange(a, b, endInclusive = false) {
@@ -144,7 +146,8 @@ export var Range;
144
146
  export var RangeContainer;
145
147
  (function (RangeContainer) {
146
148
  function is(obj) {
147
- return (!!obj && typeof obj === 'object' &&
149
+ return (!!obj &&
150
+ typeof obj === 'object' &&
148
151
  Range.is(obj.range));
149
152
  }
150
153
  RangeContainer.is = is;
@@ -91,7 +91,9 @@ export class ReadonlySource {
91
91
  slice(param0, end) {
92
92
  if (typeof param0 === 'number') {
93
93
  const innerStart = IndexMap.toInnerOffset(this.indexMap, param0);
94
- const innerEnd = end !== undefined ? IndexMap.toInnerOffset(this.indexMap, end) : undefined;
94
+ const innerEnd = end !== undefined
95
+ ? IndexMap.toInnerOffset(this.indexMap, end)
96
+ : undefined;
95
97
  return this.string.slice(innerStart, innerEnd);
96
98
  }
97
99
  const range = IndexMap.toInnerRange(this.indexMap, Range.get(param0));