Skip to content

Commit fc48ce6

Browse files
committed
feat(vscode): support latest volar labs
1 parent af998f0 commit fc48ce6

19 files changed

+39
-29
lines changed

extensions/vscode/src/nodeClientMain.ts

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
1-
import { ExportsInfoForLabs, supportLabsVersion } from '@volar/vscode';
1+
import { createLabsInfo } from '@volar/vscode';
22
import * as serverLib from '@vue/language-server';
3+
import * as fs from 'fs';
34
import * as vscode from 'vscode';
45
import * as lsp from 'vscode-languageclient/node';
56
import { activate as commonActivate, deactivate as commonDeactivate } from './common';
67
import { config } from './config';
78
import { middleware } from './middleware';
8-
import * as fs from 'fs';
99

1010
export async function activate(context: vscode.ExtensionContext) {
1111

12-
let languageClient: lsp.LanguageClient;
1312
let serverPathStatusItem: vscode.StatusBarItem | undefined;
1413

1514
await commonActivate(context, (
@@ -109,7 +108,7 @@ export async function activate(context: vscode.ExtensionContext) {
109108
);
110109
client.start();
111110

112-
languageClient = client;
111+
volarLabs.addLanguageClient(client);
113112

114113
updateProviders(client);
115114

@@ -118,6 +117,9 @@ export async function activate(context: vscode.ExtensionContext) {
118117

119118
const tsExtension = vscode.extensions.getExtension('vscode.typescript-language-features');
120119
const vueTsPluginExtension = vscode.extensions.getExtension('Vue.vscode-typescript-vue-plugin');
120+
const volarLabs = createLabsInfo(serverLib);
121+
122+
volarLabs.extensionExports.volarLabs.codegenStackSupport = true;
121123

122124
if (tsExtension) {
123125
await tsExtension.activate();
@@ -144,14 +146,7 @@ export async function activate(context: vscode.ExtensionContext) {
144146
});
145147
}
146148

147-
return {
148-
volarLabs: {
149-
version: supportLabsVersion,
150-
codegenStackSupport: true,
151-
languageClient: languageClient!,
152-
languageServerProtocol: serverLib,
153-
},
154-
} satisfies ExportsInfoForLabs;
149+
return volarLabs.extensionExports;
155150
}
156151

157152
export function deactivate(): Thenable<any> | undefined {

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
"devDependencies": {
2020
"@lerna-lite/cli": "latest",
2121
"@lerna-lite/publish": "latest",
22-
"@volar/language-service": "2.0.0-alpha.8",
22+
"@volar/language-service": "2.0.0-alpha.9",
2323
"typescript": "latest",
2424
"vite": "latest",
2525
"vitest": "latest"

packages/language-core/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
"directory": "packages/language-core"
1414
},
1515
"dependencies": {
16-
"@volar/language-core": "2.0.0-alpha.8",
16+
"@volar/language-core": "2.0.0-alpha.9",
1717
"@vue/compiler-dom": "^3.3.0",
1818
"@vue/shared": "^3.3.0",
1919
"computeds": "^0.0.1",

packages/language-plugin-pug/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
"@vue/language-core": "1.8.27"
1818
},
1919
"dependencies": {
20-
"@volar/source-map": "2.0.0-alpha.8",
21-
"volar-service-pug": "0.0.23"
20+
"@volar/source-map": "2.0.0-alpha.9",
21+
"volar-service-pug": "0.0.24"
2222
}
2323
}

packages/language-service/package.json

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -17,29 +17,29 @@
1717
"update-html-data": "node ./scripts/update-html-data.js"
1818
},
1919
"dependencies": {
20-
"@volar/language-core": "2.0.0-alpha.8",
21-
"@volar/language-service": "2.0.0-alpha.8",
22-
"@volar/typescript": "2.0.0-alpha.8",
20+
"@volar/language-core": "2.0.0-alpha.9",
21+
"@volar/language-service": "2.0.0-alpha.9",
22+
"@volar/typescript": "2.0.0-alpha.9",
2323
"@vue/compiler-dom": "^3.3.0",
2424
"@vue/language-core": "1.8.27",
2525
"@vue/shared": "^3.3.0",
2626
"computeds": "^0.0.1",
2727
"path-browserify": "^1.0.1",
28-
"volar-service-css": "0.0.23",
29-
"volar-service-emmet": "0.0.23",
30-
"volar-service-html": "0.0.23",
31-
"volar-service-json": "0.0.23",
32-
"volar-service-pug": "0.0.23",
33-
"volar-service-pug-beautify": "0.0.23",
34-
"volar-service-typescript": "0.0.23",
35-
"volar-service-typescript-twoslash-queries": "0.0.23",
28+
"volar-service-css": "0.0.24",
29+
"volar-service-emmet": "0.0.24",
30+
"volar-service-html": "0.0.24",
31+
"volar-service-json": "0.0.24",
32+
"volar-service-pug": "0.0.24",
33+
"volar-service-pug-beautify": "0.0.24",
34+
"volar-service-typescript": "0.0.24",
35+
"volar-service-typescript-twoslash-queries": "0.0.24",
3636
"vscode-html-languageservice": "^5.1.0",
3737
"vscode-languageserver-textdocument": "^1.0.11"
3838
},
3939
"devDependencies": {
4040
"@types/node": "latest",
4141
"@types/path-browserify": "latest",
42-
"@volar/kit": "2.0.0-alpha.8",
42+
"@volar/kit": "2.0.0-alpha.9",
4343
"vscode-languageserver-protocol": "^3.17.5",
4444
"vscode-uri": "^3.0.8"
4545
}

packages/language-service/src/languageService.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -285,6 +285,9 @@ export function resolveServices(
285285
services['vue/toggleVBind'] ??= createToggleVBindService(ts);
286286
services.emmet ??= createEmmetService();
287287

288+
services.html.name += ' (html)';
289+
services.pug.name += ' (pug)';
290+
288291
return services;
289292
}
290293

packages/language-service/src/plugins/vue-autoinsert-dotvalue.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import type { TextDocument } from 'vscode-languageserver-textdocument';
77

88
export function create(ts: typeof import('typescript/lib/tsserverlibrary')): ServicePlugin {
99
return {
10+
name: 'vue-autoinsert-dotvalue',
1011
create(context): ServicePluginInstance {
1112
return {
1213
async provideAutoInsertionEdit(document, position, lastChange) {

packages/language-service/src/plugins/vue-autoinsert-parentheses.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { isCharacterTyping } from './vue-autoinsert-dotvalue';
33

44
export function create(ts: typeof import('typescript/lib/tsserverlibrary')): ServicePlugin {
55
return {
6+
name: 'vue-autoinsert-parentheses',
67
create(context): ServicePluginInstance {
78
return {
89
async provideAutoInsertionEdit(document, position, lastChange) {

packages/language-service/src/plugins/vue-autoinsert-space.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { ServicePlugin, ServicePluginInstance } from '@volar/language-service';
22

33
export function create(): ServicePlugin {
44
return {
5+
name: 'vue-autoinsert-space',
56
create(context): ServicePluginInstance {
67
return {
78
async provideAutoInsertionEdit(document, _, lastChange) {

packages/language-service/src/plugins/vue-codelens-references.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import type * as vscode from 'vscode-languageserver-protocol';
44

55
export function create(): ServicePlugin {
66
return {
7+
name: 'vue-codelens-references',
78
create(context): ServicePluginInstance {
89
return {
910
provideReferencesCodeLensRanges(document) {

0 commit comments

Comments
 (0)