@azerothjs/language-service 0.5.0-beta.1 → 0.6.0-beta.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 (84) hide show
  1. package/dist/docgen.d.ts +24 -0
  2. package/dist/docgen.d.ts.map +1 -0
  3. package/dist/docgen.js +195 -0
  4. package/dist/docgen.js.map +1 -0
  5. package/dist/index.d.ts +4 -2
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +5 -2
  8. package/dist/index.js.map +1 -1
  9. package/dist/language-data.d.ts +1 -1
  10. package/dist/language-data.d.ts.map +1 -1
  11. package/dist/language-data.js +39 -29
  12. package/dist/language-data.js.map +1 -1
  13. package/dist/markup-model.d.ts.map +1 -1
  14. package/dist/markup-model.js +12 -0
  15. package/dist/markup-model.js.map +1 -1
  16. package/dist/perf.d.ts +18 -0
  17. package/dist/perf.d.ts.map +1 -0
  18. package/dist/perf.js +32 -0
  19. package/dist/perf.js.map +1 -0
  20. package/dist/protocol.d.ts +103 -2
  21. package/dist/protocol.d.ts.map +1 -1
  22. package/dist/protocol.js +21 -2
  23. package/dist/protocol.js.map +1 -1
  24. package/dist/providers/call-hierarchy.d.ts +9 -0
  25. package/dist/providers/call-hierarchy.d.ts.map +1 -0
  26. package/dist/providers/call-hierarchy.js +184 -0
  27. package/dist/providers/call-hierarchy.js.map +1 -0
  28. package/dist/providers/code-lens.d.ts +11 -0
  29. package/dist/providers/code-lens.d.ts.map +1 -0
  30. package/dist/providers/code-lens.js +70 -0
  31. package/dist/providers/code-lens.js.map +1 -0
  32. package/dist/providers/color.d.ts +11 -0
  33. package/dist/providers/color.d.ts.map +1 -0
  34. package/dist/providers/color.js +58 -0
  35. package/dist/providers/color.js.map +1 -0
  36. package/dist/providers/completion.d.ts +19 -1
  37. package/dist/providers/completion.d.ts.map +1 -1
  38. package/dist/providers/completion.js +136 -7
  39. package/dist/providers/completion.js.map +1 -1
  40. package/dist/providers/css-service.d.ts +35 -3
  41. package/dist/providers/css-service.d.ts.map +1 -1
  42. package/dist/providers/css-service.js +78 -6
  43. package/dist/providers/css-service.js.map +1 -1
  44. package/dist/providers/diagnostics.d.ts.map +1 -1
  45. package/dist/providers/diagnostics.js +35 -3
  46. package/dist/providers/diagnostics.js.map +1 -1
  47. package/dist/providers/document-links.d.ts +10 -0
  48. package/dist/providers/document-links.d.ts.map +1 -0
  49. package/dist/providers/document-links.js +94 -0
  50. package/dist/providers/document-links.js.map +1 -0
  51. package/dist/providers/hover.d.ts.map +1 -1
  52. package/dist/providers/hover.js +117 -6
  53. package/dist/providers/hover.js.map +1 -1
  54. package/dist/providers/html-service.d.ts.map +1 -1
  55. package/dist/providers/html-service.js +6 -2
  56. package/dist/providers/html-service.js.map +1 -1
  57. package/dist/providers/inlay-hints.js +1 -1
  58. package/dist/providers/inlay-hints.js.map +1 -1
  59. package/dist/providers/navigation.d.ts +7 -1
  60. package/dist/providers/navigation.d.ts.map +1 -1
  61. package/dist/providers/navigation.js +20 -0
  62. package/dist/providers/navigation.js.map +1 -1
  63. package/dist/providers/semantic-tokens.d.ts +6 -1
  64. package/dist/providers/semantic-tokens.d.ts.map +1 -1
  65. package/dist/providers/semantic-tokens.js +114 -11
  66. package/dist/providers/semantic-tokens.js.map +1 -1
  67. package/dist/providers/structure.d.ts +1 -1
  68. package/dist/providers/structure.d.ts.map +1 -1
  69. package/dist/providers/structure.js +4 -2
  70. package/dist/providers/structure.js.map +1 -1
  71. package/dist/providers/symbols.d.ts.map +1 -1
  72. package/dist/providers/symbols.js +32 -2
  73. package/dist/providers/symbols.js.map +1 -1
  74. package/dist/service.d.ts +44 -1
  75. package/dist/service.d.ts.map +1 -1
  76. package/dist/service.js +94 -1
  77. package/dist/service.js.map +1 -1
  78. package/dist/ts-project.d.ts.map +1 -1
  79. package/dist/ts-project.js +25 -12
  80. package/dist/ts-project.js.map +1 -1
  81. package/dist/virtual-code.d.ts.map +1 -1
  82. package/dist/virtual-code.js +32 -9
  83. package/dist/virtual-code.js.map +1 -1
  84. package/package.json +2 -2
@@ -1,13 +1,57 @@
1
- // Semantic highlighting for the markup layer. The TextMate grammar in the
2
- // extension colours the bulk of a `.azeroth` file (it embeds the TypeScript
3
- // grammar); these tokens add the precise, parser-derived distinctions a grammar
4
- // can't make reliably - chiefly component tags vs. host tags and event vs.
5
- // plain attributes. Output is LSP's packed delta encoding.
1
+ // Semantic highlighting for a `.azeroth` file. Two sources are merged: the
2
+ // markup layer (component vs. host tags, event vs. plain attributes - the
3
+ // parser-derived distinctions a TextMate grammar can't make reliably), and the
4
+ // TypeScript classifier run over the virtual module, which colours the embedded
5
+ // script and expression regions exactly as a `.ts` file would. Markup tokens
6
+ // win inside markup regions; TS tokens cover the script/hole code. Output is
7
+ // LSP's packed delta encoding.
8
+ import ts from 'typescript';
6
9
  import { isWhitespace } from '@azerothjs/compiler';
7
- import { SEMANTIC_TOKEN_TYPES } from "../protocol.js";
10
+ import { SEMANTIC_TOKEN_TYPES, SEMANTIC_TOKEN_MODIFIERS } from "../protocol.js";
8
11
  import { collectMarkupNodes } from "../markup-model.js";
12
+ import { BUILTIN_COMPONENTS } from "../virtual-code.js";
9
13
  const TYPE_INDEX = new Map(SEMANTIC_TOKEN_TYPES.map((type, index) => [type, index]));
10
- /** Packed semantic tokens for the markup in the document. */
14
+ const MODIFIER_BIT = new Map(SEMANTIC_TOKEN_MODIFIERS.map((modifier, index) => [modifier, 1 << index]));
15
+ // A built-in component (`Show`, `For`, ...) is library-provided, so its tag tokens
16
+ // carry the `defaultLibrary` modifier - the one distinction the markup layer can
17
+ // make. User components and host tags carry no modifiers.
18
+ const DEFAULT_LIBRARY_BIT = MODIFIER_BIT.get('defaultLibrary') ?? 0;
19
+ const BUILTIN_SET = new Set(BUILTIN_COMPONENTS);
20
+ // The 2020 classifier (`SemanticClassificationFormat.TwentyTwenty`) packs each
21
+ // span's classification as `((tokenType + 1) << typeOffset) | modifierBitset`,
22
+ // where typeOffset is 8 and the low 8 bits are a TokenModifier bitset. The `+ 1`
23
+ // is part of TS's wire encoding (so a raw 0 means "no token"), so decoding the
24
+ // type index subtracts it back off - see classifier2020's getSemanticTokens.
25
+ const TS_TYPE_OFFSET = 8;
26
+ const TS_MODIFIER_MASK = 255;
27
+ // Maps TypeScript's own classifier token-type index to a legend type. This is
28
+ // the v2020 `TokenType` enum order (verified against the installed typescript):
29
+ // 0=class, 1=enum, 2=interface, 3=namespace, 4=typeParameter, 5=type,
30
+ // 6=parameter, 7=variable, 8=enumMember, 9=property, 10=function, 11=member.
31
+ // `member` is the method case in this legend; there is no token type for keyword
32
+ // or comment spans (the grammar colours those), so those classifications drop.
33
+ const TS_TYPE_TO_LEGEND = [
34
+ 'class', 'enum', 'interface', 'namespace', 'typeParameter', 'type',
35
+ 'parameter', 'variable', 'enumMember', 'property', 'function', 'method'
36
+ ];
37
+ // Maps TypeScript's `TokenModifier` bit index to this legend's modifier mask.
38
+ // The two legends share the same names but NOT the same order, so the remap is
39
+ // by name: TS bits are declaration=0, static=1, async=2, readonly=3,
40
+ // defaultLibrary=4, local=5.
41
+ const TS_MODIFIER_TO_BIT = [
42
+ MODIFIER_BIT.get('declaration') ?? 0,
43
+ MODIFIER_BIT.get('static') ?? 0,
44
+ MODIFIER_BIT.get('async') ?? 0,
45
+ MODIFIER_BIT.get('readonly') ?? 0,
46
+ MODIFIER_BIT.get('defaultLibrary') ?? 0,
47
+ MODIFIER_BIT.get('local') ?? 0
48
+ ];
49
+ /**
50
+ * Packed semantic tokens for the document: the markup tokens merged with the
51
+ * TypeScript classifications of the embedded script/expression regions. Markup
52
+ * tokens win where they overlap, so the TS pass only colours code outside the
53
+ * tag/attribute spans the markup layer already owns.
54
+ */
11
55
  export function getSemanticTokens(ctx) {
12
56
  const tokens = [];
13
57
  for (const node of collectMarkupNodes(ctx.source)) {
@@ -15,22 +59,81 @@ export function getSemanticTokens(ctx) {
15
59
  collectElementTokens(ctx.source, node, tokens);
16
60
  }
17
61
  }
62
+ collectScriptTokens(ctx, tokens);
18
63
  tokens.sort((a, b) => a.offset - b.offset);
19
64
  return { data: encode(ctx, tokens) };
20
65
  }
66
+ /**
67
+ * Runs the TypeScript classifier over the virtual module and appends a token
68
+ * for each span that maps cleanly back to source and doesn't fall inside a
69
+ * markup-owned span (markup wins there). Spans over generated scaffolding don't
70
+ * map and are dropped; keyword/comment classifications carry no legend type and
71
+ * are dropped too (the grammar colours them).
72
+ */
73
+ function collectScriptTokens(ctx, tokens) {
74
+ // markup tokens are the only entries so far; their source spans are the
75
+ // regions the TS pass must yield to.
76
+ const markupSpans = tokens.map(token => ({ start: token.offset, end: token.offset + token.length }));
77
+ const code = ctx.virtual.code;
78
+ const classified = ctx.project.service.getEncodedSemanticClassifications(ctx.virtualFile, { start: 0, length: code.length }, ts.SemanticClassificationFormat.TwentyTwenty);
79
+ const spans = classified.spans;
80
+ for (let i = 0; i + 2 < spans.length; i += 3) {
81
+ const start = spans[i];
82
+ const length = spans[i + 1];
83
+ const classification = spans[i + 2];
84
+ const tsType = (classification >> TS_TYPE_OFFSET) - 1;
85
+ const type = TS_TYPE_TO_LEGEND[tsType];
86
+ if (type === undefined || type === null) {
87
+ continue;
88
+ }
89
+ const mapped = ctx.virtual.mapping.toOriginalRange(start, start + length);
90
+ if (mapped === null) {
91
+ continue;
92
+ }
93
+ if (overlapsMarkup(markupSpans, mapped.start, mapped.end)) {
94
+ continue;
95
+ }
96
+ tokens.push({
97
+ offset: mapped.start,
98
+ length: mapped.end - mapped.start,
99
+ type,
100
+ modifiers: remapModifiers(classification & TS_MODIFIER_MASK)
101
+ });
102
+ }
103
+ }
104
+ /** Translates a TS modifier bitset into this legend's modifier mask. */
105
+ function remapModifiers(bitset) {
106
+ let mask = 0;
107
+ for (let bit = 0; bit < TS_MODIFIER_TO_BIT.length; bit++) {
108
+ if (bitset & (1 << bit)) {
109
+ mask |= TS_MODIFIER_TO_BIT[bit];
110
+ }
111
+ }
112
+ return mask;
113
+ }
114
+ /** True when `[start, end)` intersects any markup-owned source span. */
115
+ function overlapsMarkup(markupSpans, start, end) {
116
+ for (const span of markupSpans) {
117
+ if (start < span.end && end > span.start) {
118
+ return true;
119
+ }
120
+ }
121
+ return false;
122
+ }
21
123
  /** Emits tokens for a single element's tag name and attributes. */
22
124
  function collectElementTokens(source, node, tokens) {
23
125
  tokens.push({
24
126
  offset: node.start + 1,
25
127
  length: node.tag.length,
26
- type: node.isComponent ? 'component' : 'tag'
128
+ type: node.isComponent ? 'component' : 'tag',
129
+ modifiers: node.isComponent && BUILTIN_SET.has(node.tag) ? DEFAULT_LIBRARY_BIT : 0
27
130
  });
28
131
  for (const attr of node.attributes) {
29
132
  if (attr.spread || attr.name === null) {
30
133
  continue;
31
134
  }
32
135
  const isEvent = attr.name.length > 2 && attr.name.startsWith('on') && attr.name[2] === attr.name[2].toUpperCase();
33
- tokens.push({ offset: attr.start, length: attr.name.length, type: isEvent ? 'event' : 'attribute' });
136
+ tokens.push({ offset: attr.start, length: attr.name.length, type: isEvent ? 'event' : 'attribute', modifiers: 0 });
34
137
  if (attr.value.kind === 'static') {
35
138
  const eq = source.indexOf('=', attr.start + attr.name.length);
36
139
  if (eq !== -1) {
@@ -39,7 +142,7 @@ function collectElementTokens(source, node, tokens) {
39
142
  q++;
40
143
  }
41
144
  if (source[q] === '"' || source[q] === '\'') {
42
- tokens.push({ offset: q, length: attr.end - q, type: 'string' });
145
+ tokens.push({ offset: q, length: attr.end - q, type: 'string', modifiers: 0 });
43
146
  }
44
147
  }
45
148
  }
@@ -54,7 +157,7 @@ function encode(ctx, tokens) {
54
157
  const pos = ctx.lineIndex.positionAt(token.offset);
55
158
  const deltaLine = pos.line - prevLine;
56
159
  const deltaChar = deltaLine === 0 ? pos.character - prevChar : pos.character;
57
- data.push(deltaLine, deltaChar, token.length, TYPE_INDEX.get(token.type) ?? 0, 0);
160
+ data.push(deltaLine, deltaChar, token.length, TYPE_INDEX.get(token.type) ?? 0, token.modifiers);
58
161
  prevLine = pos.line;
59
162
  prevChar = pos.character;
60
163
  }
@@ -1 +1 @@
1
- {"version":3,"file":"semantic-tokens.js","sourceRoot":"","sources":["../../src/providers/semantic-tokens.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"semantic-tokens.js","sourceRoot":"","sources":["../../src/providers/semantic-tokens.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import { type RequestContext } from '../request.ts';
4
4
  export declare function getFoldingRanges(ctx: RequestContext): FoldingRange[];
5
5
  /**
6
6
  * Code actions for `range`: TypeScript quick fixes for the overlapping
7
- * diagnostics, plus any applicable refactors (extract function/constant, )
7
+ * diagnostics, plus any applicable refactors (extract function/constant, ...)
8
8
  * whose edits map cleanly back to the source. Refactors that would touch
9
9
  * generated markup scaffolding are skipped, since their edits can't be
10
10
  * represented faithfully in the original document.
@@ -1 +1 @@
1
- {"version":3,"file":"structure.d.ts","sourceRoot":"","sources":["../../src/providers/structure.ts"],"names":[],"mappings":"AAUA,OAAO,EACH,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,QAAQ,EACb,KAAK,KAAK,EACV,KAAK,cAAc,EACnB,KAAK,QAAQ,EAEhB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAA6C,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAc/F,4EAA4E;AAC5E,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,cAAc,GAAG,YAAY,EAAE,CAuCpE;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,CAyBpG;AA4CD,gFAAgF;AAChF,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,cAAc,GAAG,QAAQ,EAAE,CAGlE;AAED,+EAA+E;AAC/E,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,GAAG,QAAQ,EAAE,CAQxG;AAiBD,yEAAyE;AACzE,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,cAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,cAAc,EAAE,CAa/F"}
1
+ {"version":3,"file":"structure.d.ts","sourceRoot":"","sources":["../../src/providers/structure.ts"],"names":[],"mappings":"AAUA,OAAO,EACH,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,QAAQ,EACb,KAAK,KAAK,EACV,KAAK,cAAc,EACnB,KAAK,QAAQ,EAEhB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAA6C,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAc/F,4EAA4E;AAC5E,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,cAAc,GAAG,YAAY,EAAE,CAyCpE;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,CAyBpG;AA4CD,gFAAgF;AAChF,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,cAAc,GAAG,QAAQ,EAAE,CAGlE;AAED,+EAA+E;AAC/E,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,GAAG,QAAQ,EAAE,CAQxG;AAiBD,yEAAyE;AACzE,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,cAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,cAAc,EAAE,CAa/F"}
@@ -44,14 +44,16 @@ export function getFoldingRanges(ctx) {
44
44
  continue;
45
45
  }
46
46
  const startLine = ctx.lineIndex.positionAt(mapped.start).line;
47
- const endLine = ctx.lineIndex.positionAt(mapped.end).line;
47
+ // mapped.end is exclusive; step back one offset so a span ending right before a
48
+ // newline folds to the brace line, not the line after it (guard empty/one-char spans).
49
+ const endLine = ctx.lineIndex.positionAt(Math.max(mapped.start, mapped.end - 1)).line;
48
50
  add(startLine, endLine, span.kind === ts.OutliningSpanKind.Comment ? 'comment' : span.kind === ts.OutliningSpanKind.Imports ? 'imports' : 'region');
49
51
  }
50
52
  return ranges;
51
53
  }
52
54
  /**
53
55
  * Code actions for `range`: TypeScript quick fixes for the overlapping
54
- * diagnostics, plus any applicable refactors (extract function/constant, )
56
+ * diagnostics, plus any applicable refactors (extract function/constant, ...)
55
57
  * whose edits map cleanly back to the source. Refactors that would touch
56
58
  * generated markup scaffolding are skipped, since their edits can't be
57
59
  * represented faithfully in the original document.
@@ -1 +1 @@
1
- {"version":3,"file":"structure.js","sourceRoot":"","sources":["../../src/providers/structure.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"structure.js","sourceRoot":"","sources":["../../src/providers/structure.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"symbols.d.ts","sourceRoot":"","sources":["../../src/providers/symbols.ts"],"names":[],"mappings":"AAMA,OAAO,EAEH,KAAK,cAAc,EAGnB,KAAK,eAAe,EACvB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,oCAAoC;AACpC,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,cAAc,GAAG,cAAc,EAAE,CAUxE;AA8CD,kCAAkC;AAClC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,eAAe,EAAE,CAmB7F"}
1
+ {"version":3,"file":"symbols.d.ts","sourceRoot":"","sources":["../../src/providers/symbols.ts"],"names":[],"mappings":"AAMA,OAAO,EAEH,KAAK,cAAc,EAGnB,KAAK,eAAe,EACvB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAiD,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AACnG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,oCAAoC;AACpC,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,cAAc,GAAG,cAAc,EAAE,CAUxE;AA8CD,kCAAkC;AAClC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,eAAe,EAAE,CAwB7F"}
@@ -4,7 +4,7 @@
4
4
  // lives purely in generated scaffolding is dropped.
5
5
  import ts from 'typescript';
6
6
  import { SymbolKind } from "../protocol.js";
7
- import { resolveLocation } from "../request.js";
7
+ import { isVirtualFile, resolveLocation, toAzerothPath } from "../request.js";
8
8
  /** The outline for the document. */
9
9
  export function getDocumentSymbols(ctx) {
10
10
  const tree = ctx.project.service.getNavigationTree(ctx.virtualFile);
@@ -56,7 +56,12 @@ export function getWorkspaceSymbols(project, query) {
56
56
  const items = project.service.getNavigateToItems(query, undefined, undefined, false);
57
57
  const out = [];
58
58
  for (const item of items) {
59
- const location = resolveLocation(project, item.fileName, item.textSpan);
59
+ // A component declaration's span covers its markup body, which straddles
60
+ // generated scaffolding and so won't map as one contiguous range. The
61
+ // name identifier is verbatim and always maps, so range on it instead -
62
+ // otherwise default-exported components never surface in symbol search.
63
+ const span = nameSpan(project, item) ?? item.textSpan;
64
+ const location = resolveLocation(project, item.fileName, span);
60
65
  if (location === null) {
61
66
  continue;
62
67
  }
@@ -69,6 +74,31 @@ export function getWorkspaceSymbols(project, query) {
69
74
  }
70
75
  return out;
71
76
  }
77
+ /**
78
+ * The span of a navigate-to item's name identifier within its declaration.
79
+ * `NavigateToItem` carries no name span, so the name's first occurrence inside
80
+ * the declaration text is located (keywords/modifiers precede it and never
81
+ * contain it). Returns `null` when the declaration text is unavailable.
82
+ */
83
+ function nameSpan(project, item) {
84
+ const text = declarationText(project, item.fileName);
85
+ if (text === null) {
86
+ return null;
87
+ }
88
+ const slice = text.slice(item.textSpan.start, item.textSpan.start + item.textSpan.length);
89
+ const offset = slice.indexOf(item.name);
90
+ if (offset < 0) {
91
+ return null;
92
+ }
93
+ return { start: item.textSpan.start + offset, length: item.name.length };
94
+ }
95
+ /** The full text a navigate-to item's span indexes into (generated for virtual files). */
96
+ function declarationText(project, fileName) {
97
+ if (isVirtualFile(fileName)) {
98
+ return project.getVirtual(toAzerothPath(fileName)).code;
99
+ }
100
+ return ts.sys.readFile(fileName) ?? null;
101
+ }
72
102
  /** Maps a TS ScriptElementKind to an LSP SymbolKind. */
73
103
  function tsKindToSymbolKind(kind) {
74
104
  switch (kind) {
@@ -1 +1 @@
1
- {"version":3,"file":"symbols.js","sourceRoot":"","sources":["../../src/providers/symbols.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"symbols.js","sourceRoot":"","sources":["../../src/providers/symbols.ts"],"names":[],"mappings":"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"}
package/dist/service.d.ts CHANGED
@@ -1,6 +1,8 @@
1
- import type { CodeAction, CompletionItem, Diagnostic, DocumentHighlight, DocumentSymbol, FoldingRange, Hover, InlayHint, Location, Position, Range, SelectionRange, SemanticTokens, SignatureHelp, TextEdit, WorkspaceEdit, WorkspaceSymbol } from './protocol.ts';
1
+ import ts from 'typescript';
2
+ import type { CallHierarchyIncomingCall, CallHierarchyItem, CallHierarchyOutgoingCall, CodeAction, CodeLens, Color, ColorInformation, ColorPresentation, CompletionItem, Diagnostic, DocumentHighlight, DocumentLink, DocumentSymbol, FoldingRange, Hover, InlayHint, Location, Position, PrepareRenameResult, Range, SelectionRange, SemanticTokens, SignatureHelp, TextEdit, WorkspaceEdit, WorkspaceSymbol } from './protocol.ts';
2
3
  import { type CompletionOptions } from './providers/completion.ts';
3
4
  import { type InlayHintOptions } from './providers/inlay-hints.ts';
5
+ import type { Metrics } from './perf.ts';
4
6
  /**
5
7
  * Compiler-aware language intelligence for `.azeroth` files.
6
8
  *
@@ -55,12 +57,34 @@ export declare class AzerothLanguageService {
55
57
  getReferences(uri: string, position: Position): Location[];
56
58
  /** Occurrences of the symbol at a position, for editor highlighting. */
57
59
  getDocumentHighlights(uri: string, position: Position): DocumentHighlight[];
60
+ /** Validates a rename target at a position (identifier range + current name), or null when not renameable. */
61
+ getPrepareRename(uri: string, position: Position): PrepareRenameResult | null;
58
62
  /** Workspace edit to rename the symbol at a position. */
59
63
  getRenameEdits(uri: string, position: Position, newName: string): WorkspaceEdit | null;
64
+ /** The call-hierarchy node(s) for the symbol at a position. */
65
+ getCallHierarchyPrepare(uri: string, position: Position): CallHierarchyItem[];
66
+ /**
67
+ * Callers of a prepared call-hierarchy item. The item carries its source URI
68
+ * and offset in `data` (a follow-up request gets no position), so the query
69
+ * re-anchors there.
70
+ */
71
+ getIncomingCalls(item: CallHierarchyItem): CallHierarchyIncomingCall[];
72
+ /** Callees of a prepared call-hierarchy item (anchored via `data`, as above). */
73
+ getOutgoingCalls(item: CallHierarchyItem): CallHierarchyOutgoingCall[];
60
74
  /** The document outline. */
61
75
  getDocumentSymbols(uri: string): DocumentSymbol[];
62
76
  /** Project-wide symbol search. */
63
77
  getWorkspaceSymbols(query: string): WorkspaceSymbol[];
78
+ /** Clickable links over the relative import specifiers in the document. */
79
+ getDocumentLinks(uri: string): DocumentLink[];
80
+ /** Color swatches over CSS color literals in style attributes and css`` templates. */
81
+ getDocumentColors(uri: string): ColorInformation[];
82
+ /** The spelling choices for a picked color at a range. */
83
+ getColorPresentations(uri: string, color: Color, range: Range): ColorPresentation[];
84
+ /** Unresolved reference lenses over the document's top-level declarations. */
85
+ getCodeLenses(uri: string): CodeLens[];
86
+ /** Fills a lens's command with its reference count (anchored via `data`). */
87
+ resolveCodeLens(uri: string, lens: CodeLens): CodeLens;
64
88
  /** Signature help for the call enclosing a position. */
65
89
  getSignatureHelp(uri: string, position: Position): SignatureHelp | null;
66
90
  /** Diagnostics for the document. */
@@ -88,7 +112,26 @@ export declare class AzerothLanguageService {
88
112
  getLinkedEditingRanges(uri: string, position: Position): Range[] | null;
89
113
  /** The compiled virtual TS for a document - exposed for tests/tooling. */
90
114
  getVirtualCode(uri: string): string;
115
+ /**
116
+ * The underlying TypeScript program over the virtual modules - exposed for
117
+ * tooling (docgen) that needs to read the real, checked types. Returns
118
+ * undefined when no program is available yet.
119
+ */
120
+ getProgram(): ts.Program | undefined;
121
+ /**
122
+ * Toggles opt-in performance instrumentation. Off by default; while off the
123
+ * normal path carries zero overhead (no `performance.now()` calls, nothing
124
+ * recorded). Turn it on to populate `getMetrics`.
125
+ */
126
+ setMetricsEnabled(enabled: boolean): void;
127
+ /**
128
+ * Timings for the most recent request, in milliseconds. Only meaningful when
129
+ * instrumentation was enabled via `setMetricsEnabled` before the request;
130
+ * otherwise the values are zero.
131
+ */
132
+ getMetrics(): Metrics;
91
133
  /** Builds a RequestContext for a known document, or null if unknown. */
92
134
  private context;
135
+ private buildContext;
93
136
  }
94
137
  //# sourceMappingURL=service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
package/dist/service.js CHANGED
@@ -12,14 +12,19 @@ import { DiagnosticSeverity } from "./protocol.js";
12
12
  import { LineIndex } from "./text.js";
13
13
  import { getCompletions, resolveCompletion } from "./providers/completion.js";
14
14
  import { getHover } from "./providers/hover.js";
15
- import { getDefinition, getDocumentHighlights, getReferences, getRenameEdits, getTypeDefinition } from "./providers/navigation.js";
15
+ import { getDefinition, getDocumentHighlights, getPrepareRename, getReferences, getRenameEdits, getTypeDefinition } from "./providers/navigation.js";
16
16
  import { getDocumentSymbols, getWorkspaceSymbols } from "./providers/symbols.js";
17
+ import { getDocumentLinks } from "./providers/document-links.js";
18
+ import { getColorPresentations, getDocumentColors } from "./providers/color.js";
19
+ import { getCodeLenses, resolveCodeLens } from "./providers/code-lens.js";
20
+ import { incomingCalls, outgoingCalls, prepareCallHierarchy } from "./providers/call-hierarchy.js";
17
21
  import { getDiagnostics } from "./providers/diagnostics.js";
18
22
  import { getSignatureHelp } from "./providers/signature.js";
19
23
  import { getSemanticTokens } from "./providers/semantic-tokens.js";
20
24
  import { getCodeActions, getFoldingRanges, getFormattingEdits, getOnTypeFormattingEdits, getSelectionRanges } from "./providers/structure.js";
21
25
  import { getAutoCloseTag, getLinkedEditingRanges } from "./providers/editing.js";
22
26
  import { getInlayHints } from "./providers/inlay-hints.js";
27
+ import * as perf from "./perf.js";
23
28
  /**
24
29
  * Compiler-aware language intelligence for `.azeroth` files.
25
30
  *
@@ -129,11 +134,41 @@ export class AzerothLanguageService {
129
134
  const ctx = this.context(uri);
130
135
  return ctx ? getDocumentHighlights(ctx, ctx.lineIndex.offsetAt(position)) : [];
131
136
  }
137
+ /** Validates a rename target at a position (identifier range + current name), or null when not renameable. */
138
+ getPrepareRename(uri, position) {
139
+ const ctx = this.context(uri);
140
+ return ctx ? getPrepareRename(ctx, ctx.lineIndex.offsetAt(position)) : null;
141
+ }
132
142
  /** Workspace edit to rename the symbol at a position. */
133
143
  getRenameEdits(uri, position, newName) {
134
144
  const ctx = this.context(uri);
135
145
  return ctx ? getRenameEdits(ctx, ctx.lineIndex.offsetAt(position), newName) : null;
136
146
  }
147
+ /** The call-hierarchy node(s) for the symbol at a position. */
148
+ getCallHierarchyPrepare(uri, position) {
149
+ const ctx = this.context(uri);
150
+ return ctx ? prepareCallHierarchy(ctx, ctx.lineIndex.offsetAt(position)) : [];
151
+ }
152
+ /**
153
+ * Callers of a prepared call-hierarchy item. The item carries its source URI
154
+ * and offset in `data` (a follow-up request gets no position), so the query
155
+ * re-anchors there.
156
+ */
157
+ getIncomingCalls(item) {
158
+ if (!item.data) {
159
+ return [];
160
+ }
161
+ const ctx = this.context(item.data.uri);
162
+ return ctx ? incomingCalls(ctx, item.data.offset) : [];
163
+ }
164
+ /** Callees of a prepared call-hierarchy item (anchored via `data`, as above). */
165
+ getOutgoingCalls(item) {
166
+ if (!item.data) {
167
+ return [];
168
+ }
169
+ const ctx = this.context(item.data.uri);
170
+ return ctx ? outgoingCalls(ctx, item.data.offset) : [];
171
+ }
137
172
  /** The document outline. */
138
173
  getDocumentSymbols(uri) {
139
174
  const ctx = this.context(uri);
@@ -143,6 +178,31 @@ export class AzerothLanguageService {
143
178
  getWorkspaceSymbols(query) {
144
179
  return getWorkspaceSymbols(this.project, query);
145
180
  }
181
+ /** Clickable links over the relative import specifiers in the document. */
182
+ getDocumentLinks(uri) {
183
+ const ctx = this.context(uri);
184
+ return ctx ? getDocumentLinks(ctx) : [];
185
+ }
186
+ /** Color swatches over CSS color literals in style attributes and css`` templates. */
187
+ getDocumentColors(uri) {
188
+ const ctx = this.context(uri);
189
+ return ctx ? getDocumentColors(ctx) : [];
190
+ }
191
+ /** The spelling choices for a picked color at a range. */
192
+ getColorPresentations(uri, color, range) {
193
+ const ctx = this.context(uri);
194
+ return ctx ? getColorPresentations(ctx, color, range) : [];
195
+ }
196
+ /** Unresolved reference lenses over the document's top-level declarations. */
197
+ getCodeLenses(uri) {
198
+ const ctx = this.context(uri);
199
+ return ctx ? getCodeLenses(ctx) : [];
200
+ }
201
+ /** Fills a lens's command with its reference count (anchored via `data`). */
202
+ resolveCodeLens(uri, lens) {
203
+ const ctx = this.context(uri);
204
+ return ctx ? resolveCodeLens(ctx, lens) : lens;
205
+ }
146
206
  /** Signature help for the call enclosing a position. */
147
207
  getSignatureHelp(uri, position) {
148
208
  const ctx = this.context(uri);
@@ -205,8 +265,41 @@ export class AzerothLanguageService {
205
265
  getVirtualCode(uri) {
206
266
  return this.project.getVirtual(uriToPath(uri)).code;
207
267
  }
268
+ /**
269
+ * The underlying TypeScript program over the virtual modules - exposed for
270
+ * tooling (docgen) that needs to read the real, checked types. Returns
271
+ * undefined when no program is available yet.
272
+ */
273
+ getProgram() {
274
+ return this.project.service.getProgram();
275
+ }
276
+ /**
277
+ * Toggles opt-in performance instrumentation. Off by default; while off the
278
+ * normal path carries zero overhead (no `performance.now()` calls, nothing
279
+ * recorded). Turn it on to populate `getMetrics`.
280
+ */
281
+ setMetricsEnabled(enabled) {
282
+ perf.setEnabled(enabled);
283
+ }
284
+ /**
285
+ * Timings for the most recent request, in milliseconds. Only meaningful when
286
+ * instrumentation was enabled via `setMetricsEnabled` before the request;
287
+ * otherwise the values are zero.
288
+ */
289
+ getMetrics() {
290
+ return perf.snapshot();
291
+ }
208
292
  /** Builds a RequestContext for a known document, or null if unknown. */
209
293
  context(uri) {
294
+ if (!perf.isEnabled()) {
295
+ return this.buildContext(uri);
296
+ }
297
+ const start = performance.now();
298
+ const ctx = this.buildContext(uri);
299
+ perf.record('total', performance.now() - start);
300
+ return ctx;
301
+ }
302
+ buildContext(uri) {
210
303
  const azerothPath = uriToPath(uri);
211
304
  const source = this.project.getSource(azerothPath);
212
305
  if (source === undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,2EAA2E;AAC3E,gFAAgF;AAChF,2EAA2E;AAC3E,6EAA6E;AAC7E,gFAAgF;AAChF,eAAe;AAEf,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EACH,cAAc,EACd,aAAa,EAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AA8BtC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAA0B,MAAM,2BAA2B,CAAC;AACtG,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EACH,aAAa,EACb,qBAAqB,EACrB,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,iBAAiB,EACpB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,EACH,aAAa,EACb,aAAa,EACb,oBAAoB,EACvB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EACH,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,wBAAwB,EACxB,kBAAkB,EACrB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACjF,OAAO,EAAE,aAAa,EAAyB,MAAM,4BAA4B,CAAC;AAClF,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAGlC;;;;;;;;;GASG;AACH,MAAM,OAAO,sBAAsB;IAEd,OAAO,CAAiB;IAEzC,YACI,kBAA0B,EAC1B,UAAmB,EACnB,UAA0C,EAAE;QAG5C,IAAI,CAAC,OAAO,GAAG,IAAI,cAAc,CAAC,kBAAkB,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IAC/E,CAAC;IAED;;;;OAIG;IACI,iBAAiB;QAEpB,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;IAC1C,CAAC;IAED;;;;;OAKG;IACI,gBAAgB,CAAC,QAAgB;QAEpC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QACrC,MAAM,GAAG,GAAG;YACR,GAAG,OAAO,CAAC,uBAAuB,CAAC,QAAQ,CAAC;YAC5C,GAAG,OAAO,CAAC,sBAAsB,CAAC,QAAQ,CAAC;SAC9C,CAAC;QAEF,MAAM,GAAG,GAAiB,EAAE,CAAC;QAC7B,KAAK,MAAM,IAAI,IAAI,GAAG,EACtB,CAAC;YACG,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,IAAI,EACvE,CAAC;gBACG,SAAS;YACb,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAClE,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;YAC9E,GAAG,CAAC,IAAI,CAAC;gBACL,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;gBACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ,KAAK,EAAE,CAAC,kBAAkB,CAAC,KAAK;oBACnD,CAAC,CAAC,kBAAkB,CAAC,KAAK;oBAC1B,CAAC,CAAC,kBAAkB,CAAC,OAAO;gBAChC,OAAO,EAAE,EAAE,CAAC,4BAA4B,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC;gBAChE,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,MAAM,EAAE,YAAY;aACvB,CAAC,CAAC;QACP,CAAC;QACD,OAAO,GAAG,CAAC;IACf,CAAC;IAED,kDAAkD;IAC3C,OAAO,CAAC,GAAW,EAAE,MAAc;QAEtC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;IACtD,CAAC;IAED,oCAAoC;IAC7B,SAAS,CAAC,GAAW,EAAE,MAAc;QAExC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;IACtD,CAAC;IAED,wBAAwB;IACjB,QAAQ,CAAC,GAAW;QAEvB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED;;;;OAIG;IACI,gBAAgB;QAEnB,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;IACpC,CAAC;IAED,8CAA8C;IACvC,cAAc,CAAC,GAAW,EAAE,QAAkB,EAAE,OAA2B;QAE9E,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9B,OAAO,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACrF,CAAC;IAED,gEAAgE;IACzD,iBAAiB,CAAC,GAAW,EAAE,IAAoB;QAEtD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9B,OAAO,GAAG,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACrD,CAAC;IAED,uCAAuC;IAChC,QAAQ,CAAC,GAAW,EAAE,QAAkB;QAE3C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9B,OAAO,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACxE,CAAC;IAED,2DAA2D;IACpD,aAAa,CAAC,GAAW,EAAE,QAAkB;QAEhD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9B,OAAO,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3E,CAAC;IAED,gEAAgE;IACzD,iBAAiB,CAAC,GAAW,EAAE,QAAkB;QAEpD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9B,OAAO,GAAG,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/E,CAAC;IAED,kDAAkD;IAC3C,aAAa,CAAC,GAAW,EAAE,QAAkB;QAEhD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9B,OAAO,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3E,CAAC;IAED,wEAAwE;IACjE,qBAAqB,CAAC,GAAW,EAAE,QAAkB;QAExD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9B,OAAO,GAAG,CAAC,CAAC,CAAC,qBAAqB,CAAC,GAAG,EAAE,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACnF,CAAC;IAED,8GAA8G;IACvG,gBAAgB,CAAC,GAAW,EAAE,QAAkB;QAEnD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9B,OAAO,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAChF,CAAC;IAED,yDAAyD;IAClD,cAAc,CAAC,GAAW,EAAE,QAAkB,EAAE,OAAe;QAElE,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9B,OAAO,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACvF,CAAC;IAED,+DAA+D;IACxD,uBAAuB,CAAC,GAAW,EAAE,QAAkB;QAE1D,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9B,OAAO,GAAG,CAAC,CAAC,CAAC,oBAAoB,CAAC,GAAG,EAAE,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAClF,CAAC;IAED;;;;OAIG;IACI,gBAAgB,CAAC,IAAuB;QAE3C,IAAI,CAAC,IAAI,CAAC,IAAI,EACd,CAAC;YACG,OAAO,EAAE,CAAC;QACd,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxC,OAAO,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3D,CAAC;IAED,iFAAiF;IAC1E,gBAAgB,CAAC,IAAuB;QAE3C,IAAI,CAAC,IAAI,CAAC,IAAI,EACd,CAAC;YACG,OAAO,EAAE,CAAC;QACd,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxC,OAAO,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3D,CAAC;IAED,4BAA4B;IACrB,kBAAkB,CAAC,GAAW;QAEjC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9B,OAAO,GAAG,CAAC,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9C,CAAC;IAED,kCAAkC;IAC3B,mBAAmB,CAAC,KAAa;QAEpC,OAAO,mBAAmB,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACpD,CAAC;IAED,2EAA2E;IACpE,gBAAgB,CAAC,GAAW;QAE/B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9B,OAAO,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5C,CAAC;IAED,sFAAsF;IAC/E,iBAAiB,CAAC,GAAW;QAEhC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9B,OAAO,GAAG,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7C,CAAC;IAED,0DAA0D;IACnD,qBAAqB,CAAC,GAAW,EAAE,KAAY,EAAE,KAAY;QAEhE,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9B,OAAO,GAAG,CAAC,CAAC,CAAC,qBAAqB,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/D,CAAC;IAED,8EAA8E;IACvE,aAAa,CAAC,GAAW;QAE5B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9B,OAAO,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACzC,CAAC;IAED,6EAA6E;IACtE,eAAe,CAAC,GAAW,EAAE,IAAc;QAE9C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9B,OAAO,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACnD,CAAC;IAED,wDAAwD;IACjD,gBAAgB,CAAC,GAAW,EAAE,QAAkB;QAEnD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9B,OAAO,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAChF,CAAC;IAED,oCAAoC;IAC7B,cAAc,CAAC,GAAW;QAE7B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9B,OAAO,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1C,CAAC;IAED,6DAA6D;IACtD,iBAAiB,CAAC,GAAW;QAEhC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9B,OAAO,GAAG,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IACvD,CAAC;IAED,uCAAuC;IAChC,gBAAgB,CAAC,GAAW;QAE/B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9B,OAAO,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5C,CAAC;IAED,8CAA8C;IACvC,cAAc,CAAC,GAAW,EAAE,KAAY,EAAE,aAAuB,EAAE;QAEtE,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9B,OAAO,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7D,CAAC;IAED,wEAAwE;IACjE,kBAAkB,CAAC,GAAW;QAEjC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9B,OAAO,GAAG,CAAC,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9C,CAAC;IAED,+DAA+D;IACxD,aAAa,CAAC,GAAW,EAAE,KAAY,EAAE,OAA0B;QAEtE,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9B,OAAO,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACzD,CAAC;IAED,6EAA6E;IACtE,kBAAkB,CAAC,GAAW,EAAE,SAAqB;QAExD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9B,OAAO,GAAG,CAAC,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;IACjI,CAAC;IAED,+DAA+D;IACxD,wBAAwB,CAAC,GAAW,EAAE,QAAkB,EAAE,EAAU;QAEvE,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9B,OAAO,GAAG,CAAC,CAAC,CAAC,wBAAwB,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAClE,CAAC;IAED;;;OAGG;IACI,eAAe,CAAC,GAAW,EAAE,QAAkB;QAElD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9B,OAAO,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/E,CAAC;IAED,yEAAyE;IAClE,sBAAsB,CAAC,GAAW,EAAE,QAAkB;QAEzD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9B,OAAO,GAAG,CAAC,CAAC,CAAC,sBAAsB,CAAC,GAAG,EAAE,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACtF,CAAC;IAED,0EAA0E;IACnE,cAAc,CAAC,GAAW;QAE7B,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;IACxD,CAAC;IAED;;;;OAIG;IACI,UAAU;QAEb,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;IAC7C,CAAC;IAED;;;;OAIG;IACI,iBAAiB,CAAC,OAAgB;QAErC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED;;;;OAIG;IACI,UAAU;QAEb,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;IAED,wEAAwE;IAChE,OAAO,CAAC,GAAW;QAEvB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EACrB,CAAC;YACG,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAClC,CAAC;QACD,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC;QAChD,OAAO,GAAG,CAAC;IACf,CAAC;IAEO,YAAY,CAAC,GAAW;QAE5B,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACnD,IAAI,MAAM,KAAK,SAAS,EACxB,CAAC;YACG,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO;YACH,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,GAAG;YACH,WAAW;YACX,WAAW,EAAE,aAAa,CAAC,WAAW,CAAC;YACvC,MAAM;YACN,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC;YAC7C,SAAS,EAAE,IAAI,SAAS,CAAC,MAAM,CAAC;SACnC,CAAC;IACN,CAAC;CACJ"}