From 0ccec43747162cfcebf727fc255a2296f0801fbb Mon Sep 17 00:00:00 2001 From: Logan Ramos Date: Tue, 30 Aug 2022 10:10:12 -0400 Subject: [PATCH] Some explorer commands should ignore nested children (#159563) Add ability to ingore nested children --- src/vs/workbench/contrib/files/browser/explorerService.ts | 4 ++-- src/vs/workbench/contrib/files/browser/files.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/vs/workbench/contrib/files/browser/explorerService.ts b/src/vs/workbench/contrib/files/browser/explorerService.ts index 85473e85f29..aa7ed9293b5 100644 --- a/src/vs/workbench/contrib/files/browser/explorerService.ts +++ b/src/vs/workbench/contrib/files/browser/explorerService.ts @@ -147,7 +147,7 @@ export class ExplorerService implements IExplorerService { this.view = contextProvider; } - getContext(respectMultiSelection: boolean): ExplorerItem[] { + getContext(respectMultiSelection: boolean, ignoreNestedChildren: boolean = false): ExplorerItem[] { if (!this.view) { return []; } @@ -155,7 +155,7 @@ export class ExplorerService implements IExplorerService { const items = new Set(this.view.getContext(respectMultiSelection)); items.forEach(item => { try { - if (respectMultiSelection && this.view?.isItemCollapsed(item) && item.nestedChildren) { + if (respectMultiSelection && !ignoreNestedChildren && this.view?.isItemCollapsed(item) && item.nestedChildren) { for (const child of item.nestedChildren) { items.add(child); } diff --git a/src/vs/workbench/contrib/files/browser/files.ts b/src/vs/workbench/contrib/files/browser/files.ts index c02da0474ac..9cdada667bd 100644 --- a/src/vs/workbench/contrib/files/browser/files.ts +++ b/src/vs/workbench/contrib/files/browser/files.ts @@ -23,7 +23,7 @@ export interface IExplorerService { readonly roots: ExplorerItem[]; readonly sortOrderConfiguration: ISortOrderConfiguration; - getContext(respectMultiSelection: boolean): ExplorerItem[]; + getContext(respectMultiSelection: boolean, ignoreNestedChildren?: boolean): ExplorerItem[]; hasViewFocus(): boolean; setEditable(stat: ExplorerItem, data: IEditableData | null): Promise; getEditable(): { stat: ExplorerItem; data: IEditableData } | undefined; @@ -105,7 +105,7 @@ export function getMultiSelectedResources(resource: URI | object | undefined, li // Explorer if (list instanceof AsyncDataTree && list.getFocus().every(item => item instanceof ExplorerItem)) { // Explorer - const context = explorerService.getContext(true); + const context = explorerService.getContext(true, true); if (context.length) { return context.map(c => c.resource); }