Skip to content

Commit 6aea8fe

Browse files
Covert to canonical usage object before calling reveal
1 parent e37a833 commit 6aea8fe

File tree

2 files changed

+27
-1
lines changed

2 files changed

+27
-1
lines changed

extensions/ql-vscode/src/data-extensions-editor/model-details/model-details-data-provider.ts

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,17 @@ export class ModelDetailsDataProvider
6161
return [];
6262
}
6363
}
64+
65+
public resolveCanonicalUsage(usage: Usage): Usage | undefined {
66+
for (const externalApiUsage of this.externalApiUsages) {
67+
for (const u of externalApiUsage.usages) {
68+
if (usagesAreEqual(u, usage)) {
69+
return u;
70+
}
71+
}
72+
}
73+
return undefined;
74+
}
6475
}
6576

6677
export type ModelDetailsTreeViewItem = ExternalApiUsage | Usage;
@@ -70,3 +81,15 @@ function isExternalApiUsage(
7081
): item is ExternalApiUsage {
7182
return (item as any).usages !== undefined;
7283
}
84+
85+
function usagesAreEqual(u1: Usage, u2: Usage): boolean {
86+
return (
87+
u1.label === u2.label &&
88+
u1.classification === u2.classification &&
89+
u1.url.uri === u2.url.uri &&
90+
u1.url.startLine === u2.url.startLine &&
91+
u1.url.startColumn === u2.url.startColumn &&
92+
u1.url.endLine === u2.url.endLine &&
93+
u1.url.endColumn === u2.url.endColumn
94+
);
95+
}

extensions/ql-vscode/src/data-extensions-editor/model-details/model-details-panel.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,9 @@ export class ModelDetailsPanel extends DisposableObject {
3030
}
3131

3232
public async revealItem(usage: Usage): Promise<void> {
33-
await this.treeView.reveal(usage);
33+
const canonicalUsage = this.dataProvider.resolveCanonicalUsage(usage);
34+
if (canonicalUsage !== undefined) {
35+
await this.treeView.reveal(canonicalUsage);
36+
}
3437
}
3538
}

0 commit comments

Comments
 (0)