typescript-language-server 2.2.0 → 3.0.0

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 (66) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/README.md +6 -117
  3. package/lib/completion.d.ts +1 -1
  4. package/lib/completion.d.ts.map +1 -1
  5. package/lib/completion.js +18 -18
  6. package/lib/completion.js.map +1 -1
  7. package/lib/configuration-manager.js +2 -2
  8. package/lib/configuration-manager.js.map +1 -1
  9. package/lib/features/call-hierarchy.d.ts +7 -0
  10. package/lib/features/call-hierarchy.d.ts.map +1 -0
  11. package/lib/features/call-hierarchy.js +81 -0
  12. package/lib/features/call-hierarchy.js.map +1 -0
  13. package/lib/features/call-hierarchy.spec.d.ts +2 -0
  14. package/lib/features/call-hierarchy.spec.d.ts.map +1 -0
  15. package/lib/features/call-hierarchy.spec.js +107 -0
  16. package/lib/features/call-hierarchy.spec.js.map +1 -0
  17. package/lib/{semantic-tokens.d.ts → features/semantic-tokens.d.ts} +1 -1
  18. package/lib/features/semantic-tokens.d.ts.map +1 -0
  19. package/lib/{semantic-tokens.js → features/semantic-tokens.js} +0 -0
  20. package/lib/features/semantic-tokens.js.map +1 -0
  21. package/lib/lsp-connection.d.ts.map +1 -1
  22. package/lib/lsp-connection.js +6 -7
  23. package/lib/lsp-connection.js.map +1 -1
  24. package/lib/lsp-server.d.ts +4 -4
  25. package/lib/lsp-server.d.ts.map +1 -1
  26. package/lib/lsp-server.js +67 -74
  27. package/lib/lsp-server.js.map +1 -1
  28. package/lib/lsp-server.spec.js +2 -130
  29. package/lib/lsp-server.spec.js.map +1 -1
  30. package/lib/protocol-translation.d.ts +2 -1
  31. package/lib/protocol-translation.d.ts.map +1 -1
  32. package/lib/protocol-translation.js +6 -3
  33. package/lib/protocol-translation.js.map +1 -1
  34. package/lib/quickfix.js +1 -1
  35. package/lib/quickfix.js.map +1 -1
  36. package/lib/refactor.js +4 -4
  37. package/lib/refactor.js.map +1 -1
  38. package/lib/test-utils.d.ts +4 -0
  39. package/lib/test-utils.d.ts.map +1 -1
  40. package/lib/test-utils.js +9 -0
  41. package/lib/test-utils.js.map +1 -1
  42. package/lib/tsServer/requests.d.ts +4 -0
  43. package/lib/tsServer/requests.d.ts.map +1 -1
  44. package/lib/tsServer/serverProcess.js +1 -1
  45. package/lib/tsServer/serverProcess.js.map +1 -1
  46. package/lib/tsServer/spawner.js +3 -3
  47. package/lib/tsServer/spawner.js.map +1 -1
  48. package/lib/tsServer/versionProvider.js +1 -1
  49. package/lib/tsServer/versionProvider.js.map +1 -1
  50. package/lib/utils/logger.js +1 -3
  51. package/lib/utils/logger.js.map +1 -1
  52. package/package.json +7 -7
  53. package/lib/calls.d.ts +0 -8
  54. package/lib/calls.d.ts.map +0 -1
  55. package/lib/calls.js +0 -191
  56. package/lib/calls.js.map +0 -1
  57. package/lib/lsp-protocol.calls.proposed.d.ts +0 -119
  58. package/lib/lsp-protocol.calls.proposed.d.ts.map +0 -1
  59. package/lib/lsp-protocol.calls.proposed.js +0 -39
  60. package/lib/lsp-protocol.calls.proposed.js.map +0 -1
  61. package/lib/lsp-protocol.inlayHints.proposed.d.ts +0 -27
  62. package/lib/lsp-protocol.inlayHints.proposed.d.ts.map +0 -1
  63. package/lib/lsp-protocol.inlayHints.proposed.js +0 -3
  64. package/lib/lsp-protocol.inlayHints.proposed.js.map +0 -1
  65. package/lib/semantic-tokens.d.ts.map +0 -1
  66. package/lib/semantic-tokens.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,6 +1,30 @@
1
1
  # Changelog
2
2
  All notable changes to this project will be documented in this file.
3
3
 
4
+ ## [3.0.0](https://github.com/typescript-language-server/typescript-language-server/compare/v2.3.0...v3.0.0) (2022-12-29)
5
+
6
+
7
+ ### ⚠ BREAKING CHANGES
8
+
9
+ * Remove experimental and legacy implementations of inlay hints and call hierarchy. Use to the official `textDocument/inlayHint` and `textDocument/prepareCallHierarchy` implementations instead.
10
+
11
+ ### Features
12
+
13
+ * drop experimental `textDocument/calls`, `typescript/inlayHints` ([#647](https://github.com/typescript-language-server/typescript-language-server/issues/647)) ([b15f8a7](https://github.com/typescript-language-server/typescript-language-server/commit/b15f8a7cca8470b0ef9e9878e94fba95e278d372))
14
+ * implement support for spec version of Call Hierarchy ([#649](https://github.com/typescript-language-server/typescript-language-server/issues/649)) ([3ce0e17](https://github.com/typescript-language-server/typescript-language-server/commit/3ce0e17e72f32913739c9d67d3dfb6092f09a2aa))
15
+
16
+ ## [2.3.0](https://github.com/typescript-language-server/typescript-language-server/compare/v2.2.0...v2.3.0) (2022-12-27)
17
+
18
+
19
+ ### Features
20
+
21
+ * implement `textDocument/selectionRange` request ([#642](https://github.com/typescript-language-server/typescript-language-server/issues/642)) ([a5598c6](https://github.com/typescript-language-server/typescript-language-server/commit/a5598c68aac961cbd6294133a9235e4db5b95929))
22
+
23
+
24
+ ### Bug Fixes
25
+
26
+ * **completions:** don't insert call snippet if already a call ([#646](https://github.com/typescript-language-server/typescript-language-server/issues/646)) ([5d34de5](https://github.com/typescript-language-server/typescript-language-server/commit/5d34de5fd38ce5a9dcafc4a385ccb39b0a89f2b0))
27
+
4
28
  ## [2.2.0](https://github.com/typescript-language-server/typescript-language-server/compare/v2.1.0...v2.2.0) (2022-12-09)
5
29
 
6
30
 
package/README.md CHANGED
@@ -27,10 +27,8 @@ Maintained by a [community of contributors](https://github.com/typescript-langua
27
27
  - [Organize Imports](#organize-imports)
28
28
  - [Rename File](#rename-file)
29
29
  - [Configure plugin](#configure-plugin)
30
- - [Inlay hints \(`typescript/inlayHints`\) \(experimental\)](#inlay-hints-typescriptinlayhints-experimental)
31
- - [Callers and callees \(`textDocument/calls`\) \(experimental\)](#callers-and-callees-textdocumentcalls-experimental)
30
+ - [Inlay hints \(`textDocument/inlayHint`\)](#inlay-hints-textdocumentinlayhint)
32
31
  - [Supported Protocol features](#supported-protocol-features)
33
- - [Experimental](#experimental)
34
32
  - [Development](#development)
35
33
  - [Build](#build)
36
34
  - [Test](#test)
@@ -484,35 +482,11 @@ Most of the time, you'll execute commands with arguments retrieved from another
484
482
  void
485
483
  ```
486
484
 
487
- ## Inlay hints (`typescript/inlayHints`) (experimental)
488
-
489
- > !!! This implementation is deprecated. Use the spec-compliant `textDocument/inlayHint` request instead. !!!
490
-
491
- Supports experimental inline hints.
492
-
493
- ```ts
494
- type Request = {
495
- textDocument: TextDocumentIdentifier,
496
- range?: Range,
497
- }
498
-
499
- type Response = {
500
- inlayHints: InlayHint[];
501
- }
502
-
503
- type InlayHint = {
504
- text: string;
505
- position: lsp.Position;
506
- kind: 'Type' | 'Parameter' | 'Enum';
507
- whitespaceBefore?: boolean;
508
- whitespaceAfter?: boolean;
509
- };
510
- ```
485
+ ## Inlay hints (`textDocument/inlayHint`)
511
486
 
512
487
  For the request to return any results, some or all of the following options need to be enabled through `preferences`:
513
488
 
514
489
  ```ts
515
- // Not officially part of UserPreferences yet but you can send them along with the UserPreferences just fine:
516
490
  export interface InlayHintsOptions extends UserPreferences {
517
491
  includeInlayParameterNameHints: 'none' | 'literals' | 'all';
518
492
  includeInlayParameterNameHintsWhenArgumentMatchesName: boolean;
@@ -525,90 +499,6 @@ export interface InlayHintsOptions extends UserPreferences {
525
499
  }
526
500
  ```
527
501
 
528
- ## Callers and callees (`textDocument/calls`) (experimental)
529
-
530
- Supports showing callers and calles for a given symbol. If the editor has support for appropriate UI, it can generate a tree of callers and calles for a document.
531
-
532
- ```ts
533
- type Request = {
534
- /**
535
- * The text document.
536
- */
537
- textDocument: TextDocumentIdentifier;
538
- /**
539
- * The position inside the text document.
540
- */
541
- position: Position;
542
- /**
543
- * Outgoing direction for callees.
544
- * The default is incoming for callers.
545
- */
546
- direction?: CallDirection;
547
- }
548
-
549
- export enum CallDirection {
550
- /**
551
- * Incoming calls aka. callers
552
- */
553
- Incoming = 'incoming',
554
- /**
555
- * Outgoing calls aka. callees
556
- */
557
- Outgoing = 'outgoing',
558
- }
559
-
560
- type Result = {
561
- /**
562
- * The symbol of a definition for which the request was made.
563
- *
564
- * If no definition is found at a given text document position, the symbol is undefined.
565
- */
566
- symbol?: DefinitionSymbol;
567
- /**
568
- * List of calls.
569
- */
570
- calls: Call[];
571
- }
572
-
573
- interface Call {
574
- /**
575
- * Actual location of a call to a definition.
576
- */
577
- location: Location;
578
- /**
579
- * Symbol refered to by this call. For outgoing calls this is a callee,
580
- * otherwise a caller.
581
- */
582
- symbol: DefinitionSymbol;
583
- }
584
-
585
- interface DefinitionSymbol {
586
- /**
587
- * The name of this symbol.
588
- */
589
- name: string;
590
- /**
591
- * More detail for this symbol, e.g the signature of a function.
592
- */
593
- detail?: string;
594
- /**
595
- * The kind of this symbol.
596
- */
597
- kind: SymbolKind;
598
- /**
599
- * The range enclosing this symbol not including leading/trailing whitespace but everything else
600
- * like comments. This information is typically used to determine if the the clients cursor is
601
- * inside the symbol to reveal in the symbol in the UI.
602
- */
603
- location: Location;
604
- /**
605
- * The range that should be selected and revealed when this symbol is being picked, e.g the name of a function.
606
- * Must be contained by the the `range`.
607
- */
608
- selectionRange: Range;
609
- }
610
- ```
611
-
612
502
  ## Supported Protocol features
613
503
 
614
504
  - [x] textDocument/codeAction
@@ -624,20 +514,19 @@ interface DefinitionSymbol {
624
514
  - [x] textDocument/formatting
625
515
  - [x] textDocument/hover
626
516
  - [x] textDocument/inlayHint (no support for `inlayHint/resolve` or `workspace/inlayHint/refresh`)
517
+ - [x] textDocument/prepareCallHierarchy
518
+ - [x] callHierarchy/incomingCalls
519
+ - [x] callHierarchy/outgoingCalls
627
520
  - [x] textDocument/prepareRename
628
521
  - [x] textDocument/rangeFormatting
629
522
  - [x] textDocument/references
630
523
  - [x] textDocument/rename
524
+ - [x] textDocument/selectionRange
631
525
  - [x] textDocument/signatureHelp
632
526
  - [x] workspace/symbol
633
527
  - [x] workspace/didChangeConfiguration
634
528
  - [x] workspace/executeCommand
635
529
 
636
- ### Experimental
637
-
638
- - [x] textDocument/calls (experimental)
639
- - [x] typescript/inlayHints (experimental, supported from Typescript v4.4.2) DEPRECATED (use `textDocument/inlayHint` instead)
640
-
641
530
  ## Development
642
531
 
643
532
  ### Build
@@ -5,6 +5,6 @@ import { tsp, SupportedFeatures } from './ts-protocol.js';
5
5
  import { IFilePathToResourceConverter } from './utils/previewer.js';
6
6
  import type { WorkspaceConfigurationCompletionOptions } from './configuration-manager.js';
7
7
  export declare function asCompletionItem(entry: tsp.CompletionEntry, optionalReplacementSpan: tsp.TextSpan | undefined, file: string, position: lsp.Position, document: LspDocument, filePathConverter: IFilePathToResourceConverter, options: WorkspaceConfigurationCompletionOptions, features: SupportedFeatures): lsp.CompletionItem | null;
8
- export declare function asResolvedCompletionItem(item: lsp.CompletionItem, details: tsp.CompletionEntryDetails, client: TspClient, filePathConverter: IFilePathToResourceConverter, options: WorkspaceConfigurationCompletionOptions, features: SupportedFeatures): Promise<lsp.CompletionItem>;
8
+ export declare function asResolvedCompletionItem(item: lsp.CompletionItem, details: tsp.CompletionEntryDetails, document: LspDocument | undefined, client: TspClient, filePathConverter: IFilePathToResourceConverter, options: WorkspaceConfigurationCompletionOptions, features: SupportedFeatures): Promise<lsp.CompletionItem>;
9
9
  export declare function getCompletionTriggerCharacter(character: string | undefined): tsp.CompletionsTriggerCharacter | undefined;
10
10
  //# sourceMappingURL=completion.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"completion.d.ts","sourceRoot":"","sources":["../src/completion.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,GAAG,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAS,GAAG,EAAiB,iBAAiB,EAA2B,MAAM,kBAAkB,CAAC;AAEzG,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AAGpE,OAAO,KAAK,EAAE,uCAAuC,EAAE,MAAM,4BAA4B,CAAC;AAU1F,wBAAgB,gBAAgB,CAC5B,KAAK,EAAE,GAAG,CAAC,eAAe,EAC1B,uBAAuB,EAAE,GAAG,CAAC,QAAQ,GAAG,SAAS,EACjD,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EACpC,QAAQ,EAAE,WAAW,EACrB,iBAAiB,EAAE,4BAA4B,EAC/C,OAAO,EAAE,uCAAuC,EAChD,QAAQ,EAAE,iBAAiB,GAC5B,GAAG,CAAC,cAAc,GAAG,IAAI,CA+E3B;AA0GD,wBAAsB,wBAAwB,CAC1C,IAAI,EAAE,GAAG,CAAC,cAAc,EACxB,OAAO,EAAE,GAAG,CAAC,sBAAsB,EACnC,MAAM,EAAE,SAAS,EACjB,iBAAiB,EAAE,4BAA4B,EAC/C,OAAO,EAAE,uCAAuC,EAChD,QAAQ,EAAE,iBAAiB,GAC5B,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAmB7B;AAsLD,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,GAAG,CAAC,2BAA2B,GAAG,SAAS,CAexH"}
1
+ {"version":3,"file":"completion.d.ts","sourceRoot":"","sources":["../src/completion.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,GAAG,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAS,GAAG,EAAiB,iBAAiB,EAA2B,MAAM,kBAAkB,CAAC;AAEzG,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AAGpE,OAAO,KAAK,EAAE,uCAAuC,EAAE,MAAM,4BAA4B,CAAC;AAU1F,wBAAgB,gBAAgB,CAC5B,KAAK,EAAE,GAAG,CAAC,eAAe,EAC1B,uBAAuB,EAAE,GAAG,CAAC,QAAQ,GAAG,SAAS,EACjD,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EACpC,QAAQ,EAAE,WAAW,EACrB,iBAAiB,EAAE,4BAA4B,EAC/C,OAAO,EAAE,uCAAuC,EAChD,QAAQ,EAAE,iBAAiB,GAC5B,GAAG,CAAC,cAAc,GAAG,IAAI,CA+E3B;AA0GD,wBAAsB,wBAAwB,CAC1C,IAAI,EAAE,GAAG,CAAC,cAAc,EACxB,OAAO,EAAE,GAAG,CAAC,sBAAsB,EACnC,QAAQ,EAAE,WAAW,GAAG,SAAS,EACjC,MAAM,EAAE,SAAS,EACjB,iBAAiB,EAAE,4BAA4B,EAC/C,OAAO,EAAE,uCAAuC,EAChD,QAAQ,EAAE,iBAAiB,GAC5B,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAoB7B;AAsLD,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,GAAG,CAAC,2BAA2B,GAAG,SAAS,CAexH"}
package/lib/completion.js CHANGED
@@ -37,7 +37,7 @@ export function asCompletionItem(entry, optionalReplacementSpan, file, position,
37
37
  if (entry.source && entry.hasAction) {
38
38
  // De-prioritze auto-imports
39
39
  // https://github.com/Microsoft/vscode/issues/40311
40
- item.sortText = '\uffff' + entry.sortText;
40
+ item.sortText = `\uffff${entry.sortText}`;
41
41
  }
42
42
  const { isSnippet, replacementSpan, sourceDisplay } = entry;
43
43
  if (isSnippet && !features.completionSnippets) {
@@ -182,7 +182,7 @@ function asCommitCharacters(kind) {
182
182
  }
183
183
  return commitCharacters.length === 0 ? undefined : commitCharacters;
184
184
  }
185
- export async function asResolvedCompletionItem(item, details, client, filePathConverter, options, features) {
185
+ export async function asResolvedCompletionItem(item, details, document, client, filePathConverter, options, features) {
186
186
  item.detail = asDetail(details, filePathConverter);
187
187
  const { documentation, tags } = details;
188
188
  item.documentation = Previewer.markdownDocumentation(documentation, tags, filePathConverter);
@@ -191,39 +191,39 @@ export async function asResolvedCompletionItem(item, details, client, filePathCo
191
191
  item.additionalTextEdits = asAdditionalTextEdits(details.codeActions, filepath);
192
192
  item.command = asCommand(details.codeActions, item.data.file);
193
193
  }
194
- if (features.completionSnippets && canCreateSnippetOfFunctionCall(item.kind, options)) {
194
+ if (document && features.completionSnippets && canCreateSnippetOfFunctionCall(item.kind, options)) {
195
195
  const { line, offset } = item.data;
196
196
  const position = Position.fromLocation({ line, offset });
197
- const shouldCompleteFunction = await isValidFunctionCompletionContext(filepath, position, client);
197
+ const shouldCompleteFunction = await isValidFunctionCompletionContext(filepath, position, client, document);
198
198
  if (shouldCompleteFunction) {
199
199
  createSnippetOfFunctionCall(item, details);
200
200
  }
201
201
  }
202
202
  return item;
203
203
  }
204
- async function isValidFunctionCompletionContext(filepath, position, client) {
204
+ async function isValidFunctionCompletionContext(filepath, position, client, document) {
205
205
  // Workaround for https://github.com/Microsoft/TypeScript/issues/12677
206
206
  // Don't complete function calls inside of destructive assigments or imports
207
207
  try {
208
208
  const args = Position.toFileLocationRequestArgs(filepath, position);
209
209
  const response = await client.request(tsp.CommandTypes.Quickinfo, args);
210
- if (response.type !== 'response') {
211
- return true;
212
- }
213
- const { body } = response;
214
- switch (body?.kind) {
215
- case 'var':
216
- case 'let':
217
- case 'const':
218
- case 'alias':
219
- return false;
220
- default:
221
- return true;
210
+ if (response.type === 'response' && response.body) {
211
+ switch (response.body.kind) {
212
+ case 'var':
213
+ case 'let':
214
+ case 'const':
215
+ case 'alias':
216
+ return false;
217
+ }
222
218
  }
223
219
  }
224
220
  catch {
225
- return true;
221
+ // Noop
226
222
  }
223
+ // Don't complete function call if there is already something that looks like a function call
224
+ // https://github.com/microsoft/vscode/issues/18131
225
+ const after = document.getLine(position.line).slice(position.character);
226
+ return after.match(/^[a-z_$0-9]*\s*\(/gi) === null;
227
227
  }
228
228
  function canCreateSnippetOfFunctionCall(kind, options) {
229
229
  return options.completeFunctionCalls === true && (kind === lsp.CompletionItemKind.Function || kind === lsp.CompletionItemKind.Method);
@@ -1 +1 @@
1
- {"version":3,"file":"completion.js","sourceRoot":"","sources":["../src/completion.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"completion.js","sourceRoot":"","sources":["../src/completion.ts"],"names":[],"mappings":"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"}
@@ -129,9 +129,9 @@ export class ConfigurationManager {
129
129
  const slashNormalized = p.replace(/\\/g, '/');
130
130
  const isRelative = /^\.\.?($|\/)/.test(slashNormalized);
131
131
  return path.posix.isAbsolute(p) ? p :
132
- p.startsWith('*') ? '/' + slashNormalized :
132
+ p.startsWith('*') ? `/${slashNormalized}` :
133
133
  isRelative ? path.posix.join(workspaceFolder, p) :
134
- '/**/' + slashNormalized;
134
+ `/**/${slashNormalized}`;
135
135
  });
136
136
  }
137
137
  }
@@ -1 +1 @@
1
- {"version":3,"file":"configuration-manager.js","sourceRoot":"","sources":["../src/configuration-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"configuration-manager.js","sourceRoot":"","sources":["../src/configuration-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import * as lsp from 'vscode-languageserver';
2
+ import type { LspDocuments } from '../document.js';
3
+ import { tsp } from '../ts-protocol.js';
4
+ export declare function fromProtocolCallHierarchyItem(item: tsp.CallHierarchyItem, documents: LspDocuments, workspaceRoot: string | undefined): lsp.CallHierarchyItem;
5
+ export declare function fromProtocolCallHierarchyIncomingCall(item: tsp.CallHierarchyIncomingCall, documents: LspDocuments, workspaceRoot: string | undefined): lsp.CallHierarchyIncomingCall;
6
+ export declare function fromProtocolCallHierarchyOutgoingCall(item: tsp.CallHierarchyOutgoingCall, documents: LspDocuments, workspaceRoot: string | undefined): lsp.CallHierarchyOutgoingCall;
7
+ //# sourceMappingURL=call-hierarchy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"call-hierarchy.d.ts","sourceRoot":"","sources":["../../src/features/call-hierarchy.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,GAAG,MAAM,uBAAuB,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,EAAS,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAG/C,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,GAAG,CAAC,iBAAiB,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,GAAG,CAAC,iBAAiB,CAoB5J;AAED,wBAAgB,qCAAqC,CAAC,IAAI,EAAE,GAAG,CAAC,yBAAyB,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,GAAG,CAAC,yBAAyB,CAKpL;AAED,wBAAgB,qCAAqC,CAAC,IAAI,EAAE,GAAG,CAAC,yBAAyB,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,GAAG,CAAC,yBAAyB,CAKpL"}
@@ -0,0 +1,81 @@
1
+ /*
2
+ * Copyright (C) 2022 TypeFox and others.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
5
+ * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
6
+ */
7
+ /*---------------------------------------------------------------------------------------------
8
+ * Copyright (c) Microsoft Corporation. All rights reserved.
9
+ * Licensed under the MIT License. See License.txt in the project root for license information.
10
+ *--------------------------------------------------------------------------------------------*/
11
+ import path from 'node:path';
12
+ import * as lsp from 'vscode-languageserver';
13
+ import { pathToUri } from '../protocol-translation.js';
14
+ import { tslib } from '../ts-protocol.js';
15
+ import { Range } from '../utils/typeConverters.js';
16
+ export function fromProtocolCallHierarchyItem(item, documents, workspaceRoot) {
17
+ const useFileName = isSourceFileItem(item);
18
+ const name = useFileName ? path.basename(item.file) : item.name;
19
+ const detail = useFileName
20
+ ? workspaceRoot ? path.relative(workspaceRoot, path.dirname(item.file)) : path.dirname(item.file)
21
+ : item.containerName ?? '';
22
+ const result = {
23
+ kind: fromProtocolScriptElementKind(item.kind),
24
+ name,
25
+ detail,
26
+ uri: pathToUri(item.file, documents),
27
+ range: Range.fromTextSpan(item.span),
28
+ selectionRange: Range.fromTextSpan(item.selectionSpan),
29
+ };
30
+ const kindModifiers = item.kindModifiers ? parseKindModifier(item.kindModifiers) : undefined;
31
+ if (kindModifiers?.has(tslib.ScriptElementKindModifier.deprecatedModifier)) {
32
+ result.tags = [lsp.SymbolTag.Deprecated];
33
+ }
34
+ return result;
35
+ }
36
+ export function fromProtocolCallHierarchyIncomingCall(item, documents, workspaceRoot) {
37
+ return {
38
+ from: fromProtocolCallHierarchyItem(item.from, documents, workspaceRoot),
39
+ fromRanges: item.fromSpans.map(Range.fromTextSpan),
40
+ };
41
+ }
42
+ export function fromProtocolCallHierarchyOutgoingCall(item, documents, workspaceRoot) {
43
+ return {
44
+ to: fromProtocolCallHierarchyItem(item.to, documents, workspaceRoot),
45
+ fromRanges: item.fromSpans.map(Range.fromTextSpan),
46
+ };
47
+ }
48
+ function isSourceFileItem(item) {
49
+ return item.kind === tslib.ScriptElementKind.scriptElement || item.kind === tslib.ScriptElementKind.moduleElement && item.selectionSpan.start.line === 1 && item.selectionSpan.start.offset === 1;
50
+ }
51
+ function fromProtocolScriptElementKind(kind) {
52
+ switch (kind) {
53
+ case tslib.ScriptElementKind.moduleElement: return lsp.SymbolKind.Module;
54
+ case tslib.ScriptElementKind.classElement: return lsp.SymbolKind.Class;
55
+ case tslib.ScriptElementKind.enumElement: return lsp.SymbolKind.Enum;
56
+ case tslib.ScriptElementKind.enumMemberElement: return lsp.SymbolKind.EnumMember;
57
+ case tslib.ScriptElementKind.interfaceElement: return lsp.SymbolKind.Interface;
58
+ case tslib.ScriptElementKind.indexSignatureElement: return lsp.SymbolKind.Method;
59
+ case tslib.ScriptElementKind.callSignatureElement: return lsp.SymbolKind.Method;
60
+ case tslib.ScriptElementKind.memberFunctionElement: return lsp.SymbolKind.Method;
61
+ case tslib.ScriptElementKind.memberVariableElement: return lsp.SymbolKind.Property;
62
+ case tslib.ScriptElementKind.memberGetAccessorElement: return lsp.SymbolKind.Property;
63
+ case tslib.ScriptElementKind.memberSetAccessorElement: return lsp.SymbolKind.Property;
64
+ case tslib.ScriptElementKind.variableElement: return lsp.SymbolKind.Variable;
65
+ case tslib.ScriptElementKind.letElement: return lsp.SymbolKind.Variable;
66
+ case tslib.ScriptElementKind.constElement: return lsp.SymbolKind.Variable;
67
+ case tslib.ScriptElementKind.localVariableElement: return lsp.SymbolKind.Variable;
68
+ case tslib.ScriptElementKind.alias: return lsp.SymbolKind.Variable;
69
+ case tslib.ScriptElementKind.functionElement: return lsp.SymbolKind.Function;
70
+ case tslib.ScriptElementKind.localFunctionElement: return lsp.SymbolKind.Function;
71
+ case tslib.ScriptElementKind.constructSignatureElement: return lsp.SymbolKind.Constructor;
72
+ case tslib.ScriptElementKind.constructorImplementationElement: return lsp.SymbolKind.Constructor;
73
+ case tslib.ScriptElementKind.typeParameterElement: return lsp.SymbolKind.TypeParameter;
74
+ case tslib.ScriptElementKind.string: return lsp.SymbolKind.String;
75
+ default: return lsp.SymbolKind.Variable;
76
+ }
77
+ }
78
+ function parseKindModifier(kindModifiers) {
79
+ return new Set(kindModifiers.split(/,|\s+/g));
80
+ }
81
+ //# sourceMappingURL=call-hierarchy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"call-hierarchy.js","sourceRoot":"","sources":["../../src/features/call-hierarchy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=call-hierarchy.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"call-hierarchy.spec.d.ts","sourceRoot":"","sources":["../../src/features/call-hierarchy.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,107 @@
1
+ /*
2
+ * Copyright (C) 2022 TypeFox and others.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
5
+ * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
6
+ */
7
+ import * as chai from 'chai';
8
+ import { uri, createServer, positionAfter, documentFromFile } from './../test-utils.js';
9
+ const assert = chai.assert;
10
+ const diagnostics = new Map();
11
+ let server;
12
+ async function getIncomingCalls(server, item) {
13
+ const incomingCalls = await server.callHierarchyIncomingCalls({ item });
14
+ const children = await Promise.all((incomingCalls || []).map(incomingCall => getIncomingCalls(server, incomingCall.from)));
15
+ return {
16
+ ...item,
17
+ children,
18
+ };
19
+ }
20
+ async function getOutgoingCalls(server, item) {
21
+ const outgoingCalls = await server.callHierarchyOutgoingCalls({ item });
22
+ const children = await Promise.all((outgoingCalls || []).map(outgoingCall => getOutgoingCalls(server, outgoingCall.to)));
23
+ return {
24
+ ...item,
25
+ children,
26
+ };
27
+ }
28
+ function itemToString(item, indentLevel) {
29
+ if (!item) {
30
+ return '<not found>';
31
+ }
32
+ return `${new Array(indentLevel * 2 + 1).join(' ')}-|> ${item.name} (symbol: ${item.uri.split('/').pop()}#${item.selectionRange.start.line})`;
33
+ }
34
+ function callsToString(item, indentLevel, lines) {
35
+ for (const child of item.children) {
36
+ lines.push(itemToString(child, indentLevel + 1));
37
+ callsToString(child, indentLevel + 1, lines);
38
+ }
39
+ }
40
+ before(async () => {
41
+ server = await createServer({
42
+ rootUri: uri(),
43
+ publishDiagnostics: args => diagnostics.set(args.uri, args),
44
+ });
45
+ });
46
+ beforeEach(() => {
47
+ server.closeAll();
48
+ // "closeAll" triggers final publishDiagnostics with an empty list so clear last.
49
+ diagnostics.clear();
50
+ });
51
+ after(() => {
52
+ server.closeAll();
53
+ server.shutdown();
54
+ });
55
+ describe.only('call hierarchy', () => {
56
+ const oneDoc = documentFromFile({ path: 'call-hierarchy/one.ts' });
57
+ const twoDoc = documentFromFile({ path: 'call-hierarchy/two.ts' });
58
+ const threeDoc = documentFromFile({ path: 'call-hierarchy/three.ts' });
59
+ function openDocuments() {
60
+ for (const textDocument of [oneDoc, twoDoc, threeDoc]) {
61
+ server.didOpenTextDocument({ textDocument });
62
+ }
63
+ }
64
+ it('incoming calls', async () => {
65
+ openDocuments();
66
+ const items = await server.prepareCallHierarchy({
67
+ textDocument: twoDoc,
68
+ position: positionAfter(twoDoc, 'new Three().tada'),
69
+ });
70
+ assert.isNotNull(items);
71
+ assert.lengthOf(items, 1);
72
+ const lines = [];
73
+ for (const item of items) {
74
+ lines.push(itemToString(item, 0));
75
+ const incomingCalls = await getIncomingCalls(server, item);
76
+ callsToString(incomingCalls, 0, lines);
77
+ }
78
+ assert.equal(lines.join('\n'), `
79
+ -|> tada (symbol: three.ts#2)
80
+ -|> callThreeTwice (symbol: two.ts#3)
81
+ -|> main (symbol: one.ts#2)
82
+ `.trim());
83
+ });
84
+ it('outgoing calls', async () => {
85
+ openDocuments();
86
+ const items = await server.prepareCallHierarchy({
87
+ textDocument: oneDoc,
88
+ position: positionAfter(oneDoc, 'new Two().callThreeTwice'),
89
+ });
90
+ assert.isNotNull(items);
91
+ assert.lengthOf(items, 1);
92
+ const lines = [];
93
+ for (const item of items) {
94
+ lines.push(itemToString(item, 0));
95
+ const outgoingCalls = await getOutgoingCalls(server, item);
96
+ callsToString(outgoingCalls, 0, lines);
97
+ }
98
+ assert.equal(lines.join('\n'), `
99
+ -|> callThreeTwice (symbol: two.ts#3)
100
+ -|> tada (symbol: three.ts#2)
101
+ -|> print (symbol: three.ts#6)
102
+ -|> log (symbol: console.d.ts#220)
103
+ -|> Three (symbol: three.ts#1)
104
+ `.trim());
105
+ });
106
+ });
107
+ //# sourceMappingURL=call-hierarchy.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"call-hierarchy.spec.js","sourceRoot":"","sources":["../../src/features/call-hierarchy.spec.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,OAAO,EAAE,GAAG,EAAE,YAAY,EAAiB,aAAa,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEvG,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAE3B,MAAM,WAAW,GAA8C,IAAI,GAAG,EAAE,CAAC;AACzE,IAAI,MAAqB,CAAC;AAM1B,KAAK,UAAU,gBAAgB,CAAC,MAAqB,EAAE,IAA2B;IAC9E,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IACxE,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3H,OAAO;QACH,GAAG,IAAI;QACP,QAAQ;KACX,CAAC;AACN,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,MAAqB,EAAE,IAA2B;IAC9E,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IACxE,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACzH,OAAO;QACH,GAAG,IAAI;QACP,QAAQ;KACX,CAAC;AACN,CAAC;AAED,SAAS,YAAY,CAAC,IAAkC,EAAE,WAAmB;IACzE,IAAI,CAAC,IAAI,EAAE;QACP,OAAO,aAAa,CAAC;KACxB;IACD,OAAO,GAAG,IAAI,KAAK,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,IAAI,aAAa,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC;AAClJ,CAAC;AAED,SAAS,aAAa,CAAC,IAAmC,EAAE,WAAmB,EAAE,KAAe;IAC5F,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE;QAC/B,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC;QACjD,aAAa,CAAC,KAAK,EAAE,WAAW,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;KAChD;AACL,CAAC;AAED,MAAM,CAAC,KAAK,IAAI,EAAE;IACd,MAAM,GAAG,MAAM,YAAY,CAAC;QACxB,OAAO,EAAE,GAAG,EAAE;QACd,kBAAkB,EAAE,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC;KAC9D,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,UAAU,CAAC,GAAG,EAAE;IACZ,MAAM,CAAC,QAAQ,EAAE,CAAC;IAClB,iFAAiF;IACjF,WAAW,CAAC,KAAK,EAAE,CAAC;AACxB,CAAC,CAAC,CAAC;AAEH,KAAK,CAAC,GAAG,EAAE;IACP,MAAM,CAAC,QAAQ,EAAE,CAAC;IAClB,MAAM,CAAC,QAAQ,EAAE,CAAC;AACtB,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,EAAE;IACjC,MAAM,MAAM,GAAG,gBAAgB,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC;IACnE,MAAM,MAAM,GAAG,gBAAgB,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC;IACnE,MAAM,QAAQ,GAAG,gBAAgB,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC,CAAC;IAEvE,SAAS,aAAa;QAClB,KAAK,MAAM,YAAY,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE;YACnD,MAAM,CAAC,mBAAmB,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;SAChD;IACL,CAAC;IAED,EAAE,CAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE;QAC5B,aAAa,EAAE,CAAC;QAChB,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC;YAC5C,YAAY,EAAE,MAAM;YACpB,QAAQ,EAAE,aAAa,CAAC,MAAM,EAAE,kBAAkB,CAAC;SACtD,CAAC,CAAC;QACH,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACxB,MAAM,CAAC,QAAQ,CAAC,KAAM,EAAE,CAAC,CAAC,CAAC;QAC3B,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,MAAM,IAAI,IAAI,KAAM,EAAE;YACvB,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAClC,MAAM,aAAa,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC3D,aAAa,CAAC,aAAa,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;SAC1C;QACD,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAChB;;;;aAIR,CAAC,IAAI,EAAE,CACX,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE;QAC5B,aAAa,EAAE,CAAC;QAChB,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC;YAC5C,YAAY,EAAE,MAAM;YACpB,QAAQ,EAAE,aAAa,CAAC,MAAM,EAAE,0BAA0B,CAAC;SAC9D,CAAC,CAAC;QACH,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACxB,MAAM,CAAC,QAAQ,CAAC,KAAM,EAAE,CAAC,CAAC,CAAC;QAC3B,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,MAAM,IAAI,IAAI,KAAM,EAAE;YACvB,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAClC,MAAM,aAAa,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC3D,aAAa,CAAC,aAAa,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;SAC1C;QACD,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAChB;;;;;;CAMpB,CAAC,IAAI,EAAE,CACC,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { LspDocument } from './document.js';
1
+ import type { LspDocument } from '../document.js';
2
2
  /**
3
3
  * Transforms the semantic token spans given by the ts-server into lsp compatible spans.
4
4
  * @param doc the document we are operating on
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semantic-tokens.d.ts","sourceRoot":"","sources":["../../src/features/semantic-tokens.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAQlD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,GAAI,MAAM,EAAE,CAiC3E"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semantic-tokens.js","sourceRoot":"","sources":["../../src/features/semantic-tokens.ts"],"names":[],"mappings":"AAEA,+FAA+F;AAC/F,IAAK,mBAGJ;AAHD,WAAK,mBAAmB;IACpB,yEAAc,CAAA;IACd,+EAAoC,CAAA;AACxC,CAAC,EAHI,mBAAmB,KAAnB,mBAAmB,QAGvB;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,GAAgB,EAAE,KAAe;IAC5D,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,kBAAkB,GAAG,CAAC,CAAC;IAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;QACtC,0EAA0E;QAC1E,qCAAqC;QACrC,yBAAyB;QACzB,gDAAgD;QAChD,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACjC,MAAM,eAAe,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAErC,qHAAqH;QACrH,MAAM,aAAa,GAAG,eAAe,GAAG,mBAAmB,CAAC,YAAY,CAAC;QACzE,MAAM,SAAS,GAAG,CAAC,eAAe,IAAI,mBAAmB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAE1E,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACvD,uDAAuD;QACvD,uDAAuD;QACvD,iEAAiE;QACjE,yBAAyB;QACzB,2DAA2D;QAC3D,yCAAyC;QACzC,MAAM,SAAS,GAAG,IAAI,GAAG,YAAY,CAAC;QACtC,MAAM,UAAU,GAAG,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,GAAG,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC;QAEtF,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;QAE5E,kBAAkB,GAAG,SAAS,CAAC;QAC/B,YAAY,GAAG,IAAI,CAAC;KACvB;IACD,OAAO,QAAQ,CAAC;AACpB,CAAC"}