typescript-language-server 2.3.0 → 3.0.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.
- package/CHANGELOG.md +19 -0
- package/README.md +5 -117
- package/lib/features/call-hierarchy.d.ts +7 -0
- package/lib/features/call-hierarchy.d.ts.map +1 -0
- package/lib/features/call-hierarchy.js +81 -0
- package/lib/features/call-hierarchy.js.map +1 -0
- package/lib/features/call-hierarchy.spec.d.ts +2 -0
- package/lib/features/call-hierarchy.spec.d.ts.map +1 -0
- package/lib/features/call-hierarchy.spec.js +107 -0
- package/lib/features/call-hierarchy.spec.js.map +1 -0
- package/lib/{semantic-tokens.d.ts → features/semantic-tokens.d.ts} +1 -1
- package/lib/features/semantic-tokens.d.ts.map +1 -0
- package/lib/{semantic-tokens.js → features/semantic-tokens.js} +0 -0
- package/lib/features/semantic-tokens.js.map +1 -0
- package/lib/lsp-connection.d.ts.map +1 -1
- package/lib/lsp-connection.js +5 -7
- package/lib/lsp-connection.js.map +1 -1
- package/lib/lsp-server.d.ts +3 -4
- package/lib/lsp-server.d.ts.map +1 -1
- package/lib/lsp-server.js +36 -58
- package/lib/lsp-server.js.map +1 -1
- package/lib/lsp-server.spec.js +0 -128
- package/lib/lsp-server.spec.js.map +1 -1
- package/lib/protocol-translation.d.ts +1 -1
- package/lib/protocol-translation.d.ts.map +1 -1
- package/lib/test-utils.d.ts +4 -0
- package/lib/test-utils.d.ts.map +1 -1
- package/lib/test-utils.js +9 -0
- package/lib/test-utils.js.map +1 -1
- package/lib/tsServer/requests.d.ts +3 -0
- package/lib/tsServer/requests.d.ts.map +1 -1
- package/package.json +7 -7
- package/lib/calls.d.ts +0 -8
- package/lib/calls.d.ts.map +0 -1
- package/lib/calls.js +0 -191
- package/lib/calls.js.map +0 -1
- package/lib/lsp-protocol.calls.proposed.d.ts +0 -119
- package/lib/lsp-protocol.calls.proposed.d.ts.map +0 -1
- package/lib/lsp-protocol.calls.proposed.js +0 -39
- package/lib/lsp-protocol.calls.proposed.js.map +0 -1
- package/lib/lsp-protocol.inlayHints.proposed.d.ts +0 -27
- package/lib/lsp-protocol.inlayHints.proposed.d.ts.map +0 -1
- package/lib/lsp-protocol.inlayHints.proposed.js +0 -3
- package/lib/lsp-protocol.inlayHints.proposed.js.map +0 -1
- package/lib/semantic-tokens.d.ts.map +0 -1
- package/lib/semantic-tokens.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,25 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
All notable changes to this project will be documented in this file.
|
|
3
3
|
|
|
4
|
+
## [3.0.1](https://github.com/typescript-language-server/typescript-language-server/compare/v3.0.0...v3.0.1) (2022-12-30)
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
### Bug Fixes
|
|
8
|
+
|
|
9
|
+
* cancel pending geterr request before triggering new ([#651](https://github.com/typescript-language-server/typescript-language-server/issues/651)) ([95b92e5](https://github.com/typescript-language-server/typescript-language-server/commit/95b92e5d15f47eea77e08765a1e378dbcd90d1f0))
|
|
10
|
+
|
|
11
|
+
## [3.0.0](https://github.com/typescript-language-server/typescript-language-server/compare/v2.3.0...v3.0.0) (2022-12-29)
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### ⚠ BREAKING CHANGES
|
|
15
|
+
|
|
16
|
+
* Remove experimental and legacy implementations of inlay hints and call hierarchy. Use to the official `textDocument/inlayHint` and `textDocument/prepareCallHierarchy` implementations instead.
|
|
17
|
+
|
|
18
|
+
### Features
|
|
19
|
+
|
|
20
|
+
* 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))
|
|
21
|
+
* 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))
|
|
22
|
+
|
|
4
23
|
## [2.3.0](https://github.com/typescript-language-server/typescript-language-server/compare/v2.2.0...v2.3.0) (2022-12-27)
|
|
5
24
|
|
|
6
25
|
|
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 \(`
|
|
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 (`
|
|
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,6 +514,9 @@ 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
|
|
@@ -634,11 +527,6 @@ interface DefinitionSymbol {
|
|
|
634
527
|
- [x] workspace/didChangeConfiguration
|
|
635
528
|
- [x] workspace/executeCommand
|
|
636
529
|
|
|
637
|
-
### Experimental
|
|
638
|
-
|
|
639
|
-
- [x] textDocument/calls (experimental)
|
|
640
|
-
- [x] typescript/inlayHints (experimental, supported from Typescript v4.4.2) DEPRECATED (use `textDocument/inlayHint` instead)
|
|
641
|
-
|
|
642
530
|
## Development
|
|
643
531
|
|
|
644
532
|
### Build
|
|
@@ -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 @@
|
|
|
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":"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"}
|
|
@@ -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"}
|
|
File without changes
|
|
@@ -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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lsp-connection.d.ts","sourceRoot":"","sources":["../src/lsp-connection.ts"],"names":[],"mappings":"AAOA,OAAO,GAAG,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"lsp-connection.d.ts","sourceRoot":"","sources":["../src/lsp-connection.ts"],"names":[],"mappings":"AAOA,OAAO,GAAG,MAAM,+BAA+B,CAAC;AAIhD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,MAAM,WAAW,oBAAoB;IACjC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,2BAA2B,EAAE,gBAAgB,CAAC;IAC9C,gBAAgB,EAAE,GAAG,CAAC,WAAW,CAAC;CACrC;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,GAAG,GAAG,CAAC,UAAU,CA8CjF"}
|
package/lib/lsp-connection.js
CHANGED
|
@@ -5,8 +5,6 @@
|
|
|
5
5
|
* You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
6
6
|
*/
|
|
7
7
|
import lsp from 'vscode-languageserver/node.js';
|
|
8
|
-
import * as lspcalls from './lsp-protocol.calls.proposed.js';
|
|
9
|
-
import * as lspinlayHints from './lsp-protocol.inlayHints.proposed.js';
|
|
10
8
|
import { LspClientLogger } from './utils/logger.js';
|
|
11
9
|
import { LspServer } from './lsp-server.js';
|
|
12
10
|
import { LspClientImpl } from './lsp-client.js';
|
|
@@ -45,12 +43,12 @@ export function createLspConnection(options) {
|
|
|
45
43
|
connection.onSignatureHelp(server.signatureHelp.bind(server));
|
|
46
44
|
connection.onWorkspaceSymbol(server.workspaceSymbol.bind(server));
|
|
47
45
|
connection.onFoldingRanges(server.foldingRanges.bind(server));
|
|
46
|
+
connection.languages.callHierarchy.onPrepare(server.prepareCallHierarchy.bind(server));
|
|
47
|
+
connection.languages.callHierarchy.onIncomingCalls(server.callHierarchyIncomingCalls.bind(server));
|
|
48
|
+
connection.languages.callHierarchy.onOutgoingCalls(server.callHierarchyOutgoingCalls.bind(server));
|
|
48
49
|
connection.languages.inlayHint.on(server.inlayHints.bind(server));
|
|
49
|
-
|
|
50
|
-
connection.
|
|
51
|
-
connection.onRequest(lspinlayHints.type, server.inlayHintsLegacy.bind(server));
|
|
52
|
-
connection.onRequest(lsp.SemanticTokensRequest.type, server.semanticTokensFull.bind(server));
|
|
53
|
-
connection.onRequest(lsp.SemanticTokensRangeRequest.type, server.semanticTokensRange.bind(server));
|
|
50
|
+
connection.languages.semanticTokens.on(server.semanticTokensFull.bind(server));
|
|
51
|
+
connection.languages.semanticTokens.onRange(server.semanticTokensRange.bind(server));
|
|
54
52
|
return connection;
|
|
55
53
|
}
|
|
56
54
|
//# sourceMappingURL=lsp-connection.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lsp-connection.js","sourceRoot":"","sources":["../src/lsp-connection.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,GAAG,MAAM,+BAA+B,CAAC;AAChD,OAAO,
|
|
1
|
+
{"version":3,"file":"lsp-connection.js","sourceRoot":"","sources":["../src/lsp-connection.ts"],"names":[],"mappings":"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"}
|
package/lib/lsp-server.d.ts
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import * as lsp from 'vscode-languageserver';
|
|
2
|
-
import * as lspcalls from './lsp-protocol.calls.proposed.js';
|
|
3
|
-
import * as lspinlayHints from './lsp-protocol.inlayHints.proposed.js';
|
|
4
2
|
import { LspDocument } from './document.js';
|
|
5
3
|
import { tsp, TypeScriptInitializeParams } from './ts-protocol.js';
|
|
6
4
|
import { TypeScriptServiceConfiguration } from './utils/configuration.js';
|
|
@@ -77,9 +75,10 @@ export declare class LspServer {
|
|
|
77
75
|
protected asFoldingRange(span: tsp.OutliningSpan, document: LspDocument): lsp.FoldingRange | undefined;
|
|
78
76
|
protected asFoldingRangeKind(span: tsp.OutliningSpan): lsp.FoldingRangeKind | undefined;
|
|
79
77
|
protected onTsEvent(event: tsp.Event): Promise<void>;
|
|
80
|
-
|
|
78
|
+
prepareCallHierarchy(params: lsp.CallHierarchyPrepareParams): Promise<lsp.CallHierarchyItem[] | null>;
|
|
79
|
+
callHierarchyIncomingCalls(params: lsp.CallHierarchyIncomingCallsParams): Promise<lsp.CallHierarchyIncomingCall[] | null>;
|
|
80
|
+
callHierarchyOutgoingCalls(params: lsp.CallHierarchyOutgoingCallsParams): Promise<lsp.CallHierarchyOutgoingCall[] | null>;
|
|
81
81
|
inlayHints(params: lsp.InlayHintParams): Promise<lsp.InlayHint[] | undefined>;
|
|
82
|
-
inlayHintsLegacy(params: lspinlayHints.InlayHintsParams): Promise<lspinlayHints.InlayHintsResult>;
|
|
83
82
|
semanticTokensFull(params: lsp.SemanticTokensParams): Promise<lsp.SemanticTokens>;
|
|
84
83
|
semanticTokensRange(params: lsp.SemanticTokensRangeParams): Promise<lsp.SemanticTokens>;
|
|
85
84
|
getSemanticTokens(doc: LspDocument, file: string, startOffset: number, endOffset: number): Promise<lsp.SemanticTokens>;
|
package/lib/lsp-server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lsp-server.d.ts","sourceRoot":"","sources":["../src/lsp-server.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,GAAG,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"lsp-server.d.ts","sourceRoot":"","sources":["../src/lsp-server.ts"],"names":[],"mappings":"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"}
|