chore(vscode): update to 1.53.2

These conflicts will be resolved in the following commits. We do it this way so
that PR review is possible.
This commit is contained in:
Joe Previte
2021-02-25 11:27:27 -07:00
1900 changed files with 83066 additions and 64589 deletions

View File

@ -9,12 +9,12 @@ import {
commands, Event, EventEmitter, ExtensionContext,
Range,
Selection, Task,
TaskGroup, tasks, TextDocument, TextDocumentShowOptions, ThemeIcon, TreeDataProvider, TreeItem, TreeItemCollapsibleState, Uri,
TaskGroup, tasks, TextDocument, TextDocumentShowOptions, ThemeIcon, TreeDataProvider, TreeItem, TreeItemLabel, TreeItemCollapsibleState, Uri,
window, workspace, WorkspaceFolder
} from 'vscode';
import * as nls from 'vscode-nls';
import {
createTask, getTaskName, isAutoDetectionEnabled, isWorkspaceFolder, NpmTaskDefinition,
createTask, getPackageManager, getTaskName, isAutoDetectionEnabled, isWorkspaceFolder, NpmTaskDefinition,
NpmTaskProvider,
startDebugging,
TaskLocation,
@ -126,13 +126,15 @@ class NoScripts extends TreeItem {
}
}
type TaskTree = Folder[] | PackageJSON[] | NoScripts[];
export class NpmScriptsTreeDataProvider implements TreeDataProvider<TreeItem> {
private taskTree: Folder[] | PackageJSON[] | NoScripts[] | null = null;
private taskTree: TaskTree | null = null;
private extensionContext: ExtensionContext;
private _onDidChangeTreeData: EventEmitter<TreeItem | null> = new EventEmitter<TreeItem | null>();
readonly onDidChangeTreeData: Event<TreeItem | null> = this._onDidChangeTreeData.event;
constructor(context: ExtensionContext, public taskProvider: NpmTaskProvider) {
constructor(private context: ExtensionContext, public taskProvider: NpmTaskProvider) {
const subscriptions = context.subscriptions;
this.extensionContext = context;
subscriptions.push(commands.registerCommand('npm.runScript', this.runScript, this));
@ -142,6 +144,8 @@ export class NpmScriptsTreeDataProvider implements TreeDataProvider<TreeItem> {
}
private async runScript(script: NpmScript) {
// Call getPackageManager to trigger the multiple lock files warning.
await getPackageManager(this.context, script.getFolder().uri);
tasks.executeTask(script.task);
}
@ -190,7 +194,7 @@ export class NpmScriptsTreeDataProvider implements TreeDataProvider<TreeItem> {
if (!uri) {
return;
}
let task = await createTask(this.extensionContext, 'install', 'install', selection.folder.workspaceFolder, uri, undefined, []);
let task = await createTask(this.extensionContext, 'install', ['install'], selection.folder.workspaceFolder, uri, true, undefined, []);
tasks.executeTask(task);
}
@ -239,7 +243,8 @@ export class NpmScriptsTreeDataProvider implements TreeDataProvider<TreeItem> {
if (!this.taskTree) {
const taskItems = await this.taskProvider.tasksWithLocation;
if (taskItems) {
this.taskTree = this.buildTaskTree(taskItems);
const taskTree = this.buildTaskTree(taskItems);
this.taskTree = this.sortTaskTree(taskTree);
if (this.taskTree.length === 0) {
let message = localize('noScripts', 'No scripts found.');
if (!isAutoDetectionEnabled()) {
@ -274,7 +279,27 @@ export class NpmScriptsTreeDataProvider implements TreeDataProvider<TreeItem> {
return fullName === task.name;
}
private buildTaskTree(tasks: TaskWithLocation[]): Folder[] | PackageJSON[] | NoScripts[] {
private getTaskTreeItemLabel(taskTreeLabel: string | TreeItemLabel | undefined): string {
if (taskTreeLabel === undefined) {
return '';
}
if (typeof taskTreeLabel === 'string') {
return taskTreeLabel;
}
return taskTreeLabel.label;
}
private sortTaskTree(taskTree: TaskTree) {
return taskTree.sort((first: TreeItem, second: TreeItem) => {
const firstLabel = this.getTaskTreeItemLabel(first.label);
const secondLabel = this.getTaskTreeItemLabel(second.label);
return firstLabel.localeCompare(secondLabel);
});
}
private buildTaskTree(tasks: TaskWithLocation[]): TaskTree {
let folders: Map<String, Folder> = new Map();
let packages: Map<String, PackageJSON> = new Map();