Skip to content

Commit 8c197d8

Browse files
authored
Add collapse all functionality to test coverage view (microsoft#258906)
- ✨ Implement collapseAll method in TestCoverageView - ✨ Add collapseAll method in TestCoverageTree - 🆕 Register Collapse All action in the testing menu
1 parent 8bd9f89 commit 8c197d8

File tree

2 files changed

+31
-0
lines changed

2 files changed

+31
-0
lines changed

src/vs/workbench/contrib/testing/browser/testCoverageView.ts

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,10 @@ export class TestCoverageView extends ViewPane {
102102
super.layoutBody(height, width);
103103
this.tree.value?.layout(height, width);
104104
}
105+
106+
public collapseAll(): void {
107+
this.tree.value?.collapseAll();
108+
}
105109
}
106110

107111
let fnNodeId = 0;
@@ -381,6 +385,10 @@ class TestCoverageTree extends Disposable {
381385
this.tree.layout(height, width);
382386
}
383387

388+
public collapseAll() {
389+
this.tree.collapseAll();
390+
}
391+
384392
private updateWithDetails(el: IPrefixTreeNode<FileCoverage>, details: readonly CoverageDetails[]) {
385393
if (!this.tree.hasElement(el)) {
386394
return; // avoid any issues if the tree changes in the meanwhile
@@ -753,6 +761,7 @@ registerAction2(class TestCoverageChangeSortingAction extends ViewAction<TestCov
753761
id: MenuId.ViewTitle,
754762
when: ContextKeyExpr.equals('view', Testing.CoverageViewId),
755763
group: 'navigation',
764+
order: 1,
756765
}
757766
});
758767
}
@@ -781,3 +790,24 @@ registerAction2(class TestCoverageChangeSortingAction extends ViewAction<TestCov
781790
}));
782791
}
783792
});
793+
794+
registerAction2(class TestCoverageCollapseAllAction extends ViewAction<TestCoverageView> {
795+
constructor() {
796+
super({
797+
id: TestCommandId.CoverageViewCollapseAll,
798+
viewId: Testing.CoverageViewId,
799+
title: localize2('testing.coverageCollapseAll', 'Collapse All Coverage'),
800+
icon: Codicon.collapseAll,
801+
menu: {
802+
id: MenuId.ViewTitle,
803+
when: ContextKeyExpr.equals('view', Testing.CoverageViewId),
804+
group: 'navigation',
805+
order: 2,
806+
}
807+
});
808+
}
809+
810+
override runInView(_accessor: ServicesAccessor, view: TestCoverageView) {
811+
view.collapseAll();
812+
}
813+
});

src/vs/workbench/contrib/testing/common/constants.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ export const enum TestCommandId {
7272
CoverageToggleInExplorer = 'testing.toggleCoverageInExplorer',
7373
CoverageToggleToolbar = 'testing.coverageToggleToolbar',
7474
CoverageViewChangeSorting = 'testing.coverageViewChangeSorting',
75+
CoverageViewCollapseAll = 'testing.coverageViewCollapseAll',
7576
DebugAction = 'testing.debug',
7677
DebugAllAction = 'testing.debugAll',
7778
DebugAtCursor = 'testing.debugAtCursor',

0 commit comments

Comments
 (0)