Skip to content

Commit 3bcdd35

Browse files
committed
fix(vscode): show welcome page only when opening a Vue file
1 parent d3be337 commit 3bcdd35

File tree

2 files changed

+29
-34
lines changed

2 files changed

+29
-34
lines changed

extensions/vscode/index.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import {
1616
} from 'reactive-vscode';
1717
import * as vscode from 'vscode';
1818
import { config } from './lib/config';
19-
import { activate as activateWelcome } from './lib/welcome';
19+
import { activate as activateWelcome, executeWelcome } from './lib/welcome';
2020

2121
let client: lsp.BaseLanguageClient | undefined;
2222
let needRestart = false;
@@ -98,9 +98,10 @@ export const { activate, deactivate } = defineExtension(() => {
9898

9999
activateAutoInsertion(selectors, client);
100100
activateDocumentDropEdit(selectors, client);
101+
activateWelcome(context);
101102
}, { immediate: true });
102103

103-
activateWelcome(context);
104+
useCommand('vue.welcome', () => executeWelcome(context));
104105
useCommand('vue.action.restartServer', async () => {
105106
await executeCommand('typescript.restartTsServer');
106107
await client?.stop();

extensions/vscode/lib/welcome.ts

Lines changed: 26 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,10 @@
1-
import { useCommand } from 'reactive-vscode';
21
import * as vscode from 'vscode';
32

43
const welcomeVersion = '3.0.6';
54

65
let panel: vscode.WebviewPanel | undefined;
76

87
export function activate(context: vscode.ExtensionContext) {
9-
useCommand('vue.welcome', () => {
10-
if (panel) {
11-
panel.reveal(vscode.ViewColumn.One);
12-
return;
13-
}
14-
15-
panel = vscode.window.createWebviewPanel(
16-
'vue.welcome',
17-
'Welcome to Vue',
18-
vscode.ViewColumn.One,
19-
{ enableScripts: true },
20-
);
21-
22-
panel.webview.html = getWelcomeHtml(context);
23-
panel.webview.onDidReceiveMessage(message => {
24-
switch (message.command) {
25-
case 'verifySponsor':
26-
vscode.commands.executeCommand('vue.action.verify');
27-
break;
28-
case 'toggleShowUpdates':
29-
context.globalState.update('vue.showUpdates', message.value);
30-
break;
31-
}
32-
});
33-
34-
panel.onDidDispose(() => {
35-
panel = undefined;
36-
});
37-
});
38-
398
if (
409
context.globalState.get('vue.showUpdates', true)
4110
&& context.globalState.get('vue-welcome') !== welcomeVersion
@@ -45,6 +14,31 @@ export function activate(context: vscode.ExtensionContext) {
4514
}
4615
}
4716

17+
export function executeWelcome(context: vscode.ExtensionContext) {
18+
if (panel) {
19+
panel.reveal(vscode.ViewColumn.One);
20+
return;
21+
}
22+
panel = vscode.window.createWebviewPanel(
23+
'vue.welcome',
24+
'Welcome to Vue',
25+
vscode.ViewColumn.One,
26+
{ enableScripts: true },
27+
);
28+
panel.webview.html = getWelcomeHtml(context);
29+
panel.webview.onDidReceiveMessage(message => {
30+
switch (message.command) {
31+
case 'verifySponsor':
32+
vscode.commands.executeCommand('vue.action.verify');
33+
break;
34+
case 'toggleShowUpdates':
35+
context.globalState.update('vue.showUpdates', message.value);
36+
break;
37+
}
38+
});
39+
panel.onDidDispose(() => panel = undefined);
40+
}
41+
4842
function getWelcomeHtml(context: vscode.ExtensionContext) {
4943
const version = context.extension.packageJSON.version;
5044
return /* HTML */ `
@@ -339,7 +333,7 @@ function getWelcomeHtml(context: vscode.ExtensionContext) {
339333
<input type="checkbox" onchange="toggleShowUpdates(this.checked)" ${
340334
context.globalState.get('vue.showUpdates', true) ? 'checked' : ''
341335
}>
342-
<span>Show release notes on every significant update</span>
336+
<span>Show release notes on update</span>
343337
</label>
344338
</div>
345339

0 commit comments

Comments
 (0)