typescript-language-server 1.0.0 → 1.1.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 (95) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/README.md +128 -21
  3. package/lib/calls.d.ts +1 -1
  4. package/lib/calls.d.ts.map +1 -1
  5. package/lib/calls.js +140 -164
  6. package/lib/calls.js.map +1 -1
  7. package/lib/cli.js +1 -1
  8. package/lib/commands.d.ts +1 -0
  9. package/lib/commands.d.ts.map +1 -1
  10. package/lib/commands.js +3 -1
  11. package/lib/commands.js.map +1 -1
  12. package/lib/completion.d.ts +4 -7
  13. package/lib/completion.d.ts.map +1 -1
  14. package/lib/completion.js +64 -66
  15. package/lib/completion.js.map +1 -1
  16. package/lib/configuration-manager.d.ts +47 -0
  17. package/lib/configuration-manager.d.ts.map +1 -0
  18. package/lib/configuration-manager.js +105 -0
  19. package/lib/configuration-manager.js.map +1 -0
  20. package/lib/diagnostic-queue.d.ts +5 -4
  21. package/lib/diagnostic-queue.d.ts.map +1 -1
  22. package/lib/diagnostic-queue.js +7 -8
  23. package/lib/diagnostic-queue.js.map +1 -1
  24. package/lib/document-symbol.d.ts.map +1 -1
  25. package/lib/document-symbol.js +11 -10
  26. package/lib/document-symbol.js.map +1 -1
  27. package/lib/features/fix-all.d.ts.map +1 -1
  28. package/lib/features/fix-all.js +96 -112
  29. package/lib/features/fix-all.js.map +1 -1
  30. package/lib/features/inlay-hints.d.ts +11 -0
  31. package/lib/features/inlay-hints.d.ts.map +1 -0
  32. package/lib/features/inlay-hints.js +70 -0
  33. package/lib/features/inlay-hints.js.map +1 -0
  34. package/lib/features/source-definition.d.ts +11 -0
  35. package/lib/features/source-definition.d.ts.map +1 -0
  36. package/lib/features/source-definition.js +50 -0
  37. package/lib/features/source-definition.js.map +1 -0
  38. package/lib/file-lsp-server.spec.js +16 -25
  39. package/lib/file-lsp-server.spec.js.map +1 -1
  40. package/lib/hover.d.ts +2 -1
  41. package/lib/hover.d.ts.map +1 -1
  42. package/lib/hover.js +47 -7
  43. package/lib/hover.js.map +1 -1
  44. package/lib/logger.js +1 -1
  45. package/lib/logger.js.map +1 -1
  46. package/lib/lsp-client.d.ts +11 -15
  47. package/lib/lsp-client.d.ts.map +1 -1
  48. package/lib/lsp-client.js +29 -61
  49. package/lib/lsp-client.js.map +1 -1
  50. package/lib/lsp-connection.d.ts.map +1 -1
  51. package/lib/lsp-connection.js +3 -2
  52. package/lib/lsp-connection.js.map +1 -1
  53. package/lib/lsp-protocol.inlayHints.proposed.d.ts +0 -9
  54. package/lib/lsp-protocol.inlayHints.proposed.d.ts.map +1 -1
  55. package/lib/lsp-server.d.ts +15 -20
  56. package/lib/lsp-server.d.ts.map +1 -1
  57. package/lib/lsp-server.js +806 -901
  58. package/lib/lsp-server.js.map +1 -1
  59. package/lib/lsp-server.spec.js +772 -495
  60. package/lib/lsp-server.spec.js.map +1 -1
  61. package/lib/organize-imports.spec.js +8 -8
  62. package/lib/protocol-translation.d.ts +2 -7
  63. package/lib/protocol-translation.d.ts.map +1 -1
  64. package/lib/protocol-translation.js +19 -106
  65. package/lib/protocol-translation.js.map +1 -1
  66. package/lib/quickfix.js +1 -1
  67. package/lib/refactor.js +5 -1
  68. package/lib/refactor.js.map +1 -1
  69. package/lib/test-utils.d.ts +4 -3
  70. package/lib/test-utils.d.ts.map +1 -1
  71. package/lib/test-utils.js +103 -77
  72. package/lib/test-utils.js.map +1 -1
  73. package/lib/ts-protocol.d.ts +4 -19
  74. package/lib/ts-protocol.d.ts.map +1 -1
  75. package/lib/ts-protocol.js.map +1 -1
  76. package/lib/tsp-client.d.ts +36 -32
  77. package/lib/tsp-client.d.ts.map +1 -1
  78. package/lib/tsp-client.js +9 -7
  79. package/lib/tsp-client.js.map +1 -1
  80. package/lib/tsp-client.spec.js +26 -33
  81. package/lib/tsp-client.spec.js.map +1 -1
  82. package/lib/tsp-command-types.d.ts +1 -0
  83. package/lib/tsp-command-types.d.ts.map +1 -1
  84. package/lib/tsp-command-types.js +1 -1
  85. package/lib/tsp-command-types.js.map +1 -1
  86. package/lib/utils/typeConverters.d.ts +19 -1
  87. package/lib/utils/typeConverters.d.ts.map +1 -1
  88. package/lib/utils/typeConverters.js +103 -4
  89. package/lib/utils/typeConverters.js.map +1 -1
  90. package/lib/utils/versionProvider.js +17 -19
  91. package/lib/utils/versionProvider.js.map +1 -1
  92. package/lib/utils.d.ts.map +1 -1
  93. package/lib/utils.js +2 -0
  94. package/lib/utils.js.map +1 -1
  95. package/package.json +10 -7
@@ -4,22 +4,23 @@
4
4
  * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
5
5
  * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
6
6
  */
7
- import { asRange, toSymbolKind, Range } from './protocol-translation.js';
7
+ import { toSymbolKind } from './protocol-translation.js';
8
8
  import { ScriptElementKind } from './tsp-command-types.js';
9
+ import { Range } from './utils/typeConverters.js';
9
10
  export function collectDocumentSymbols(parent, symbols) {
10
- return collectDocumentSymbolsInRange(parent, symbols, { start: asRange(parent.spans[0]).start, end: asRange(parent.spans[parent.spans.length - 1]).end });
11
+ return collectDocumentSymbolsInRange(parent, symbols, { start: Range.fromTextSpan(parent.spans[0]).start, end: Range.fromTextSpan(parent.spans[parent.spans.length - 1]).end });
11
12
  }
12
13
  function collectDocumentSymbolsInRange(parent, symbols, range) {
13
14
  let shouldInclude = shouldIncludeEntry(parent);
14
15
  for (const span of parent.spans) {
15
- const spanRange = asRange(span);
16
+ const spanRange = Range.fromTextSpan(span);
16
17
  if (!Range.intersection(range, spanRange)) {
17
18
  continue;
18
19
  }
19
20
  const children = [];
20
21
  if (parent.childItems) {
21
22
  for (const child of parent.childItems) {
22
- if (child.spans.some(childSpan => !!Range.intersection(spanRange, asRange(childSpan)))) {
23
+ if (child.spans.some(childSpan => !!Range.intersection(spanRange, Range.fromTextSpan(childSpan)))) {
23
24
  const includedChild = collectDocumentSymbolsInRange(child, children, spanRange);
24
25
  shouldInclude = shouldInclude || includedChild;
25
26
  }
@@ -27,7 +28,7 @@ function collectDocumentSymbolsInRange(parent, symbols, range) {
27
28
  }
28
29
  let selectionRange = spanRange;
29
30
  if (parent.nameSpan) {
30
- const nameRange = asRange(parent.nameSpan);
31
+ const nameRange = Range.fromTextSpan(parent.nameSpan);
31
32
  // In the case of mergeable definitions, the nameSpan is only correct for the first definition.
32
33
  if (Range.intersection(spanRange, nameRange)) {
33
34
  selectionRange = nameRange;
@@ -40,7 +41,7 @@ function collectDocumentSymbolsInRange(parent, symbols, range) {
40
41
  kind: toSymbolKind(parent.kind),
41
42
  range: spanRange,
42
43
  selectionRange: selectionRange,
43
- children
44
+ children,
44
45
  });
45
46
  }
46
47
  }
@@ -50,11 +51,11 @@ export function collectSymbolInformation(uri, current, symbols, containerName) {
50
51
  let shouldInclude = shouldIncludeEntry(current);
51
52
  const name = current.text;
52
53
  for (const span of current.spans) {
53
- const range = asRange(span);
54
+ const range = Range.fromTextSpan(span);
54
55
  const children = [];
55
56
  if (current.childItems) {
56
57
  for (const child of current.childItems) {
57
- if (child.spans.some(span => !!Range.intersection(range, asRange(span)))) {
58
+ if (child.spans.some(span => !!Range.intersection(range, Range.fromTextSpan(span)))) {
58
59
  const includedChild = collectSymbolInformation(uri, child, children, name);
59
60
  shouldInclude = shouldInclude || includedChild;
60
61
  }
@@ -66,9 +67,9 @@ export function collectSymbolInformation(uri, current, symbols, containerName) {
66
67
  kind: toSymbolKind(current.kind),
67
68
  location: {
68
69
  uri,
69
- range
70
+ range,
70
71
  },
71
- containerName
72
+ containerName,
72
73
  });
73
74
  symbols.push(...children);
74
75
  }
@@ -1 +1 @@
1
- {"version":3,"file":"document-symbol.js","sourceRoot":"","sources":["../src/document-symbol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"document-symbol.js","sourceRoot":"","sources":["../src/document-symbol.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"fix-all.d.ts","sourceRoot":"","sources":["../../src/features/fix-all.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,GAAG,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAI7C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AA6KnD,qBAAa,yBAAyB;IAWtB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAVnC,OAAO,CAAC,MAAM,CAAC,aAAa,CAI1B;IAEF,WAAkB,KAAK,IAAI,cAAc,EAAE,CAE1C;gBAE4B,MAAM,EAAE,SAAS;IAEjC,kBAAkB,CAAC,KAAK,EAAE,cAAc,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;CAS5J"}
1
+ {"version":3,"file":"fix-all.d.ts","sourceRoot":"","sources":["../../src/features/fix-all.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,GAAG,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAI7C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AA8KnD,qBAAa,yBAAyB;IAWtB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAVnC,OAAO,CAAC,MAAM,CAAC,aAAa,CAI1B;IAEF,WAAkB,KAAK,IAAI,cAAc,EAAE,CAE1C;gBAE4B,MAAM,EAAE,SAAS;IAEjC,kBAAkB,CAAC,KAAK,EAAE,cAAc,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;CAS5J"}
@@ -2,83 +2,75 @@
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
3
  * Licensed under the MIT License. See License.txt in the project root for license information.
4
4
  *--------------------------------------------------------------------------------------------*/
5
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
6
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
7
- return new (P || (P = Promise))(function (resolve, reject) {
8
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
9
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
10
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
11
- step((generator = generator.apply(thisArg, _arguments || [])).next());
12
- });
13
- };
14
5
  import * as lsp from 'vscode-languageserver';
15
- import { toFileRangeRequestArgs, toTextDocumentEdit } from '../protocol-translation.js';
6
+ import { toTextDocumentEdit } from '../protocol-translation.js';
16
7
  import * as errorCodes from '../utils/errorCodes.js';
17
8
  import * as fixNames from '../utils/fixNames.js';
18
9
  import { CodeActionKind } from '../utils/types.js';
19
- function buildIndividualFixes(fixes, client, file, documents, diagnostics) {
20
- var _a;
21
- return __awaiter(this, void 0, void 0, function* () {
22
- const edits = [];
23
- for (const diagnostic of diagnostics) {
24
- for (const { codes, fixName } of fixes) {
25
- if (!codes.has(diagnostic.code)) {
26
- continue;
27
- }
28
- const args = Object.assign(Object.assign({}, toFileRangeRequestArgs(file, diagnostic.range)), { errorCodes: [+diagnostic.code] });
29
- const response = yield client.request("getCodeFixes" /* CommandTypes.GetCodeFixes */, args);
30
- if (response.type !== 'response') {
31
- continue;
32
- }
33
- const fix = (_a = response.body) === null || _a === void 0 ? void 0 : _a.find(fix => fix.fixName === fixName);
34
- if (fix) {
35
- edits.push(...fix.changes.map(change => toTextDocumentEdit(change, documents)));
36
- break;
37
- }
10
+ import { Range } from '../utils/typeConverters.js';
11
+ async function buildIndividualFixes(fixes, client, file, documents, diagnostics) {
12
+ const edits = [];
13
+ for (const diagnostic of diagnostics) {
14
+ for (const { codes, fixName } of fixes) {
15
+ if (!codes.has(diagnostic.code)) {
16
+ continue;
17
+ }
18
+ const args = {
19
+ ...Range.toFileRangeRequestArgs(file, diagnostic.range),
20
+ errorCodes: [+diagnostic.code],
21
+ };
22
+ const response = await client.request("getCodeFixes" /* CommandTypes.GetCodeFixes */, args);
23
+ if (response.type !== 'response') {
24
+ continue;
25
+ }
26
+ const fix = response.body?.find(fix => fix.fixName === fixName);
27
+ if (fix) {
28
+ edits.push(...fix.changes.map(change => toTextDocumentEdit(change, documents)));
29
+ break;
38
30
  }
39
31
  }
40
- return edits;
41
- });
32
+ }
33
+ return edits;
42
34
  }
43
- function buildCombinedFix(fixes, client, file, documents, diagnostics) {
44
- var _a, _b;
45
- return __awaiter(this, void 0, void 0, function* () {
46
- const edits = [];
47
- for (const diagnostic of diagnostics) {
48
- for (const { codes, fixName } of fixes) {
49
- if (!codes.has(diagnostic.code)) {
50
- continue;
51
- }
52
- const args = Object.assign(Object.assign({}, toFileRangeRequestArgs(file, diagnostic.range)), { errorCodes: [+diagnostic.code] });
53
- const response = yield client.request("getCodeFixes" /* CommandTypes.GetCodeFixes */, args);
54
- if (response.type !== 'response' || !((_a = response.body) === null || _a === void 0 ? void 0 : _a.length)) {
55
- continue;
56
- }
57
- const fix = (_b = response.body) === null || _b === void 0 ? void 0 : _b.find(fix => fix.fixName === fixName);
58
- if (!fix) {
59
- continue;
60
- }
61
- if (!fix.fixId) {
62
- edits.push(...fix.changes.map(change => toTextDocumentEdit(change, documents)));
63
- return edits;
64
- }
65
- const combinedArgs = {
66
- scope: {
67
- type: 'file',
68
- args: { file }
69
- },
70
- fixId: fix.fixId
71
- };
72
- const combinedResponse = yield client.request("getCombinedCodeFix" /* CommandTypes.GetCombinedCodeFix */, combinedArgs);
73
- if (combinedResponse.type !== 'response' || !combinedResponse.body) {
74
- return edits;
75
- }
76
- edits.push(...combinedResponse.body.changes.map(change => toTextDocumentEdit(change, documents)));
35
+ async function buildCombinedFix(fixes, client, file, documents, diagnostics) {
36
+ const edits = [];
37
+ for (const diagnostic of diagnostics) {
38
+ for (const { codes, fixName } of fixes) {
39
+ if (!codes.has(diagnostic.code)) {
40
+ continue;
41
+ }
42
+ const args = {
43
+ ...Range.toFileRangeRequestArgs(file, diagnostic.range),
44
+ errorCodes: [+diagnostic.code],
45
+ };
46
+ const response = await client.request("getCodeFixes" /* CommandTypes.GetCodeFixes */, args);
47
+ if (response.type !== 'response' || !response.body?.length) {
48
+ continue;
49
+ }
50
+ const fix = response.body?.find(fix => fix.fixName === fixName);
51
+ if (!fix) {
52
+ continue;
53
+ }
54
+ if (!fix.fixId) {
55
+ edits.push(...fix.changes.map(change => toTextDocumentEdit(change, documents)));
56
+ return edits;
57
+ }
58
+ const combinedArgs = {
59
+ scope: {
60
+ type: 'file',
61
+ args: { file },
62
+ },
63
+ fixId: fix.fixId,
64
+ };
65
+ const combinedResponse = await client.request("getCombinedCodeFix" /* CommandTypes.GetCombinedCodeFix */, combinedArgs);
66
+ if (combinedResponse.type !== 'response' || !combinedResponse.body) {
77
67
  return edits;
78
68
  }
69
+ edits.push(...combinedResponse.body.changes.map(change => toTextDocumentEdit(change, documents)));
70
+ return edits;
79
71
  }
80
- return edits;
81
- });
72
+ }
73
+ return edits;
82
74
  }
83
75
  // #region Source Actions
84
76
  class SourceAction {
@@ -88,21 +80,19 @@ class SourceFixAll extends SourceAction {
88
80
  super(...arguments);
89
81
  this.title = 'Fix all';
90
82
  }
91
- build(client, file, documents, diagnostics) {
92
- return __awaiter(this, void 0, void 0, function* () {
93
- const edits = [];
94
- edits.push(...yield buildIndividualFixes([
95
- { codes: errorCodes.incorrectlyImplementsInterface, fixName: fixNames.classIncorrectlyImplementsInterface },
96
- { codes: errorCodes.asyncOnlyAllowedInAsyncFunctions, fixName: fixNames.awaitInSyncFunction }
97
- ], client, file, documents, diagnostics));
98
- edits.push(...yield buildCombinedFix([
99
- { codes: errorCodes.unreachableCode, fixName: fixNames.unreachableCode }
100
- ], client, file, documents, diagnostics));
101
- if (!edits.length) {
102
- return null;
103
- }
104
- return lsp.CodeAction.create(this.title, { documentChanges: edits }, SourceFixAll.kind.value);
105
- });
83
+ async build(client, file, documents, diagnostics) {
84
+ const edits = [];
85
+ edits.push(...await buildIndividualFixes([
86
+ { codes: errorCodes.incorrectlyImplementsInterface, fixName: fixNames.classIncorrectlyImplementsInterface },
87
+ { codes: errorCodes.asyncOnlyAllowedInAsyncFunctions, fixName: fixNames.awaitInSyncFunction },
88
+ ], client, file, documents, diagnostics));
89
+ edits.push(...await buildCombinedFix([
90
+ { codes: errorCodes.unreachableCode, fixName: fixNames.unreachableCode },
91
+ ], client, file, documents, diagnostics));
92
+ if (!edits.length) {
93
+ return null;
94
+ }
95
+ return lsp.CodeAction.create(this.title, { documentChanges: edits }, SourceFixAll.kind.value);
106
96
  }
107
97
  }
108
98
  SourceFixAll.kind = CodeActionKind.SourceFixAllTs;
@@ -111,16 +101,14 @@ class SourceRemoveUnused extends SourceAction {
111
101
  super(...arguments);
112
102
  this.title = 'Remove all unused code';
113
103
  }
114
- build(client, file, documents, diagnostics) {
115
- return __awaiter(this, void 0, void 0, function* () {
116
- const edits = yield buildCombinedFix([
117
- { codes: errorCodes.variableDeclaredButNeverUsed, fixName: fixNames.unusedIdentifier }
118
- ], client, file, documents, diagnostics);
119
- if (!edits.length) {
120
- return null;
121
- }
122
- return lsp.CodeAction.create(this.title, { documentChanges: edits }, SourceRemoveUnused.kind.value);
123
- });
104
+ async build(client, file, documents, diagnostics) {
105
+ const edits = await buildCombinedFix([
106
+ { codes: errorCodes.variableDeclaredButNeverUsed, fixName: fixNames.unusedIdentifier },
107
+ ], client, file, documents, diagnostics);
108
+ if (!edits.length) {
109
+ return null;
110
+ }
111
+ return lsp.CodeAction.create(this.title, { documentChanges: edits }, SourceRemoveUnused.kind.value);
124
112
  }
125
113
  }
126
114
  SourceRemoveUnused.kind = CodeActionKind.SourceRemoveUnusedTs;
@@ -129,16 +117,14 @@ class SourceAddMissingImports extends SourceAction {
129
117
  super(...arguments);
130
118
  this.title = 'Add all missing imports';
131
119
  }
132
- build(client, file, documents, diagnostics) {
133
- return __awaiter(this, void 0, void 0, function* () {
134
- const edits = yield buildCombinedFix([
135
- { codes: errorCodes.cannotFindName, fixName: fixNames.fixImport }
136
- ], client, file, documents, diagnostics);
137
- if (!edits.length) {
138
- return null;
139
- }
140
- return lsp.CodeAction.create(this.title, { documentChanges: edits }, SourceAddMissingImports.kind.value);
141
- });
120
+ async build(client, file, documents, diagnostics) {
121
+ const edits = await buildCombinedFix([
122
+ { codes: errorCodes.cannotFindName, fixName: fixNames.fixImport },
123
+ ], client, file, documents, diagnostics);
124
+ if (!edits.length) {
125
+ return null;
126
+ }
127
+ return lsp.CodeAction.create(this.title, { documentChanges: edits }, SourceAddMissingImports.kind.value);
142
128
  }
143
129
  }
144
130
  SourceAddMissingImports.kind = CodeActionKind.SourceAddMissingImportsTs;
@@ -150,21 +136,19 @@ export class TypeScriptAutoFixProvider {
150
136
  static get kinds() {
151
137
  return TypeScriptAutoFixProvider.kindProviders.map(provider => provider.kind);
152
138
  }
153
- provideCodeActions(kinds, file, diagnostics, documents) {
154
- return __awaiter(this, void 0, void 0, function* () {
155
- const results = [];
156
- for (const provider of TypeScriptAutoFixProvider.kindProviders) {
157
- if (kinds.some(kind => kind.contains(provider.kind))) {
158
- results.push((new provider).build(this.client, file, documents, diagnostics));
159
- }
139
+ async provideCodeActions(kinds, file, diagnostics, documents) {
140
+ const results = [];
141
+ for (const provider of TypeScriptAutoFixProvider.kindProviders) {
142
+ if (kinds.some(kind => kind.contains(provider.kind))) {
143
+ results.push((new provider).build(this.client, file, documents, diagnostics));
160
144
  }
161
- return (yield Promise.all(results)).flatMap(result => result || []);
162
- });
145
+ }
146
+ return (await Promise.all(results)).flatMap(result => result || []);
163
147
  }
164
148
  }
165
149
  TypeScriptAutoFixProvider.kindProviders = [
166
150
  SourceFixAll,
167
151
  SourceRemoveUnused,
168
- SourceAddMissingImports
152
+ SourceAddMissingImports,
169
153
  ];
170
154
  //# sourceMappingURL=fix-all.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fix-all.js","sourceRoot":"","sources":["../../src/features/fix-all.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fix-all.js","sourceRoot":"","sources":["../../src/features/fix-all.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import * as lsp from 'vscode-languageserver';
2
+ import API from '../utils/api.js';
3
+ import type { ConfigurationManager } from '../configuration-manager.js';
4
+ import type { LspDocuments } from '../document.js';
5
+ import type { TspClient } from '../tsp-client.js';
6
+ import type { LspClient } from '../lsp-client.js';
7
+ export declare class TypeScriptInlayHintsProvider {
8
+ static readonly minVersion: API;
9
+ static provideInlayHints(uri: lsp.DocumentUri, range: lsp.Range, documents: LspDocuments, tspClient: TspClient, lspClient: LspClient, configurationManager: ConfigurationManager): Promise<lsp.InlayHint[]>;
10
+ }
11
+ //# sourceMappingURL=inlay-hints.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inlay-hints.d.ts","sourceRoot":"","sources":["../../src/features/inlay-hints.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,GAAG,MAAM,uBAAuB,CAAC;AAC7C,OAAO,GAAG,MAAM,iBAAiB,CAAC;AAClC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAKlD,qBAAa,4BAA4B;IACrC,gBAAuB,UAAU,MAAY;WAEzB,iBAAiB,CACjC,GAAG,EAAE,GAAG,CAAC,WAAW,EACpB,KAAK,EAAE,GAAG,CAAC,KAAK,EAChB,SAAS,EAAE,YAAY,EACvB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,SAAS,EACpB,oBAAoB,EAAE,oBAAoB,GAC3C,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;CA4C9B"}
@@ -0,0 +1,70 @@
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 * as lsp from 'vscode-languageserver';
12
+ import API from '../utils/api.js';
13
+ import { Position } from '../utils/typeConverters.js';
14
+ import { uriToPath } from '../protocol-translation.js';
15
+ export class TypeScriptInlayHintsProvider {
16
+ static async provideInlayHints(uri, range, documents, tspClient, lspClient, configurationManager) {
17
+ if (tspClient.apiVersion.lt(TypeScriptInlayHintsProvider.minVersion)) {
18
+ lspClient.showErrorMessage('Inlay Hints request failed. Requires TypeScript 4.4+.');
19
+ return [];
20
+ }
21
+ const file = uriToPath(uri);
22
+ if (!file) {
23
+ lspClient.showErrorMessage('Inlay Hints request failed. No resource provided.');
24
+ return [];
25
+ }
26
+ const document = documents.get(file);
27
+ if (!document) {
28
+ lspClient.showErrorMessage('Inlay Hints request failed. File not opened in the editor.');
29
+ return [];
30
+ }
31
+ if (!areInlayHintsEnabledForFile(configurationManager, file)) {
32
+ return [];
33
+ }
34
+ await configurationManager.configureGloballyFromDocument(file);
35
+ const start = document.offsetAt(range.start);
36
+ const length = document.offsetAt(range.end) - start;
37
+ const response = await tspClient.request("provideInlayHints" /* CommandTypes.ProvideInlayHints */, { file, start, length });
38
+ if (response.type !== 'response' || !response.success || !response.body) {
39
+ return [];
40
+ }
41
+ return response.body.map(hint => {
42
+ const inlayHint = lsp.InlayHint.create(Position.fromLocation(hint.position), hint.text, fromProtocolInlayHintKind(hint.kind));
43
+ hint.whitespaceBefore && (inlayHint.paddingLeft = true);
44
+ hint.whitespaceAfter && (inlayHint.paddingRight = true);
45
+ return inlayHint;
46
+ });
47
+ }
48
+ }
49
+ TypeScriptInlayHintsProvider.minVersion = API.v440;
50
+ function areInlayHintsEnabledForFile(configurationManager, filename) {
51
+ const preferences = configurationManager.getPreferences(filename);
52
+ // Doesn't need to include `includeInlayVariableTypeHintsWhenTypeMatchesName` as it depends
53
+ // on `includeInlayVariableTypeHints` being enabled.
54
+ return preferences.includeInlayParameterNameHints === 'literals' ||
55
+ preferences.includeInlayParameterNameHints === 'all' ||
56
+ preferences.includeInlayEnumMemberValueHints ||
57
+ preferences.includeInlayFunctionLikeReturnTypeHints ||
58
+ preferences.includeInlayFunctionParameterTypeHints ||
59
+ preferences.includeInlayPropertyDeclarationTypeHints ||
60
+ preferences.includeInlayVariableTypeHints;
61
+ }
62
+ function fromProtocolInlayHintKind(kind) {
63
+ switch (kind) {
64
+ case 'Parameter': return lsp.InlayHintKind.Parameter;
65
+ case 'Type': return lsp.InlayHintKind.Type;
66
+ case 'Enum': return undefined;
67
+ default: return undefined;
68
+ }
69
+ }
70
+ //# sourceMappingURL=inlay-hints.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inlay-hints.js","sourceRoot":"","sources":["../../src/features/inlay-hints.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import * as lsp from 'vscode-languageserver';
2
+ import API from '../utils/api.js';
3
+ import type { LspDocuments } from '../document.js';
4
+ import type { TspClient } from '../tsp-client.js';
5
+ import type { LspClient } from '../lsp-client.js';
6
+ export declare class SourceDefinitionCommand {
7
+ static readonly id = "_typescript.goToSourceDefinition";
8
+ static readonly minVersion: API;
9
+ static execute(uri: lsp.DocumentUri | undefined, position: lsp.Position | undefined, documents: LspDocuments, tspClient: TspClient, lspClient: LspClient, reporter: lsp.WorkDoneProgressReporter): Promise<lsp.Location[] | void>;
10
+ }
11
+ //# sourceMappingURL=source-definition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-definition.d.ts","sourceRoot":"","sources":["../../src/features/source-definition.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,GAAG,MAAM,uBAAuB,CAAC;AAC7C,OAAO,GAAG,MAAM,iBAAiB,CAAC;AAGlC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAGlD,qBAAa,uBAAuB;IAChC,gBAAuB,EAAE,sCAAsC;IAC/D,gBAAuB,UAAU,MAAY;WAEzB,OAAO,CACvB,GAAG,EAAE,GAAG,CAAC,WAAW,GAAG,SAAS,EAChC,QAAQ,EAAE,GAAG,CAAC,QAAQ,GAAG,SAAS,EAClC,SAAS,EAAE,YAAY,EACvB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,GAAG,CAAC,wBAAwB,GACvC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC;CAsCpC"}
@@ -0,0 +1,50 @@
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 API from '../utils/api.js';
12
+ import { Position } from '../utils/typeConverters.js';
13
+ import { toLocation, uriToPath } from '../protocol-translation.js';
14
+ export class SourceDefinitionCommand {
15
+ static async execute(uri, position, documents, tspClient, lspClient, reporter) {
16
+ if (tspClient.apiVersion.lt(SourceDefinitionCommand.minVersion)) {
17
+ lspClient.showErrorMessage('Go to Source Definition failed. Requires TypeScript 4.7+.');
18
+ return;
19
+ }
20
+ if (!position || typeof position.character !== 'number' || typeof position.line !== 'number') {
21
+ lspClient.showErrorMessage('Go to Source Definition failed. Invalid position.');
22
+ return;
23
+ }
24
+ let file;
25
+ if (!uri || typeof uri !== 'string' || !(file = uriToPath(uri))) {
26
+ lspClient.showErrorMessage('Go to Source Definition failed. No resource provided.');
27
+ return;
28
+ }
29
+ const document = documents.get(file);
30
+ if (!document) {
31
+ lspClient.showErrorMessage('Go to Source Definition failed. File not opened in the editor.');
32
+ return;
33
+ }
34
+ const args = Position.toFileLocationRequestArgs(file, position);
35
+ return await lspClient.withProgress({
36
+ message: 'Finding source definitions…',
37
+ reporter,
38
+ }, async () => {
39
+ const response = await tspClient.request("findSourceDefinition" /* CommandTypes.FindSourceDefinition */, args);
40
+ if (response.type !== 'response' || !response.body) {
41
+ lspClient.showErrorMessage('No source definitions found.');
42
+ return;
43
+ }
44
+ return response.body.map(reference => toLocation(reference, documents));
45
+ });
46
+ }
47
+ }
48
+ SourceDefinitionCommand.id = '_typescript.goToSourceDefinition';
49
+ SourceDefinitionCommand.minVersion = API.v470;
50
+ //# sourceMappingURL=source-definition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-definition.js","sourceRoot":"","sources":["../../src/features/source-definition.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH;;;gGAGgG;AAGhG,OAAO,GAAG,MAAM,iBAAiB,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAMnE,MAAM,OAAO,uBAAuB;IAIzB,MAAM,CAAC,KAAK,CAAC,OAAO,CACvB,GAAgC,EAChC,QAAkC,EAClC,SAAuB,EACvB,SAAoB,EACpB,SAAoB,EACpB,QAAsC;QAEtC,IAAI,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,uBAAuB,CAAC,UAAU,CAAC,EAAE;YAC7D,SAAS,CAAC,gBAAgB,CAAC,2DAA2D,CAAC,CAAC;YACxF,OAAO;SACV;QAED,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,CAAC,SAAS,KAAK,QAAQ,IAAI,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,EAAE;YAC1F,SAAS,CAAC,gBAAgB,CAAC,mDAAmD,CAAC,CAAC;YAChF,OAAO;SACV;QAED,IAAI,IAAwB,CAAC;QAE7B,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE;YAC7D,SAAS,CAAC,gBAAgB,CAAC,uDAAuD,CAAC,CAAC;YACpF,OAAO;SACV;QAED,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAErC,IAAI,CAAC,QAAQ,EAAE;YACX,SAAS,CAAC,gBAAgB,CAAC,gEAAgE,CAAC,CAAC;YAC7F,OAAO;SACV;QAED,MAAM,IAAI,GAAG,QAAQ,CAAC,yBAAyB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAChE,OAAO,MAAM,SAAS,CAAC,YAAY,CAAwB;YACvD,OAAO,EAAE,6BAA6B;YACtC,QAAQ;SACX,EAAE,KAAK,IAAI,EAAE;YACV,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,OAAO,iEAAoC,IAAI,CAAC,CAAC;YAClF,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;gBAChD,SAAS,CAAC,gBAAgB,CAAC,8BAA8B,CAAC,CAAC;gBAC3D,OAAO;aACV;YACD,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;IACP,CAAC;;AA/CsB,0BAAE,GAAG,kCAAkC,CAAC;AACxC,kCAAU,GAAG,GAAG,CAAC,IAAI,CAAC"}