volar-service-typescript 0.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 (82) hide show
  1. package/out/configs/getFormatCodeSettings.d.ts +5 -0
  2. package/out/configs/getFormatCodeSettings.js +34 -0
  3. package/out/configs/getUserPreferences.d.ts +4 -0
  4. package/out/configs/getUserPreferences.js +97 -0
  5. package/out/index.d.ts +3 -0
  6. package/out/index.js +421 -0
  7. package/out/protocol.const.d.ts +72 -0
  8. package/out/protocol.const.js +92 -0
  9. package/out/services/callHierarchy.d.ts +7 -0
  10. package/out/services/callHierarchy.js +126 -0
  11. package/out/services/codeAction.d.ts +26 -0
  12. package/out/services/codeAction.js +242 -0
  13. package/out/services/codeActionResolve.d.ts +9 -0
  14. package/out/services/codeActionResolve.js +51 -0
  15. package/out/services/completions/basic.d.ts +16 -0
  16. package/out/services/completions/basic.js +322 -0
  17. package/out/services/completions/directiveComment.d.ts +3 -0
  18. package/out/services/completions/directiveComment.js +69 -0
  19. package/out/services/completions/jsDoc.d.ts +3 -0
  20. package/out/services/completions/jsDoc.js +106 -0
  21. package/out/services/completions/resolve.d.ts +5 -0
  22. package/out/services/completions/resolve.js +170 -0
  23. package/out/services/definition.d.ts +3 -0
  24. package/out/services/definition.js +20 -0
  25. package/out/services/diagnostics.d.ts +10 -0
  26. package/out/services/diagnostics.js +144 -0
  27. package/out/services/documentHighlight.d.ts +3 -0
  28. package/out/services/documentHighlight.js +56 -0
  29. package/out/services/documentSymbol.d.ts +3 -0
  30. package/out/services/documentSymbol.js +106 -0
  31. package/out/services/fileReferences.d.ts +3 -0
  32. package/out/services/fileReferences.js +19 -0
  33. package/out/services/fileRename.d.ts +3 -0
  34. package/out/services/fileRename.js +25 -0
  35. package/out/services/foldingRanges.d.ts +3 -0
  36. package/out/services/foldingRanges.js +73 -0
  37. package/out/services/formatting.d.ts +6 -0
  38. package/out/services/formatting.js +58 -0
  39. package/out/services/hover.d.ts +3 -0
  40. package/out/services/hover.js +64 -0
  41. package/out/services/implementation.d.ts +3 -0
  42. package/out/services/implementation.js +20 -0
  43. package/out/services/inlayHints.d.ts +3 -0
  44. package/out/services/inlayHints.js +54 -0
  45. package/out/services/prepareRename.d.ts +6 -0
  46. package/out/services/prepareRename.js +51 -0
  47. package/out/services/references.d.ts +3 -0
  48. package/out/services/references.js +20 -0
  49. package/out/services/rename.d.ts +5 -0
  50. package/out/services/rename.js +135 -0
  51. package/out/services/selectionRanges.d.ts +3 -0
  52. package/out/services/selectionRanges.js +53 -0
  53. package/out/services/semanticTokens.d.ts +3 -0
  54. package/out/services/semanticTokens.js +128 -0
  55. package/out/services/signatureHelp.d.ts +3 -0
  56. package/out/services/signatureHelp.js +87 -0
  57. package/out/services/tsconfig.d.ts +6 -0
  58. package/out/services/tsconfig.js +199 -0
  59. package/out/services/typeDefinition.d.ts +3 -0
  60. package/out/services/typeDefinition.js +20 -0
  61. package/out/services/workspaceSymbol.d.ts +3 -0
  62. package/out/services/workspaceSymbol.js +80 -0
  63. package/out/shared.d.ts +5 -0
  64. package/out/shared.js +33 -0
  65. package/out/types.d.ts +5 -0
  66. package/out/types.js +3 -0
  67. package/out/utils/errorCodes.d.ts +11 -0
  68. package/out/utils/errorCodes.js +19 -0
  69. package/out/utils/fixNames.d.ts +13 -0
  70. package/out/utils/fixNames.js +21 -0
  71. package/out/utils/modifiers.d.ts +1 -0
  72. package/out/utils/modifiers.js +12 -0
  73. package/out/utils/previewer.d.ts +13 -0
  74. package/out/utils/previewer.js +182 -0
  75. package/out/utils/snippetForFunctionCall.d.ts +8 -0
  76. package/out/utils/snippetForFunctionCall.js +112 -0
  77. package/out/utils/transforms.d.ts +10 -0
  78. package/out/utils/transforms.js +76 -0
  79. package/out/utils/typeConverters.d.ts +4 -0
  80. package/out/utils/typeConverters.js +67 -0
  81. package/package.json +32 -0
  82. package/rules.d.ts +13 -0
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.register = void 0;
27
+ const vscode = __importStar(require("vscode-languageserver-protocol"));
28
+ const shared_1 = require("../shared");
29
+ function register(ctx) {
30
+ const { ts } = ctx;
31
+ return (uri, position, context) => {
32
+ const document = ctx.getTextDocument(uri);
33
+ if (!document)
34
+ return;
35
+ const options = {};
36
+ if (context?.triggerKind === vscode.SignatureHelpTriggerKind.Invoked) {
37
+ options.triggerReason = {
38
+ kind: 'invoked'
39
+ };
40
+ }
41
+ else if (context?.triggerKind === vscode.SignatureHelpTriggerKind.TriggerCharacter) {
42
+ options.triggerReason = {
43
+ kind: 'characterTyped',
44
+ triggerCharacter: context.triggerCharacter,
45
+ };
46
+ }
47
+ else if (context?.triggerKind === vscode.SignatureHelpTriggerKind.ContentChange) {
48
+ options.triggerReason = {
49
+ kind: 'retrigger',
50
+ triggerCharacter: context.triggerCharacter,
51
+ };
52
+ }
53
+ const fileName = ctx.env.uriToFileName(document.uri);
54
+ const offset = document.offsetAt(position);
55
+ const helpItems = (0, shared_1.safeCall)(() => ctx.typescript.languageService.getSignatureHelpItems(fileName, offset, options));
56
+ if (!helpItems)
57
+ return;
58
+ return {
59
+ activeSignature: helpItems.selectedItemIndex,
60
+ activeParameter: helpItems.argumentIndex,
61
+ signatures: helpItems.items.map(item => {
62
+ const signature = {
63
+ label: '',
64
+ documentation: undefined,
65
+ parameters: []
66
+ };
67
+ signature.label += ts.displayPartsToString(item.prefixDisplayParts);
68
+ item.parameters.forEach((p, i, a) => {
69
+ const label = ts.displayPartsToString(p.displayParts);
70
+ const parameter = {
71
+ label,
72
+ documentation: ts.displayPartsToString(p.documentation)
73
+ };
74
+ signature.label += label;
75
+ signature.parameters.push(parameter);
76
+ if (i < a.length - 1) {
77
+ signature.label += ts.displayPartsToString(item.separatorDisplayParts);
78
+ }
79
+ });
80
+ signature.label += ts.displayPartsToString(item.suffixDisplayParts);
81
+ return signature;
82
+ }),
83
+ };
84
+ };
85
+ }
86
+ exports.register = register;
87
+ //# sourceMappingURL=signatureHelp.js.map
@@ -0,0 +1,6 @@
1
+ import * as vscode from '@volar/language-service';
2
+ import { SharedContext } from '../types';
3
+ export declare function register(ctx: SharedContext): {
4
+ provideDocumentLinks: (document: vscode.TextDocument, _token: vscode.CancellationToken) => vscode.DocumentLink[];
5
+ resolve(link: vscode.DocumentLink, _token: vscode.CancellationToken): Promise<vscode.DocumentLink>;
6
+ };
@@ -0,0 +1,199 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.register = void 0;
27
+ const jsonc = __importStar(require("jsonc-parser"));
28
+ const minimatch_1 = require("minimatch");
29
+ const vscode = __importStar(require("@volar/language-service"));
30
+ const vscode_uri_1 = require("vscode-uri");
31
+ function mapChildren(node, f) {
32
+ return node && node.type === 'array' && node.children
33
+ ? node.children.map(f)
34
+ : [];
35
+ }
36
+ function register(ctx) {
37
+ const patterns = [
38
+ '**/[jt]sconfig.json',
39
+ '**/[jt]sconfig.*.json',
40
+ ];
41
+ const languages = ['json', 'jsonc'];
42
+ return {
43
+ provideDocumentLinks,
44
+ async resolve(link, _token) {
45
+ const data = link.data;
46
+ if (data) {
47
+ const tsconfigPath = await getTsconfigPath(vscode_uri_1.Utils.dirname(vscode_uri_1.URI.parse(data.resourceUri)), data.extendsValue);
48
+ if (tsconfigPath === undefined) {
49
+ // console.error(vscode.l10n.t("Failed to resolve {0} as module", data.extendsValue));
50
+ }
51
+ link.target = tsconfigPath?.toString();
52
+ }
53
+ return link;
54
+ },
55
+ };
56
+ function provideDocumentLinks(document, _token) {
57
+ const match = languages.includes(document.languageId) && patterns.some(pattern => (0, minimatch_1.minimatch)(document.uri, pattern));
58
+ if (!match) {
59
+ return [];
60
+ }
61
+ const root = jsonc.parseTree(document.getText());
62
+ if (!root) {
63
+ return [];
64
+ }
65
+ const links = [
66
+ getExtendsLink(document, root),
67
+ ...getFilesLinks(document, root),
68
+ ...getReferencesLinks(document, root)
69
+ ];
70
+ return links.filter(link => !!link);
71
+ }
72
+ function getExtendsLink(document, root) {
73
+ const extendsNode = jsonc.findNodeAtLocation(root, ['extends']);
74
+ if (!isPathValue(extendsNode)) {
75
+ return undefined;
76
+ }
77
+ const extendsValue = extendsNode.value;
78
+ if (extendsValue.startsWith('/')) {
79
+ return undefined;
80
+ }
81
+ const args = {
82
+ resourceUri: document.uri,
83
+ extendsValue: extendsValue
84
+ };
85
+ const link = vscode.DocumentLink.create(getRange(document, extendsNode), undefined, args);
86
+ // link.tooltip = vscode.l10n.t("Follow link");
87
+ link.tooltip = "Follow link";
88
+ return link;
89
+ }
90
+ function getFilesLinks(document, root) {
91
+ return mapChildren(jsonc.findNodeAtLocation(root, ['files']), child => pathNodeToLink(document, child));
92
+ }
93
+ function getReferencesLinks(document, root) {
94
+ return mapChildren(jsonc.findNodeAtLocation(root, ['references']), child => {
95
+ const pathNode = jsonc.findNodeAtLocation(child, ['path']);
96
+ if (!isPathValue(pathNode)) {
97
+ return undefined;
98
+ }
99
+ return vscode.DocumentLink.create(getRange(document, pathNode), pathNode.value.endsWith('.json')
100
+ ? getFileTarget(document, pathNode)
101
+ : getFolderTarget(document, pathNode));
102
+ });
103
+ }
104
+ function pathNodeToLink(document, node) {
105
+ return isPathValue(node)
106
+ ? vscode.DocumentLink.create(getRange(document, node), getFileTarget(document, node))
107
+ : undefined;
108
+ }
109
+ function isPathValue(extendsNode) {
110
+ return extendsNode
111
+ && extendsNode.type === 'string'
112
+ && extendsNode.value
113
+ && !extendsNode.value.includes('*'); // don't treat globs as links.
114
+ }
115
+ function getFileTarget(document, node) {
116
+ return vscode_uri_1.Utils.joinPath(vscode_uri_1.Utils.dirname(vscode_uri_1.URI.parse(document.uri)), node.value).toString();
117
+ }
118
+ function getFolderTarget(document, node) {
119
+ return vscode_uri_1.Utils.joinPath(vscode_uri_1.Utils.dirname(vscode_uri_1.URI.parse(document.uri)), node.value, 'tsconfig.json').toString();
120
+ }
121
+ function getRange(document, node) {
122
+ const offset = node.offset;
123
+ const start = document.positionAt(offset + 1);
124
+ const end = document.positionAt(offset + (node.length - 1));
125
+ return vscode.Range.create(start, end);
126
+ }
127
+ async function resolveNodeModulesPath(baseDirUri, pathCandidates) {
128
+ let currentUri = baseDirUri;
129
+ const baseCandidate = pathCandidates[0];
130
+ const sepIndex = baseCandidate.startsWith('@') ? 2 : 1;
131
+ const moduleBasePath = baseCandidate.split('/').slice(0, sepIndex).join('/');
132
+ while (true) {
133
+ const moduleAbsoluteUrl = vscode_uri_1.Utils.joinPath(currentUri, 'node_modules', moduleBasePath);
134
+ let moduleStat;
135
+ try {
136
+ moduleStat = await ctx.env.fileSystemProvider?.stat(moduleAbsoluteUrl.toString());
137
+ }
138
+ catch (err) {
139
+ // noop
140
+ }
141
+ if (moduleStat && moduleStat.type === 2 /* Directory */) {
142
+ for (const uriCandidate of pathCandidates
143
+ .map((relativePath) => relativePath.split('/').slice(sepIndex).join('/'))
144
+ // skip empty paths within module
145
+ .filter(Boolean)
146
+ .map((relativeModulePath) => vscode_uri_1.Utils.joinPath(moduleAbsoluteUrl, relativeModulePath))) {
147
+ if (await exists(uriCandidate)) {
148
+ return uriCandidate;
149
+ }
150
+ }
151
+ // Continue to looking for potentially another version
152
+ }
153
+ const oldUri = currentUri;
154
+ currentUri = vscode_uri_1.Utils.joinPath(currentUri, '..');
155
+ // Can't go next. Reached the system root
156
+ if (oldUri.path === currentUri.path) {
157
+ return;
158
+ }
159
+ }
160
+ }
161
+ // Reference: https://github.com/microsoft/TypeScript/blob/febfd442cdba343771f478cf433b0892f213ad2f/src/compiler/commandLineParser.ts#L3005
162
+ /**
163
+ * @returns Returns undefined in case of lack of result while trying to resolve from node_modules
164
+ */
165
+ async function getTsconfigPath(baseDirUri, extendsValue) {
166
+ // Don't take into account a case, where tsconfig might be resolved from the root (see the reference)
167
+ // e.g. C:/projects/shared-tsconfig/tsconfig.json (note that C: prefix is optional)
168
+ const isRelativePath = ['./', '../'].some(str => extendsValue.startsWith(str));
169
+ if (isRelativePath) {
170
+ const absolutePath = vscode_uri_1.Utils.joinPath(baseDirUri, extendsValue);
171
+ if (await exists(absolutePath) || absolutePath.path.endsWith('.json')) {
172
+ return absolutePath;
173
+ }
174
+ return absolutePath.with({
175
+ path: `${absolutePath.path}.json`
176
+ });
177
+ }
178
+ // Otherwise resolve like a module
179
+ return resolveNodeModulesPath(baseDirUri, [
180
+ extendsValue,
181
+ ...extendsValue.endsWith('.json') ? [] : [
182
+ `${extendsValue}.json`,
183
+ `${extendsValue}/tsconfig.json`,
184
+ ]
185
+ ]);
186
+ }
187
+ async function exists(resource) {
188
+ try {
189
+ const stat = await ctx.env.fileSystemProvider?.stat(resource.toString());
190
+ // stat.type is an enum flag
191
+ return !!(stat?.type === 1);
192
+ }
193
+ catch {
194
+ return false;
195
+ }
196
+ }
197
+ }
198
+ exports.register = register;
199
+ //# sourceMappingURL=tsconfig.js.map
@@ -0,0 +1,3 @@
1
+ import type * as vscode from 'vscode-languageserver-protocol';
2
+ import { SharedContext } from '../types';
3
+ export declare function register(ctx: SharedContext): (uri: string, position: vscode.Position) => vscode.LocationLink[];
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.register = void 0;
4
+ const transforms_1 = require("../utils/transforms");
5
+ const shared_1 = require("../shared");
6
+ function register(ctx) {
7
+ return (uri, position) => {
8
+ const document = ctx.getTextDocument(uri);
9
+ if (!document)
10
+ return [];
11
+ const fileName = ctx.env.uriToFileName(document.uri);
12
+ const offset = document.offsetAt(position);
13
+ const entries = (0, shared_1.safeCall)(() => ctx.typescript.languageService.getTypeDefinitionAtPosition(fileName, offset));
14
+ if (!entries)
15
+ return [];
16
+ return (0, transforms_1.entriesToLocationLinks)([...entries], ctx);
17
+ };
18
+ }
19
+ exports.register = register;
20
+ //# sourceMappingURL=typeDefinition.js.map
@@ -0,0 +1,3 @@
1
+ import * as vscode from 'vscode-languageserver-protocol';
2
+ import { SharedContext } from '../types';
3
+ export declare function register(ctx: SharedContext): (query: string) => vscode.WorkspaceSymbol[];
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.register = void 0;
27
+ const PConst = __importStar(require("../protocol.const"));
28
+ const vscode = __importStar(require("vscode-languageserver-protocol"));
29
+ const modifiers_1 = require("../utils/modifiers");
30
+ const shared_1 = require("../shared");
31
+ function getSymbolKind(item) {
32
+ switch (item.kind) {
33
+ case PConst.Kind.method: return vscode.SymbolKind.Method;
34
+ case PConst.Kind.enum: return vscode.SymbolKind.Enum;
35
+ case PConst.Kind.enumMember: return vscode.SymbolKind.EnumMember;
36
+ case PConst.Kind.function: return vscode.SymbolKind.Function;
37
+ case PConst.Kind.class: return vscode.SymbolKind.Class;
38
+ case PConst.Kind.interface: return vscode.SymbolKind.Interface;
39
+ case PConst.Kind.type: return vscode.SymbolKind.Class;
40
+ case PConst.Kind.memberVariable: return vscode.SymbolKind.Field;
41
+ case PConst.Kind.memberGetAccessor: return vscode.SymbolKind.Field;
42
+ case PConst.Kind.memberSetAccessor: return vscode.SymbolKind.Field;
43
+ case PConst.Kind.variable: return vscode.SymbolKind.Variable;
44
+ default: return vscode.SymbolKind.Variable;
45
+ }
46
+ }
47
+ function register(ctx) {
48
+ return (query) => {
49
+ const items = (0, shared_1.safeCall)(() => ctx.typescript.languageService.getNavigateToItems(query));
50
+ if (!items)
51
+ return [];
52
+ return items
53
+ .filter(item => item.containerName || item.kind !== 'alias')
54
+ .map(toWorkspaceSymbol)
55
+ .filter((v) => !!v);
56
+ function toWorkspaceSymbol(item) {
57
+ const label = getLabel(item);
58
+ const uri = ctx.env.fileNameToUri(item.fileName);
59
+ const document = ctx.getTextDocument(uri);
60
+ if (document) {
61
+ const range = vscode.Range.create(document.positionAt(item.textSpan.start), document.positionAt(item.textSpan.start + item.textSpan.length));
62
+ const info = vscode.WorkspaceSymbol.create(label, getSymbolKind(item), uri, range);
63
+ const kindModifiers = item.kindModifiers ? (0, modifiers_1.parseKindModifier)(item.kindModifiers) : undefined;
64
+ if (kindModifiers?.has(PConst.KindModifiers.deprecated)) {
65
+ info.tags = [vscode.SymbolTag.Deprecated];
66
+ }
67
+ return info;
68
+ }
69
+ }
70
+ function getLabel(item) {
71
+ const label = item.name;
72
+ if (item.kind === 'method' || item.kind === 'function') {
73
+ return label + '()';
74
+ }
75
+ return label;
76
+ }
77
+ };
78
+ }
79
+ exports.register = register;
80
+ //# sourceMappingURL=workspaceSymbol.js.map
@@ -0,0 +1,5 @@
1
+ import { TextDocument } from 'vscode-languageserver-textdocument';
2
+ export declare function getConfigTitle(document: TextDocument): string;
3
+ export declare function isTsDocument(document: TextDocument): boolean;
4
+ export declare function isJsonDocument(document: TextDocument): boolean;
5
+ export declare function safeCall<T>(cb: () => T): T | undefined;
package/out/shared.js ADDED
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.safeCall = exports.isJsonDocument = exports.isTsDocument = exports.getConfigTitle = void 0;
4
+ function getConfigTitle(document) {
5
+ if (document.languageId === 'javascriptreact') {
6
+ return 'javascript';
7
+ }
8
+ if (document.languageId === 'typescriptreact') {
9
+ return 'typescript';
10
+ }
11
+ return document.languageId;
12
+ }
13
+ exports.getConfigTitle = getConfigTitle;
14
+ function isTsDocument(document) {
15
+ return document.languageId === 'javascript' ||
16
+ document.languageId === 'typescript' ||
17
+ document.languageId === 'javascriptreact' ||
18
+ document.languageId === 'typescriptreact';
19
+ }
20
+ exports.isTsDocument = isTsDocument;
21
+ function isJsonDocument(document) {
22
+ return document.languageId === 'json' ||
23
+ document.languageId === 'jsonc';
24
+ }
25
+ exports.isJsonDocument = isJsonDocument;
26
+ function safeCall(cb) {
27
+ try {
28
+ return cb();
29
+ }
30
+ catch { }
31
+ }
32
+ exports.safeCall = safeCall;
33
+ //# sourceMappingURL=shared.js.map
package/out/types.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ import { ServiceContext } from "@volar/language-service";
2
+ export type SharedContext = ServiceContext & {
3
+ typescript: NonNullable<ServiceContext['typescript']>;
4
+ ts: typeof import('typescript/lib/tsserverlibrary');
5
+ };
package/out/types.js ADDED
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,11 @@
1
+ export declare const variableDeclaredButNeverUsed: Set<number>;
2
+ export declare const propertyDeclaretedButNeverUsed: Set<number>;
3
+ export declare const allImportsAreUnused: Set<number>;
4
+ export declare const unreachableCode: Set<number>;
5
+ export declare const unusedLabel: Set<number>;
6
+ export declare const fallThroughCaseInSwitch: Set<number>;
7
+ export declare const notAllCodePathsReturnAValue: Set<number>;
8
+ export declare const incorrectlyImplementsInterface: Set<number>;
9
+ export declare const cannotFindName: Set<number>;
10
+ export declare const extendsShouldBeImplements: Set<number>;
11
+ export declare const asyncOnlyAllowedInAsyncFunctions: Set<number>;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Microsoft Corporation. All rights reserved.
4
+ * Licensed under the MIT License. See License.txt in the project root for license information.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.asyncOnlyAllowedInAsyncFunctions = exports.extendsShouldBeImplements = exports.cannotFindName = exports.incorrectlyImplementsInterface = exports.notAllCodePathsReturnAValue = exports.fallThroughCaseInSwitch = exports.unusedLabel = exports.unreachableCode = exports.allImportsAreUnused = exports.propertyDeclaretedButNeverUsed = exports.variableDeclaredButNeverUsed = void 0;
8
+ exports.variableDeclaredButNeverUsed = new Set([6196, 6133]);
9
+ exports.propertyDeclaretedButNeverUsed = new Set([6138]);
10
+ exports.allImportsAreUnused = new Set([6192]);
11
+ exports.unreachableCode = new Set([7027]);
12
+ exports.unusedLabel = new Set([7028]);
13
+ exports.fallThroughCaseInSwitch = new Set([7029]);
14
+ exports.notAllCodePathsReturnAValue = new Set([7030]);
15
+ exports.incorrectlyImplementsInterface = new Set([2420]);
16
+ exports.cannotFindName = new Set([2552, 2304]);
17
+ exports.extendsShouldBeImplements = new Set([2689]);
18
+ exports.asyncOnlyAllowedInAsyncFunctions = new Set([1308]);
19
+ //# sourceMappingURL=errorCodes.js.map
@@ -0,0 +1,13 @@
1
+ export declare const annotateWithTypeFromJSDoc = "annotateWithTypeFromJSDoc";
2
+ export declare const constructorForDerivedNeedSuperCall = "constructorForDerivedNeedSuperCall";
3
+ export declare const extendsInterfaceBecomesImplements = "extendsInterfaceBecomesImplements";
4
+ export declare const awaitInSyncFunction = "fixAwaitInSyncFunction";
5
+ export declare const classIncorrectlyImplementsInterface = "fixClassIncorrectlyImplementsInterface";
6
+ export declare const classDoesntImplementInheritedAbstractMember = "fixClassDoesntImplementInheritedAbstractMember";
7
+ export declare const unreachableCode = "fixUnreachableCode";
8
+ export declare const unusedIdentifier = "unusedIdentifier";
9
+ export declare const forgottenThisPropertyAccess = "forgottenThisPropertyAccess";
10
+ export declare const spelling = "spelling";
11
+ export declare const fixImport = "import";
12
+ export declare const addMissingAwait = "addMissingAwait";
13
+ export declare const addMissingOverride = "fixOverrideModifier";
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Microsoft Corporation. All rights reserved.
4
+ * Licensed under the MIT License. See License.txt in the project root for license information.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.addMissingOverride = exports.addMissingAwait = exports.fixImport = exports.spelling = exports.forgottenThisPropertyAccess = exports.unusedIdentifier = exports.unreachableCode = exports.classDoesntImplementInheritedAbstractMember = exports.classIncorrectlyImplementsInterface = exports.awaitInSyncFunction = exports.extendsInterfaceBecomesImplements = exports.constructorForDerivedNeedSuperCall = exports.annotateWithTypeFromJSDoc = void 0;
8
+ exports.annotateWithTypeFromJSDoc = 'annotateWithTypeFromJSDoc';
9
+ exports.constructorForDerivedNeedSuperCall = 'constructorForDerivedNeedSuperCall';
10
+ exports.extendsInterfaceBecomesImplements = 'extendsInterfaceBecomesImplements';
11
+ exports.awaitInSyncFunction = 'fixAwaitInSyncFunction';
12
+ exports.classIncorrectlyImplementsInterface = 'fixClassIncorrectlyImplementsInterface';
13
+ exports.classDoesntImplementInheritedAbstractMember = 'fixClassDoesntImplementInheritedAbstractMember';
14
+ exports.unreachableCode = 'fixUnreachableCode';
15
+ exports.unusedIdentifier = 'unusedIdentifier';
16
+ exports.forgottenThisPropertyAccess = 'forgottenThisPropertyAccess';
17
+ exports.spelling = 'spelling';
18
+ exports.fixImport = 'import';
19
+ exports.addMissingAwait = 'addMissingAwait';
20
+ exports.addMissingOverride = 'fixOverrideModifier';
21
+ //# sourceMappingURL=fixNames.js.map
@@ -0,0 +1 @@
1
+ export declare function parseKindModifier(kindModifiers: string): Set<string>;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Microsoft Corporation. All rights reserved.
4
+ * Licensed under the MIT License. See License.txt in the project root for license information.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.parseKindModifier = void 0;
8
+ function parseKindModifier(kindModifiers) {
9
+ return new Set(kindModifiers.split(/,|\s+/g));
10
+ }
11
+ exports.parseKindModifier = parseKindModifier;
12
+ //# sourceMappingURL=modifiers.js.map
@@ -0,0 +1,13 @@
1
+ import { SharedContext } from '../types';
2
+ import type * as ts from 'typescript/lib/tsserverlibrary';
3
+ import type * as Proto from '../protocol';
4
+ export interface IFilePathToResourceConverter {
5
+ /**
6
+ * Convert a typescript filepath to a VS Code resource.
7
+ */
8
+ toResource(filepath: string): string;
9
+ }
10
+ export declare function plainWithLinks(parts: readonly Proto.SymbolDisplayPart[] | string, filePathConverter: IFilePathToResourceConverter, ctx: SharedContext): string;
11
+ export declare function tagsMarkdownPreview(tags: readonly ts.JSDocTagInfo[], filePathConverter: IFilePathToResourceConverter, ctx: SharedContext): string;
12
+ export declare function markdownDocumentation(documentation: Proto.SymbolDisplayPart[] | string | undefined, tags: ts.JSDocTagInfo[] | undefined, filePathConverter: IFilePathToResourceConverter, ctx: SharedContext): string;
13
+ export declare function addMarkdownDocumentation(out: string, documentation: Proto.SymbolDisplayPart[] | string | undefined, tags: ts.JSDocTagInfo[] | undefined, converter: IFilePathToResourceConverter, ctx: SharedContext): string;