typescript-language-server 2.3.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 (46) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +5 -117
  3. package/lib/features/call-hierarchy.d.ts +7 -0
  4. package/lib/features/call-hierarchy.d.ts.map +1 -0
  5. package/lib/features/call-hierarchy.js +81 -0
  6. package/lib/features/call-hierarchy.js.map +1 -0
  7. package/lib/features/call-hierarchy.spec.d.ts +2 -0
  8. package/lib/features/call-hierarchy.spec.d.ts.map +1 -0
  9. package/lib/features/call-hierarchy.spec.js +107 -0
  10. package/lib/features/call-hierarchy.spec.js.map +1 -0
  11. package/lib/{semantic-tokens.d.ts → features/semantic-tokens.d.ts} +1 -1
  12. package/lib/features/semantic-tokens.d.ts.map +1 -0
  13. package/lib/{semantic-tokens.js → features/semantic-tokens.js} +0 -0
  14. package/lib/features/semantic-tokens.js.map +1 -0
  15. package/lib/lsp-connection.d.ts.map +1 -1
  16. package/lib/lsp-connection.js +5 -7
  17. package/lib/lsp-connection.js.map +1 -1
  18. package/lib/lsp-server.d.ts +3 -4
  19. package/lib/lsp-server.d.ts.map +1 -1
  20. package/lib/lsp-server.js +35 -58
  21. package/lib/lsp-server.js.map +1 -1
  22. package/lib/lsp-server.spec.js +0 -128
  23. package/lib/lsp-server.spec.js.map +1 -1
  24. package/lib/protocol-translation.d.ts +1 -1
  25. package/lib/protocol-translation.d.ts.map +1 -1
  26. package/lib/test-utils.d.ts +4 -0
  27. package/lib/test-utils.d.ts.map +1 -1
  28. package/lib/test-utils.js +9 -0
  29. package/lib/test-utils.js.map +1 -1
  30. package/lib/tsServer/requests.d.ts +3 -0
  31. package/lib/tsServer/requests.d.ts.map +1 -1
  32. package/package.json +7 -7
  33. package/lib/calls.d.ts +0 -8
  34. package/lib/calls.d.ts.map +0 -1
  35. package/lib/calls.js +0 -191
  36. package/lib/calls.js.map +0 -1
  37. package/lib/lsp-protocol.calls.proposed.d.ts +0 -119
  38. package/lib/lsp-protocol.calls.proposed.d.ts.map +0 -1
  39. package/lib/lsp-protocol.calls.proposed.js +0 -39
  40. package/lib/lsp-protocol.calls.proposed.js.map +0 -1
  41. package/lib/lsp-protocol.inlayHints.proposed.d.ts +0 -27
  42. package/lib/lsp-protocol.inlayHints.proposed.d.ts.map +0 -1
  43. package/lib/lsp-protocol.inlayHints.proposed.js +0 -3
  44. package/lib/lsp-protocol.inlayHints.proposed.js.map +0 -1
  45. package/lib/semantic-tokens.d.ts.map +0 -1
  46. package/lib/semantic-tokens.js.map +0 -1
package/lib/calls.js DELETED
@@ -1,191 +0,0 @@
1
- import * as lsp from 'vscode-languageserver';
2
- import * as lspcalls from './lsp-protocol.calls.proposed.js';
3
- import { tsp } from './ts-protocol.js';
4
- import { uriToPath, toLocation, toSymbolKind, pathToUri } from './protocol-translation.js';
5
- import { Range } from './utils/typeConverters.js';
6
- export async function computeCallers(tspClient, args) {
7
- const nullResult = { calls: [] };
8
- const contextDefinition = await getDefinition(tspClient, args);
9
- if (!contextDefinition) {
10
- return nullResult;
11
- }
12
- const contextSymbol = await findEnclosingSymbol(tspClient, contextDefinition);
13
- if (!contextSymbol) {
14
- return nullResult;
15
- }
16
- const callerReferences = await findNonDefinitionReferences(tspClient, contextDefinition);
17
- const calls = [];
18
- for (const callerReference of callerReferences) {
19
- const symbol = await findEnclosingSymbol(tspClient, callerReference);
20
- if (!symbol) {
21
- continue;
22
- }
23
- const location = toLocation(callerReference, undefined);
24
- calls.push({
25
- location,
26
- symbol,
27
- });
28
- }
29
- return { calls, symbol: contextSymbol };
30
- }
31
- export async function computeCallees(tspClient, args, documentProvider) {
32
- const nullResult = { calls: [] };
33
- const contextDefinition = await getDefinition(tspClient, args);
34
- if (!contextDefinition) {
35
- return nullResult;
36
- }
37
- const contextSymbol = await findEnclosingSymbol(tspClient, contextDefinition);
38
- if (!contextSymbol) {
39
- return nullResult;
40
- }
41
- const outgoingCallReferences = await findOutgoingCalls(tspClient, contextSymbol, documentProvider);
42
- const calls = [];
43
- for (const reference of outgoingCallReferences) {
44
- const definitionReferences = await findDefinitionReferences(tspClient, reference);
45
- const definitionReference = definitionReferences[0];
46
- if (!definitionReference) {
47
- continue;
48
- }
49
- const definitionSymbol = await findEnclosingSymbol(tspClient, definitionReference);
50
- if (!definitionSymbol) {
51
- continue;
52
- }
53
- const location = toLocation(reference, undefined);
54
- calls.push({
55
- location,
56
- symbol: definitionSymbol,
57
- });
58
- }
59
- return { calls, symbol: contextSymbol };
60
- }
61
- async function findOutgoingCalls(tspClient, contextSymbol, documentProvider) {
62
- /**
63
- * The TSP does not provide call references.
64
- * As long as we are not able to access the AST in a tsserver plugin and return the information necessary as metadata to the reponse,
65
- * we need to test possible calls.
66
- */
67
- const computeCallCandidates = (document, range) => {
68
- const symbolText = document.getText(range);
69
- const regex = /\W([$_a-zA-Z0-9\u{00C0}-\u{E007F}]+)(<.*>)?\(/gmu; // Example: matches `candidate` in " candidate()", "Foo.candidate<T>()", etc.
70
- let match = regex.exec(symbolText);
71
- const candidates = [];
72
- while (match) {
73
- const identifier = match[1];
74
- if (identifier) {
75
- const start = match.index + match[0].indexOf(identifier);
76
- const end = start + identifier.length;
77
- candidates.push({ identifier, start, end });
78
- }
79
- match = regex.exec(symbolText);
80
- }
81
- const offset = document.offsetAt(range.start);
82
- const candidateRanges = candidates.map(c => lsp.Range.create(document.positionAt(offset + c.start), document.positionAt(offset + c.end)));
83
- return candidateRanges;
84
- };
85
- /**
86
- * This function tests a candidate and returns a locaion for a valid call.
87
- */
88
- const validateCall = async (file, candidateRange) => {
89
- const tspPosition = { line: candidateRange.start.line + 1, offset: candidateRange.start.character + 1 };
90
- const references = await findNonDefinitionReferences(tspClient, { file, start: tspPosition, end: tspPosition });
91
- for (const reference of references) {
92
- const tspPosition = { line: candidateRange.start.line + 1, offset: candidateRange.start.character + 1 };
93
- if (tspPosition.line === reference.start.line) {
94
- return reference;
95
- }
96
- }
97
- };
98
- const calls = [];
99
- const file = uriToPath(contextSymbol.location.uri);
100
- const document = documentProvider(file);
101
- if (!document) {
102
- return calls;
103
- }
104
- const candidateRanges = computeCallCandidates(document, contextSymbol.location.range);
105
- for (const candidateRange of candidateRanges) {
106
- const call = await validateCall(file, candidateRange);
107
- if (call) {
108
- calls.push(call);
109
- }
110
- }
111
- return calls;
112
- }
113
- async function getDefinition(tspClient, args) {
114
- const file = uriToPath(args.textDocument.uri);
115
- if (!file) {
116
- return undefined;
117
- }
118
- const definitionResult = await tspClient.request(tsp.CommandTypes.Definition, {
119
- file,
120
- line: args.position.line + 1,
121
- offset: args.position.character + 1,
122
- });
123
- return definitionResult.body ? definitionResult.body[0] : undefined;
124
- }
125
- async function findEnclosingSymbol(tspClient, args) {
126
- const file = args.file;
127
- const response = await tspClient.request(tsp.CommandTypes.NavTree, { file });
128
- const tree = response.body;
129
- if (!tree?.childItems) {
130
- return undefined;
131
- }
132
- const pos = lsp.Position.create(args.start.line - 1, args.start.offset - 1);
133
- const symbol = findEnclosingSymbolInTree(tree, lsp.Range.create(pos, pos));
134
- if (!symbol) {
135
- return undefined;
136
- }
137
- const uri = pathToUri(file, undefined);
138
- return lspcalls.DefinitionSymbol.create(uri, symbol);
139
- }
140
- function findEnclosingSymbolInTree(parent, range) {
141
- const inSpan = (span) => !!Range.intersection(Range.fromTextSpan(span), range);
142
- const inTree = (tree) => tree.spans.some(span => inSpan(span));
143
- let candidate = inTree(parent) ? parent : undefined;
144
- outer: while (candidate) {
145
- const children = candidate.childItems || [];
146
- for (const child of children) {
147
- if (inTree(child)) {
148
- candidate = child;
149
- continue outer;
150
- }
151
- }
152
- break;
153
- }
154
- if (!candidate) {
155
- return undefined;
156
- }
157
- const span = candidate.spans.find(span => inSpan(span));
158
- const spanRange = Range.fromTextSpan(span);
159
- let selectionRange = spanRange;
160
- if (candidate.nameSpan) {
161
- const nameRange = Range.fromTextSpan(candidate.nameSpan);
162
- if (Range.intersection(spanRange, nameRange)) {
163
- selectionRange = nameRange;
164
- }
165
- }
166
- return {
167
- name: candidate.text,
168
- kind: toSymbolKind(candidate.kind),
169
- range: spanRange,
170
- selectionRange: selectionRange,
171
- };
172
- }
173
- async function findDefinitionReferences(tspClient, args) {
174
- return (await findReferences(tspClient, args)).filter(ref => ref.isDefinition);
175
- }
176
- async function findNonDefinitionReferences(tspClient, args) {
177
- return (await findReferences(tspClient, args)).filter(ref => !ref.isDefinition);
178
- }
179
- async function findReferences(tspClient, args) {
180
- const file = args.file;
181
- const result = await tspClient.request(tsp.CommandTypes.References, {
182
- file,
183
- line: args.start.line,
184
- offset: args.start.offset,
185
- });
186
- if (!result.body) {
187
- return [];
188
- }
189
- return result.body.refs;
190
- }
191
- //# sourceMappingURL=calls.js.map
package/lib/calls.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"calls.js","sourceRoot":"","sources":["../src/calls.ts"],"names":[],"mappings":"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"}
@@ -1,119 +0,0 @@
1
- import { RequestHandler } from 'vscode-jsonrpc';
2
- import { Location, SymbolKind, Range, DocumentSymbol } from 'vscode-languageserver-types';
3
- import * as lsp from 'vscode-languageserver';
4
- export interface CallsClientCapabilities {
5
- /**
6
- * The text document client capabilities
7
- */
8
- textDocument?: {
9
- /**
10
- * Capabilities specific to the `textDocument/calls`
11
- */
12
- calls?: {
13
- /**
14
- * Whether implementation supports dynamic registration. If this is set to `true`
15
- * the client supports the new `(TextDocumentRegistrationOptions & StaticRegistrationOptions)`
16
- * return value for the corresponding server capability as well.
17
- */
18
- dynamicRegistration?: boolean;
19
- };
20
- };
21
- }
22
- export interface CallsServerCapabilities {
23
- /**
24
- * The server provides Call Hierarchy support.
25
- */
26
- callsProvider?: boolean | (lsp.TextDocumentRegistrationOptions & lsp.StaticRegistrationOptions);
27
- }
28
- /**
29
- * A request to resolve all calls at a given text document position of a symbol definition or a call the same.
30
- * The request's parameter is of type [CallsParams](#CallsParams), the response is of type [CallsResult](#CallsResult) or a
31
- * Thenable that resolves to such.
32
- */
33
- export declare namespace CallsRequest {
34
- const type: lsp.RequestType<CallsParams, CallsResult, lsp.TextDocumentRegistrationOptions>;
35
- type HandlerSignature = RequestHandler<CallsParams, CallsResult | null, void>;
36
- }
37
- /**
38
- * The parameters of a `textDocument/calls` request.
39
- */
40
- export interface CallsParams extends lsp.TextDocumentPositionParams {
41
- /**
42
- * Outgoing direction for callees.
43
- * The default is incoming for callers.
44
- */
45
- direction?: CallDirection;
46
- }
47
- /**
48
- * Enum of call direction kinds
49
- */
50
- export declare enum CallDirection {
51
- /**
52
- * Incoming calls aka. callers
53
- */
54
- Incoming = "incoming",
55
- /**
56
- * Outgoing calls aka. callees
57
- */
58
- Outgoing = "outgoing"
59
- }
60
- /**
61
- * The result of a `textDocument/calls` request.
62
- */
63
- export interface CallsResult {
64
- /**
65
- * The symbol of a definition for which the request was made.
66
- *
67
- * If no definition is found at a given text document position, the symbol is undefined.
68
- */
69
- symbol?: DefinitionSymbol;
70
- /**
71
- * List of calls.
72
- */
73
- calls: Call[];
74
- }
75
- /**
76
- * Represents a directed call.
77
- *
78
- *
79
- */
80
- export interface Call {
81
- /**
82
- * Actual location of a call to a definition.
83
- */
84
- location: Location;
85
- /**
86
- * Symbol refered to by this call. For outgoing calls this is a callee,
87
- * otherwise a caller.
88
- */
89
- symbol: DefinitionSymbol;
90
- }
91
- export interface DefinitionSymbol {
92
- /**
93
- * The name of this symbol.
94
- */
95
- name: string;
96
- /**
97
- * More detail for this symbol, e.g the signature of a function.
98
- */
99
- detail?: string;
100
- /**
101
- * The kind of this symbol.
102
- */
103
- kind: SymbolKind;
104
- /**
105
- * The range enclosing this symbol not including leading/trailing whitespace but everything else
106
- * like comments. This information is typically used to determine if the the clients cursor is
107
- * inside the symbol to reveal in the symbol in the UI.
108
- */
109
- location: Location;
110
- /**
111
- * The range that should be selected and revealed when this symbol is being picked, e.g the name of a function.
112
- * Must be contained by the the `range`.
113
- */
114
- selectionRange: Range;
115
- }
116
- export declare namespace DefinitionSymbol {
117
- function create(uri: string, symbol: DocumentSymbol): DefinitionSymbol;
118
- }
119
- //# sourceMappingURL=lsp-protocol.calls.proposed.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lsp-protocol.calls.proposed.d.ts","sourceRoot":"","sources":["../src/lsp-protocol.calls.proposed.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC1F,OAAO,KAAK,GAAG,MAAM,uBAAuB,CAAC;AAE7C,MAAM,WAAW,uBAAuB;IACpC;;OAEG;IACH,YAAY,CAAC,EAAE;QACX;;WAEG;QACH,KAAK,CAAC,EAAE;YACJ;;;;eAIG;YACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;SACjC,CAAC;KACL,CAAC;CACL;AAED,MAAM,WAAW,uBAAuB;IACpC;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,GAAG,CAAC,GAAG,CAAC,+BAA+B,GAAG,GAAG,CAAC,yBAAyB,CAAC,CAAC;CACnG;AAED;;;;GAIG;AACH,yBAAiB,YAAY,CAAC;IACnB,MAAM,IAAI,gFAA2G,CAAC;IAC7H,KAAY,gBAAgB,GAAG,cAAc,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC;CACxF;AAED;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,GAAG,CAAC,0BAA0B;IAC/D;;;OAGG;IACH,SAAS,CAAC,EAAE,aAAa,CAAC;CAC7B;AAED;;GAEG;AACH,oBAAY,aAAa;IACrB;;OAEG;IACH,QAAQ,aAAa;IACrB;;OAEG;IACH,QAAQ,aAAa;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IACxB;;;;OAIG;IACH,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B;;OAEG;IACH,KAAK,EAAE,IAAI,EAAE,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,IAAI;IACjB;;OAEG;IACH,QAAQ,EAAE,QAAQ,CAAC;IACnB;;;OAGG;IACH,MAAM,EAAE,gBAAgB,CAAC;CAC5B;AAED,MAAM,WAAW,gBAAgB;IAC7B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,IAAI,EAAE,UAAU,CAAC;IACjB;;;;OAIG;IACH,QAAQ,EAAE,QAAQ,CAAC;IACnB;;;OAGG;IACH,cAAc,EAAE,KAAK,CAAC;CACzB;AAED,yBAAiB,gBAAgB,CAAC;IAC9B,SAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,gBAAgB,CAI5E;CACJ"}
@@ -1,39 +0,0 @@
1
- /* --------------------------------------------------------------------------------------------
2
- * Copyright (c) TypeFox and others. All rights reserved.
3
- * Licensed under the MIT License. See License.txt in the project root for license information.
4
- * ------------------------------------------------------------------------------------------ */
5
- 'use strict';
6
- import * as lsp from 'vscode-languageserver';
7
- /**
8
- * A request to resolve all calls at a given text document position of a symbol definition or a call the same.
9
- * The request's parameter is of type [CallsParams](#CallsParams), the response is of type [CallsResult](#CallsResult) or a
10
- * Thenable that resolves to such.
11
- */
12
- export var CallsRequest;
13
- (function (CallsRequest) {
14
- CallsRequest.type = new lsp.RequestType('textDocument/calls');
15
- })(CallsRequest = CallsRequest || (CallsRequest = {}));
16
- /**
17
- * Enum of call direction kinds
18
- */
19
- export var CallDirection;
20
- (function (CallDirection) {
21
- /**
22
- * Incoming calls aka. callers
23
- */
24
- CallDirection["Incoming"] = "incoming";
25
- /**
26
- * Outgoing calls aka. callees
27
- */
28
- CallDirection["Outgoing"] = "outgoing";
29
- })(CallDirection = CallDirection || (CallDirection = {}));
30
- export var DefinitionSymbol;
31
- (function (DefinitionSymbol) {
32
- function create(uri, symbol) {
33
- const { name, detail, kind, range, selectionRange } = symbol;
34
- const location = { uri, range };
35
- return { name, detail, kind, location, selectionRange };
36
- }
37
- DefinitionSymbol.create = create;
38
- })(DefinitionSymbol = DefinitionSymbol || (DefinitionSymbol = {}));
39
- //# sourceMappingURL=lsp-protocol.calls.proposed.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lsp-protocol.calls.proposed.js","sourceRoot":"","sources":["../src/lsp-protocol.calls.proposed.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG,YAAY,CAAC;AAIb,OAAO,KAAK,GAAG,MAAM,uBAAuB,CAAC;AA4B7C;;;;GAIG;AACH,MAAM,KAAW,YAAY,CAG5B;AAHD,WAAiB,YAAY;IACZ,iBAAI,GAAG,IAAI,GAAG,CAAC,WAAW,CAAgE,oBAAoB,CAAC,CAAC;AAEjI,CAAC,EAHgB,YAAY,GAAZ,YAAY,KAAZ,YAAY,QAG5B;AAaD;;GAEG;AACH,MAAM,CAAN,IAAY,aASX;AATD,WAAY,aAAa;IACrB;;OAEG;IACH,sCAAqB,CAAA;IACrB;;OAEG;IACH,sCAAqB,CAAA;AACzB,CAAC,EATW,aAAa,GAAb,aAAa,KAAb,aAAa,QASxB;AA6DD,MAAM,KAAW,gBAAgB,CAMhC;AAND,WAAiB,gBAAgB;IAC7B,SAAgB,MAAM,CAAC,GAAW,EAAE,MAAsB;QACtD,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,MAAM,CAAC;QAC7D,MAAM,QAAQ,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;QAChC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC5D,CAAC;IAJe,uBAAM,SAIrB,CAAA;AACL,CAAC,EANgB,gBAAgB,GAAhB,gBAAgB,KAAhB,gBAAgB,QAMhC"}
@@ -1,27 +0,0 @@
1
- import * as lsp from 'vscode-languageserver';
2
- import { RequestHandler } from 'vscode-jsonrpc';
3
- import type { tsp } from './ts-protocol.js';
4
- export type InlayHintsParams = {
5
- /**
6
- * The document to format.
7
- */
8
- textDocument: lsp.TextDocumentIdentifier;
9
- /**
10
- * The range to format
11
- */
12
- range?: lsp.Range;
13
- };
14
- type InlayHint = {
15
- text: string;
16
- position: lsp.Position;
17
- kind: tsp.InlayHintKind;
18
- whitespaceBefore?: boolean;
19
- whitespaceAfter?: boolean;
20
- };
21
- export type InlayHintsResult = {
22
- inlayHints: InlayHint[];
23
- };
24
- export declare const type: lsp.RequestType<InlayHintsParams, InlayHintsResult, lsp.TextDocumentRegistrationOptions>;
25
- export type HandlerSignature = RequestHandler<InlayHintsParams, InlayHintsResult | null, void>;
26
- export {};
27
- //# sourceMappingURL=lsp-protocol.inlayHints.proposed.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lsp-protocol.inlayHints.proposed.d.ts","sourceRoot":"","sources":["../src/lsp-protocol.inlayHints.proposed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAE5C,MAAM,MAAM,gBAAgB,GAAG;IAC3B;;OAEG;IACH,YAAY,EAAE,GAAG,CAAC,sBAAsB,CAAC;IACzC;;OAEG;IACH,KAAK,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC;CACrB,CAAC;AAEF,KAAK,SAAS,GAAG;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC;IACvB,IAAI,EAAE,GAAG,CAAC,aAAa,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC3B,UAAU,EAAE,SAAS,EAAE,CAAC;CAC3B,CAAC;AAEF,eAAO,MAAM,IAAI,0FAAwH,CAAC;AAE1I,MAAM,MAAM,gBAAgB,GAAG,cAAc,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC"}
@@ -1,3 +0,0 @@
1
- import * as lsp from 'vscode-languageserver';
2
- export const type = new lsp.RequestType('typescript/inlayHints');
3
- //# sourceMappingURL=lsp-protocol.inlayHints.proposed.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lsp-protocol.inlayHints.proposed.js","sourceRoot":"","sources":["../src/lsp-protocol.inlayHints.proposed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,uBAAuB,CAAC;AA2B7C,MAAM,CAAC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,WAAW,CAA0E,uBAAuB,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"semantic-tokens.d.ts","sourceRoot":"","sources":["../src/semantic-tokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAQ5C;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,GAAI,MAAM,EAAE,CAiC3E"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"semantic-tokens.js","sourceRoot":"","sources":["../src/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"}