From 4166d49ed6b270f25c857045c0f3eae0f59ee620 Mon Sep 17 00:00:00 2001 From: Johnson Chu Date: Fri, 29 Mar 2024 02:21:07 +0800 Subject: [PATCH] chore(lint): fix lint config for `extensions/vscode/tsconfig.json` --- extensions/vscode/package.json | 5 ++-- extensions/vscode/src/common.ts | 25 ++++++------------- extensions/vscode/src/features/doctor.ts | 3 +-- extensions/vscode/src/features/nameCasing.ts | 2 +- .../vscode/src/features/splitEditors.ts | 2 +- extensions/vscode/src/middleware.ts | 7 +++--- extensions/vscode/src/nodeClientMain.ts | 2 +- package.json | 2 +- pnpm-lock.yaml | 3 --- tsl.config.ts | 17 ++++++++++++- 10 files changed, 34 insertions(+), 34 deletions(-) diff --git a/extensions/vscode/package.json b/extensions/vscode/package.json index 935e5f62b7..d3446f36e3 100644 --- a/extensions/vscode/package.json +++ b/extensions/vscode/package.json @@ -263,7 +263,7 @@ "items": { "type": "string" }, - "default": [], + "default": [ ], "description": "List any additional file extensions that should be processed as Vue files (requires restart)." }, "vue.doctor.status": { @@ -495,7 +495,6 @@ "esbuild-plugin-copy": "latest", "esbuild-visualizer": "latest", "semver": "^7.5.4", - "vsce": "latest", - "vscode-languageclient": "^9.0.1" + "vsce": "latest" } } diff --git a/extensions/vscode/src/common.ts b/extensions/vscode/src/common.ts index 313ad4ab92..30b584ed57 100644 --- a/extensions/vscode/src/common.ts +++ b/extensions/vscode/src/common.ts @@ -1,15 +1,6 @@ -import { - activateAutoInsertion, - activateDocumentDropEdit, - activateServerSys, - activateWriteVirtualFiles, - activateTsConfigStatusItem, - activateTsVersionStatusItem, - getTsdk, -} from '@volar/vscode'; import { DiagnosticModel, VueInitializationOptions } from '@vue/language-server'; import * as vscode from 'vscode'; -import type * as lsp from 'vscode-languageclient'; +import * as lsp from '@volar/vscode'; import { config } from './config'; import * as doctor from './features/doctor'; import * as nameCasing from './features/nameCasing'; @@ -76,14 +67,14 @@ async function doActivate(context: vscode.ExtensionContext, createLc: CreateLang splitEditors.register(context, client); doctor.register(context, client); - activateAutoInsertion(selectors, client); - activateDocumentDropEdit(selectors, client); - activateWriteVirtualFiles('vue.action.writeVirtualFiles', client); - activateServerSys(client); + lsp.activateAutoInsertion(selectors, client); + lsp.activateDocumentDropEdit(selectors, client); + lsp.activateWriteVirtualFiles('vue.action.writeVirtualFiles', client); + lsp.activateServerSys(client); if (!config.server.hybridMode) { - activateTsConfigStatusItem(selectors, 'vue.tsconfig', client); - activateTsVersionStatusItem(selectors, 'vue.tsversion', context, client, text => 'TS ' + text); + lsp.activateTsConfigStatusItem(selectors, 'vue.tsconfig', client); + lsp.activateTsVersionStatusItem(selectors, 'vue.tsversion', context, client, text => 'TS ' + text); } const hybridModeStatus = vscode.languages.createLanguageStatusItem('vue-hybrid-mode', selectors); @@ -189,7 +180,7 @@ async function getInitializationOptions( return { // volar diagnosticModel: config.server.diagnosticModel === 'pull' ? DiagnosticModel.Pull : DiagnosticModel.Push, - typescript: { tsdk: (await getTsdk(context)).tsdk }, + typescript: { tsdk: (await lsp.getTsdk(context)).tsdk }, maxFileSize: config.server.maxFileSize, semanticTokensLegend: { tokenTypes: ['component'], diff --git a/extensions/vscode/src/features/doctor.ts b/extensions/vscode/src/features/doctor.ts index 91afc4f7a3..60e2f49084 100644 --- a/extensions/vscode/src/features/doctor.ts +++ b/extensions/vscode/src/features/doctor.ts @@ -1,8 +1,7 @@ -import { getTsdk } from '@volar/vscode'; +import { BaseLanguageClient, getTsdk } from '@volar/vscode'; import { ParseSFCRequest } from '@vue/language-server'; import * as semver from 'semver'; import * as vscode from 'vscode'; -import type { BaseLanguageClient } from 'vscode-languageclient'; import { config } from '../config'; const scheme = 'vue-doctor'; diff --git a/extensions/vscode/src/features/nameCasing.ts b/extensions/vscode/src/features/nameCasing.ts index 6ab166dc3d..bb9b39becc 100644 --- a/extensions/vscode/src/features/nameCasing.ts +++ b/extensions/vscode/src/features/nameCasing.ts @@ -1,6 +1,6 @@ import * as vscode from 'vscode'; import { quickPick } from '@volar/vscode/lib/common'; -import { BaseLanguageClient, State } from 'vscode-languageclient'; +import { BaseLanguageClient, State } from '@volar/vscode'; import { AttrNameCasing, TagNameCasing, DetectNameCasingRequest, GetConvertAttrCasingEditsRequest, GetConvertTagCasingEditsRequest } from '@vue/language-server'; import { config } from '../config'; diff --git a/extensions/vscode/src/features/splitEditors.ts b/extensions/vscode/src/features/splitEditors.ts index e1cc616cfd..de68f2f4be 100644 --- a/extensions/vscode/src/features/splitEditors.ts +++ b/extensions/vscode/src/features/splitEditors.ts @@ -1,6 +1,6 @@ +import type { BaseLanguageClient } from '@volar/vscode'; import { ParseSFCRequest } from '@vue/language-server'; import * as vscode from 'vscode'; -import type { BaseLanguageClient } from 'vscode-languageclient'; import { config } from '../config'; type SFCBlock = ParseSFCRequest.ResponseType['descriptor']['customBlocks'][number]; diff --git a/extensions/vscode/src/middleware.ts b/extensions/vscode/src/middleware.ts index c3b3815546..2ae213f6eb 100644 --- a/extensions/vscode/src/middleware.ts +++ b/extensions/vscode/src/middleware.ts @@ -1,11 +1,10 @@ -import { middleware as baseMiddleware } from '@volar/vscode'; import { AttrNameCasing, TagNameCasing } from '@vue/language-server'; import * as vscode from 'vscode'; -import type * as lsp from 'vscode-languageclient'; +import * as lsp from '@volar/vscode'; import { attrNameCasings, tagNameCasings } from './features/nameCasing'; export const middleware: lsp.Middleware = { - ...baseMiddleware, + ...lsp.middleware, async resolveCodeAction(item, token, next) { if (item.kind?.value === 'refactor.move.newFile.dumb') { const inputName = await vscode.window.showInputBox({ value: (item as any).data.original.data.newName }); @@ -14,7 +13,7 @@ export const middleware: lsp.Middleware = { } (item as any).data.original.data.newName = inputName; } - return await (baseMiddleware.resolveCodeAction?.(item, token, next) ?? next(item, token)); + return await (lsp.middleware.resolveCodeAction?.(item, token, next) ?? next(item, token)); }, workspace: { configuration(params, token, next) { diff --git a/extensions/vscode/src/nodeClientMain.ts b/extensions/vscode/src/nodeClientMain.ts index e57af0734f..9ef9cf0e42 100644 --- a/extensions/vscode/src/nodeClientMain.ts +++ b/extensions/vscode/src/nodeClientMain.ts @@ -2,7 +2,7 @@ import { createLabsInfo } from '@volar/vscode'; import * as serverLib from '@vue/language-server'; import * as fs from 'fs'; import * as vscode from 'vscode'; -import * as lsp from 'vscode-languageclient/node'; +import * as lsp from '@volar/vscode/node'; import { activate as commonActivate, deactivate as commonDeactivate } from './common'; import { config } from './config'; import { middleware } from './middleware'; diff --git a/package.json b/package.json index f7f64b0efd..54795b2428 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "release:next-base": "npm run release:base -- --dist-tag next", "release:next-vue": "cd ./extensions/vscode && npm run release:next", "test": "vitest run", - "lint": "tsl --projects packages/*/tsconfig.json", + "lint": "tsl --projects {packages/*/tsconfig.json,extensions/*/tsconfig.json}", "lint:fix": "npm run lint -- --fix", "chrome": "vscode-test-web --browserType=chromium --extensionDevelopmentPath=./extensions/vscode ../volar-starter" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 619c6de83c..7170091410 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -68,9 +68,6 @@ importers: vsce: specifier: latest version: 2.15.0 - vscode-languageclient: - specifier: ^9.0.1 - version: 9.0.1 packages/component-meta: dependencies: diff --git a/tsl.config.ts b/tsl.config.ts index fd2e028ee2..020725bcc4 100644 --- a/tsl.config.ts +++ b/tsl.config.ts @@ -1 +1,16 @@ -export { default } from '@volar/tsl-config'; +import VolarLintConfig from '@volar/tsl-config'; +import { defineConfig } from 'tsl'; + +export default defineConfig({ + ...VolarLintConfig, + plugins: [ + ctx => ({ + resolveRules(rules) { + if (ctx.tsconfig.endsWith('extensions/vscode/tsconfig.json')) { + delete rules['missing-dependency']; + } + return rules; + }, + }), + ] +});