volar-service-typescript 0.0.0 → 0.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/out/index.d.ts +9 -1
- package/out/index.js +35 -24
- package/out/utils/typeConverters.d.ts +1 -1
- package/package.json +2 -3
- package/rules.d.ts +0 -13
package/out/index.d.ts
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { InjectionKey, Service } from '@volar/language-service';
|
|
2
|
+
import type * as ts from 'typescript/lib/tsserverlibrary';
|
|
3
|
+
import type { TextDocument } from 'vscode-languageserver-textdocument';
|
|
4
|
+
export declare const rulesInjectionKey: InjectionKey<{
|
|
5
|
+
sourceFile: ts.SourceFile;
|
|
6
|
+
languageService: ts.LanguageService;
|
|
7
|
+
languageServiceHost: ts.LanguageServiceHost;
|
|
8
|
+
getTextDocument(uri: string): TextDocument | undefined;
|
|
9
|
+
}>;
|
|
2
10
|
declare const _default: () => Service;
|
|
3
11
|
export default _default;
|
package/out/index.js
CHANGED
|
@@ -23,6 +23,8 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.rulesInjectionKey = void 0;
|
|
27
|
+
const language_service_1 = require("@volar/language-service");
|
|
26
28
|
const semver = __importStar(require("semver"));
|
|
27
29
|
const vscode = __importStar(require("vscode-languageserver-protocol"));
|
|
28
30
|
const shared_1 = require("./shared");
|
|
@@ -53,6 +55,7 @@ const signatureHelp = __importStar(require("./services/signatureHelp"));
|
|
|
53
55
|
const typeDefinitions = __importStar(require("./services/typeDefinition"));
|
|
54
56
|
const workspaceSymbols = __importStar(require("./services/workspaceSymbol"));
|
|
55
57
|
const tsconfig = __importStar(require("./services/tsconfig"));
|
|
58
|
+
exports.rulesInjectionKey = Symbol();
|
|
56
59
|
exports.default = () => (contextOrNull, modules) => {
|
|
57
60
|
const jsDocTriggerCharacter = '*';
|
|
58
61
|
const directiveCommentTriggerCharacter = '@';
|
|
@@ -72,7 +75,7 @@ exports.default = () => (contextOrNull, modules) => {
|
|
|
72
75
|
}
|
|
73
76
|
const context = contextOrNull;
|
|
74
77
|
if (!modules?.typescript) {
|
|
75
|
-
console.warn('[volar-service-typescript] context.typescript not found,
|
|
78
|
+
console.warn('[volar-service-typescript] context.typescript not found, volar-service-typescript is disabled. Make sure you have provide tsdk in language client.');
|
|
76
79
|
return {};
|
|
77
80
|
}
|
|
78
81
|
const ts = modules.typescript;
|
|
@@ -140,35 +143,43 @@ exports.default = () => (contextOrNull, modules) => {
|
|
|
140
143
|
const doFormatting = formatting.register(syntacticCtx);
|
|
141
144
|
const getFoldingRanges = foldingRanges.register(syntacticCtx);
|
|
142
145
|
return {
|
|
146
|
+
rules: {
|
|
147
|
+
provide: {
|
|
148
|
+
[exports.rulesInjectionKey](document, type) {
|
|
149
|
+
if ((0, shared_1.isTsDocument)(document)) {
|
|
150
|
+
if (type === language_service_1.RuleType.Format || type === language_service_1.RuleType.Syntax) {
|
|
151
|
+
prepareSyntacticService(document);
|
|
152
|
+
const sourceFile = syntacticCtx.typescript.languageService.getProgram()?.getSourceFile(syntacticHostCtx.fileName);
|
|
153
|
+
if (sourceFile) {
|
|
154
|
+
return {
|
|
155
|
+
sourceFile,
|
|
156
|
+
languageService: syntacticCtx.typescript.languageService,
|
|
157
|
+
languageServiceHost: syntacticCtx.typescript.languageServiceHost,
|
|
158
|
+
getTextDocument: syntacticCtx.getTextDocument,
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
const sourceFile = semanticCtx.typescript.languageService.getProgram()?.getSourceFile(context.env.uriToFileName(document.uri));
|
|
164
|
+
if (sourceFile) {
|
|
165
|
+
return {
|
|
166
|
+
sourceFile,
|
|
167
|
+
languageService: semanticCtx.typescript.languageService,
|
|
168
|
+
languageServiceHost: semanticCtx.typescript.languageServiceHost,
|
|
169
|
+
getTextDocument: semanticCtx.getTextDocument,
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
},
|
|
175
|
+
},
|
|
176
|
+
},
|
|
143
177
|
...triggerCharacters,
|
|
144
178
|
triggerCharacters: [
|
|
145
179
|
...basicTriggerCharacters,
|
|
146
180
|
jsDocTriggerCharacter,
|
|
147
181
|
directiveCommentTriggerCharacter,
|
|
148
182
|
],
|
|
149
|
-
resolveRuleContext(ruleCtx, type) {
|
|
150
|
-
if ((0, shared_1.isTsDocument)(ruleCtx.document)) {
|
|
151
|
-
let sourceFile;
|
|
152
|
-
if (type === 'format' || type === 'syntax') {
|
|
153
|
-
prepareSyntacticService(ruleCtx.document);
|
|
154
|
-
sourceFile = syntacticCtx.typescript.languageService.getProgram()?.getSourceFile(syntacticHostCtx.fileName);
|
|
155
|
-
}
|
|
156
|
-
else {
|
|
157
|
-
sourceFile = semanticCtx.typescript.languageService.getProgram()?.getSourceFile(context.env.uriToFileName(ruleCtx.document.uri));
|
|
158
|
-
}
|
|
159
|
-
if (sourceFile) {
|
|
160
|
-
ruleCtx.typescript = {
|
|
161
|
-
sourceFile,
|
|
162
|
-
getTextDocument: syntacticCtx.getTextDocument,
|
|
163
|
-
...syntacticCtx.typescript,
|
|
164
|
-
};
|
|
165
|
-
}
|
|
166
|
-
else {
|
|
167
|
-
console.warn('[volar-service-typescript] sourceFile not found', ruleCtx.document.uri);
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
return ruleCtx;
|
|
171
|
-
},
|
|
172
183
|
provideAutoInsertionEdit(document, position, ctx) {
|
|
173
184
|
if ((document.languageId === 'javascriptreact' || document.languageId === 'typescriptreact')
|
|
174
185
|
&& ctx.lastChange.text.endsWith('>')) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type * as ts from 'typescript/lib/tsserverlibrary';
|
|
2
2
|
export declare namespace SymbolKind {
|
|
3
|
-
function fromProtocolScriptElementKind(kind: ts.ScriptElementKind): 2 | 5 |
|
|
3
|
+
function fromProtocolScriptElementKind(kind: ts.ScriptElementKind): 2 | 5 | 6 | 7 | 9 | 10 | 11 | 12 | 13 | 15 | 22 | 26;
|
|
4
4
|
}
|
package/package.json
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "volar-service-typescript",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.1",
|
|
4
4
|
"main": "out/index.js",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"files": [
|
|
7
|
-
"rules.d.ts",
|
|
8
7
|
"out/**/*.js",
|
|
9
8
|
"out/**/*.d.ts"
|
|
10
9
|
],
|
|
@@ -28,5 +27,5 @@
|
|
|
28
27
|
"peerDependencies": {
|
|
29
28
|
"@volar/language-service": "*"
|
|
30
29
|
},
|
|
31
|
-
"gitHead": "
|
|
30
|
+
"gitHead": "5bf5152f076f25cb1ddbc7aa6978a8d1c7009fd6"
|
|
32
31
|
}
|
package/rules.d.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type * as ts from 'typescript/lib/tsserverlibrary';
|
|
2
|
-
import type { TextDocument } from 'vscode-languageserver-textdocument';
|
|
3
|
-
|
|
4
|
-
declare module '@volar/language-service' {
|
|
5
|
-
interface RuleContext {
|
|
6
|
-
typescript?: {
|
|
7
|
-
sourceFile: ts.SourceFile;
|
|
8
|
-
getTextDocument(uri: string): TextDocument | undefined;
|
|
9
|
-
languageService: ts.LanguageService;
|
|
10
|
-
languageServiceHost: ts.LanguageServiceHost;
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
}
|