提交 c94f12ed 编写于 作者: E Erich Gamma

switch to use config context key over manual context definition.

上级 6ed74d77
......@@ -30,8 +30,7 @@
"activationEvents": [
"onCommand:workbench.action.tasks.runTask",
"onLanguage:json",
"onView:npm",
"workspaceContains:package.json"
"onView:npm"
],
"contributes": {
"views": {
......@@ -39,7 +38,7 @@
{
"id": "npm",
"name": "%view.name%",
"when": "showExplorer"
"when": "config.npm.enableScriptExplorer"
}
]
},
......
......@@ -9,7 +9,7 @@ import * as vscode from 'vscode';
import { addJSONProviders } from './features/jsonContributions';
import { NpmScriptsTreeDataProvider } from './npmView';
import { provideNpmScripts, explorerIsEnabled } from './tasks';
import { provideNpmScripts } from './tasks';
let taskProvider: vscode.Disposable | undefined;
......@@ -17,11 +17,8 @@ export async function activate(context: vscode.ExtensionContext): Promise<void>
taskProvider = registerTaskProvider(context);
registerExplorer(context);
configureHttpRequest();
vscode.workspace.onDidChangeConfiguration((e) => {
vscode.workspace.onDidChangeConfiguration(() => {
configureHttpRequest();
if (e.affectsConfiguration('npm.enableScriptExplorer')) {
updateExplorerVisibility();
}
});
context.subscriptions.push(addJSONProviders(httpRequest.xhr));
}
......@@ -53,15 +50,10 @@ function registerTaskProvider(context: vscode.ExtensionContext): vscode.Disposab
return undefined;
}
function updateExplorerVisibility() {
vscode.commands.executeCommand('setContext', 'showExplorer', explorerIsEnabled());
}
async function registerExplorer(context: vscode.ExtensionContext) {
if (vscode.workspace.workspaceFolders) {
let treeDataProvider = vscode.window.registerTreeDataProvider('npm', new NpmScriptsTreeDataProvider(context));
context.subscriptions.push(treeDataProvider);
updateExplorerVisibility();
}
}
......
......@@ -52,20 +52,6 @@ export function getPackageManager(folder: WorkspaceFolder): string {
return workspace.getConfiguration('npm', folder.uri).get<string>('packageManager', 'npm');
}
export function explorerIsEnabled(): boolean {
let folders = workspace.workspaceFolders;
if (!folders) {
return false;
}
for (let i = 0; i < folders.length; i++) {
let folder = folders[i];
if (workspace.getConfiguration('npm', folder.uri).get<boolean>('enableScriptExplorer') === true) {
return true;
}
}
return false;
}
export async function hasNpmScripts(): Promise<boolean> {
let folders = workspace.workspaceFolders;
if (!folders) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册