Skip to content

Commit eda4612

Browse files
committed
feat: startup extension by open .ts file for take over mode
1 parent 63e2467 commit eda4612

File tree

2 files changed

+28
-0
lines changed

2 files changed

+28
-0
lines changed

Diff for: extensions/vscode-vue-language-features/package.json

+4
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@
2525
],
2626
"activationEvents": [
2727
"onLanguage:vue",
28+
"onLanguage:javascript",
29+
"onLanguage:typescript",
30+
"onLanguage:javascriptreact",
31+
"onLanguage:typescriptreact",
2832
"onWebviewPanel:preview"
2933
],
3034
"main": "node_modules/@volar/client/out/extension.js",

Diff for: packages/client/src/extension.ts

+24
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,30 @@ let lowPowerMode = false;
2626

2727
export async function activate(context: vscode.ExtensionContext) {
2828

29+
const stopCheck = vscode.window.onDidChangeActiveTextEditor(tryActivate);
30+
tryActivate();
31+
32+
function tryActivate() {
33+
34+
if (!vscode.window.activeTextEditor)
35+
return;
36+
37+
const currentlangId = vscode.window.activeTextEditor.document.languageId;
38+
if (currentlangId === 'vue') {
39+
doActivate(context);
40+
stopCheck.dispose();
41+
}
42+
43+
const takeOverMode = takeOverModeEnabled();
44+
if (takeOverMode && ['javascript', 'typescript', 'javascriptreact', 'typescriptreact'].includes(currentlangId)) {
45+
doActivate(context);
46+
stopCheck.dispose();
47+
}
48+
}
49+
}
50+
51+
async function doActivate(context: vscode.ExtensionContext) {
52+
2953
lowPowerMode = lowPowerModeEnabled();
3054
if (lowPowerMode) {
3155
vscode.window

0 commit comments

Comments
 (0)