Skip to content

Commit 20f06ed

Browse files
committed
make OutlineGroup fit for being used with other things than providers, microsoft#95234
1 parent 88e9803 commit 20f06ed

3 files changed

Lines changed: 9 additions & 9 deletions

File tree

src/vs/editor/contrib/documentSymbols/outlineModel.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -120,14 +120,14 @@ export class OutlineGroup extends TreeElement {
120120
constructor(
121121
readonly id: string,
122122
public parent: TreeElement | undefined,
123-
readonly provider: DocumentSymbolProvider,
124-
readonly providerIndex: number,
123+
readonly label: string,
124+
readonly order: number,
125125
) {
126126
super();
127127
}
128128

129129
adopt(parent: TreeElement): OutlineGroup {
130-
let res = new OutlineGroup(this.id, parent, this.provider, this.providerIndex);
130+
let res = new OutlineGroup(this.id, parent, this.label, this.order);
131131
for (const [key, value] of this.children) {
132132
res.children.set(key, value.adopt(res));
133133
}
@@ -320,7 +320,7 @@ export class OutlineModel extends TreeElement {
320320
const promises = provider.map((provider, index) => {
321321

322322
let id = TreeElement.findId(`provider_${index}`, result);
323-
let group = new OutlineGroup(id, result, provider, index);
323+
let group = new OutlineGroup(id, result, provider.displayName ?? 'Unknown Outline Provider', index);
324324

325325
return Promise.resolve(provider.provideDocumentSymbols(result.textModel, cts.token)).then(result => {
326326
for (const info of result || []) {

src/vs/editor/contrib/documentSymbols/outlineTree.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ export class OutlineNavigationLabelProvider implements IKeyboardNavigationLabelP
3232

3333
getKeyboardNavigationLabel(element: OutlineItem): { toString(): string; } {
3434
if (element instanceof OutlineGroup) {
35-
return element.provider.displayName || element.id;
35+
return element.label;
3636
} else {
3737
return element.symbol.name;
3838
}
@@ -43,7 +43,7 @@ export class OutlineAccessibilityProvider implements IListAccessibilityProvider<
4343

4444
getAriaLabel(element: OutlineItem): string | null {
4545
if (element instanceof OutlineGroup) {
46-
return element.provider.displayName || element.id;
46+
return element.label;
4747
} else {
4848
return element.symbol.name;
4949
}
@@ -102,7 +102,7 @@ export class OutlineGroupRenderer implements ITreeRenderer<OutlineGroup, FuzzySc
102102

103103
renderElement(node: ITreeNode<OutlineGroup, FuzzyScore>, index: number, template: OutlineGroupTemplate): void {
104104
template.label.set(
105-
node.element.provider.displayName || localize('provider', "Outline Provider"),
105+
node.element.label,
106106
createMatches(node.filterData)
107107
);
108108
}
@@ -324,7 +324,7 @@ export class OutlineItemComparator implements ITreeSorter<OutlineItem> {
324324

325325
compare(a: OutlineItem, b: OutlineItem): number {
326326
if (a instanceof OutlineGroup && b instanceof OutlineGroup) {
327-
return a.providerIndex - b.providerIndex;
327+
return a.order - b.order;
328328

329329
} else if (a instanceof OutlineElement && b instanceof OutlineElement) {
330330
if (this.type === OutlineSortOrder.ByKind) {

src/vs/workbench/browser/parts/editor/breadcrumbsControl.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ class Item extends BreadcrumbsItem {
104104
} else if (this.element instanceof OutlineGroup) {
105105
// provider
106106
let label = new IconLabel(container);
107-
label.setLabel(this.element.provider.displayName || '');
107+
label.setLabel(this.element.label);
108108
this._disposables.add(label);
109109

110110
} else if (this.element instanceof OutlineElement) {

0 commit comments

Comments
 (0)