switch to use config context key over manual context definition.

This commit is contained in:
Erich Gamma 2018-04-30 19:43:54 +02:00
parent 6ed74d7736
commit c94f12ed34
3 changed files with 4 additions and 27 deletions

View file

@ -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"
}
]
},

View file

@ -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();
}
}

View file

@ -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) {