Skip to content

Commit af998f0

Browse files
committed
refactor(language-server): update to new volar api
1 parent 55ddedb commit af998f0

File tree

12 files changed

+176
-187
lines changed

12 files changed

+176
-187
lines changed

extensions/vscode/package.json

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -388,11 +388,6 @@
388388
"default": "node",
389389
"description": "Vue Language Server runtime."
390390
},
391-
"vue.server.configFilePath": {
392-
"type": "string",
393-
"default": "./volar.config.js",
394-
"description": "Path to volar.config.js."
395-
},
396391
"vue.server.maxFileSize": {
397392
"type": "number",
398393
"default": 20971520,

extensions/vscode/scripts/build.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ const fs = require('fs');
55
require('esbuild').context({
66
entryPoints: {
77
client: './out/nodeClientMain.js',
8-
server: './node_modules/@vue/language-server/bin/vue-simple-language-server.js',
8+
server: './node_modules/@vue/language-server/bin/vue-language-server.js',
99
},
1010
bundle: true,
1111
metafile: process.argv.includes('--metafile'),

extensions/vscode/server.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
try {
2-
module.exports = require('@vue/language-server/bin/vue-simple-language-server');
2+
module.exports = require('@vue/language-server/bin/vue-language-server');
33
} catch {
44
module.exports = require('./dist/server');
55
}

extensions/vscode/src/common.ts

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import {
55
activateWriteVirtualFiles,
66
getTsdk,
77
} from '@volar/vscode';
8-
import { DiagnosticModel, VueServerInitializationOptions } from '@vue/language-server';
8+
import { DiagnosticModel, VueInitializationOptions } from '@vue/language-server';
99
import * as vscode from 'vscode';
1010
import * as lsp from 'vscode-languageclient';
1111
import { config } from './config';
@@ -20,7 +20,7 @@ type CreateLanguageClient = (
2020
id: string,
2121
name: string,
2222
langs: lsp.DocumentFilter[],
23-
initOptions: VueServerInitializationOptions,
23+
initOptions: VueInitializationOptions,
2424
port: number,
2525
outputChannel: vscode.OutputChannel,
2626
) => lsp.BaseLanguageClient;
@@ -143,10 +143,9 @@ export function getDocumentSelector(): lsp.DocumentFilter[] {
143143

144144
async function getInitializationOptions(
145145
context: vscode.ExtensionContext,
146-
options: VueServerInitializationOptions = {},
146+
options: VueInitializationOptions = {},
147147
) {
148148
// volar
149-
options.configFilePath = './__ignore__.config.js'; // config.server.configFilePath
150149
options.diagnosticModel = config.server.diagnosticModel === 'pull' ? DiagnosticModel.Pull : DiagnosticModel.Push;
151150
options.typescript = { tsdk: (await getTsdk(context)).tsdk };
152151
options.reverseConfigFilePriority = config.server.reverseConfigFilePriority;
@@ -156,10 +155,13 @@ async function getInitializationOptions(
156155
tokenModifiers: [],
157156
};
158157
options.fullCompletionList = config.server.fullCompletionList;
159-
options.additionalExtensions = [
160-
...config.server.additionalExtensions,
161-
...!config.server.petiteVue.supportHtmlFile ? [] : ['html'],
162-
...!config.server.vitePress.supportMdFile ? [] : ['md'],
163-
];
158+
options.vue = {
159+
hybridMode: true,
160+
additionalExtensions: [
161+
...config.server.additionalExtensions,
162+
...!config.server.petiteVue.supportHtmlFile ? [] : ['html'],
163+
...!config.server.vitePress.supportMdFile ? [] : ['md'],
164+
],
165+
};
164166
return options;
165167
}

extensions/vscode/src/config.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ export const config = {
2424
diagnosticModel: 'push' | 'pull';
2525
additionalExtensions: string[];
2626
fullCompletionList: boolean;
27-
configFilePath: string;
2827
vitePress: {
2928
supportMdFile: boolean;
3029
};

packages/language-core/src/languageModule.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,11 @@ export function createVueLanguage(
134134
}
135135
},
136136
typescript: {
137+
extraFileExtensions: vueCompilerOptions.extensions.map<ts.FileExtensionInfo>(ext => ({
138+
extension: ext,
139+
isMixedContent: true,
140+
scriptKind: 7 satisfies ts.ScriptKind.Deferred,
141+
})),
137142
resolveSourceFileName(tsFileName) {
138143
const baseName = path.basename(tsFileName);
139144
if (baseName.indexOf('.vue.') >= 0) { // .vue.ts .vue.d.ts .vue.js .vue.jsx .vue.tsx

packages/language-server/bin/vue-simple-language-server.js

Lines changed: 0 additions & 7 deletions
This file was deleted.

packages/language-server/src/languageServerPlugin.ts

Lines changed: 0 additions & 140 deletions
This file was deleted.

0 commit comments

Comments
 (0)