Skip to content
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions src/vs/platform/quickinput/browser/media/quickInput.css
Original file line number Diff line number Diff line change
Expand Up @@ -388,6 +388,11 @@
padding-bottom: 5px;
}

.quick-input-tree.quick-input-tree-flat .monaco-tl-indent,
.quick-input-tree.quick-input-tree-flat .monaco-tl-twistie {
display: none !important;
}

.quick-input-tree .quick-input-tree-entry {
box-sizing: border-box;
overflow: hidden;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import { QuickInputTreeRenderer } from './quickInputTreeRenderer.js';
import { QuickInputTreeSorter } from './quickInputTreeSorter.js';

const $ = dom.$;
const flatHierarchyClass = 'quick-input-tree-flat';

export class QuickInputTreeController extends Disposable {
private readonly _renderer: QuickInputTreeRenderer<IQuickTreeItem>;
Expand All @@ -33,7 +34,7 @@ export class QuickInputTreeController extends Disposable {
private readonly _onDidChangeCheckboxState = this._register(new Emitter<IQuickTreeCheckboxEvent<IQuickTreeItem>>());
readonly onDidChangeCheckboxState = this._onDidChangeCheckboxState.event;

private readonly _onDidCheckedLeafItemsChange = this._register(new Emitter<ReadonlyArray<IQuickTreeItem>>);
private readonly _onDidCheckedLeafItemsChange = this._register(new Emitter<ReadonlyArray<IQuickTreeItem>>());
readonly onDidChangeCheckedLeafItems = this._onDidCheckedLeafItemsChange.event;

private readonly _onLeave = new Emitter<void>();
Expand Down Expand Up @@ -132,9 +133,11 @@ export class QuickInputTreeController extends Disposable {
}

setTreeData(treeData: readonly IQuickTreeItem[]): void {
let hasNestedItems = false;
const createTreeElement = (item: IQuickTreeItem): IObjectTreeElement<IQuickTreeItem> => {
let children: IObjectTreeElement<IQuickTreeItem>[] | undefined;
if (item.children) {
if (item.children?.length) {
hasNestedItems = true;
children = item.children.map(child => createTreeElement(child));
item.checked = getParentNodeState(children);
}
Expand All @@ -148,6 +151,7 @@ export class QuickInputTreeController extends Disposable {

const treeElements = treeData.map(item => createTreeElement(item));
this._tree.setChildren(null, treeElements);
this._container.classList.toggle(flatHierarchyClass, !hasNestedItems);
}

layout(maxHeight?: number): void {
Expand Down
Loading