Skip to content

Commit e37a833

Browse files
Add revealItem method and pass through to DataExtensionsEditorView
1 parent 805bb74 commit e37a833

File tree

4 files changed

+18
-7
lines changed

4 files changed

+18
-7
lines changed

extensions/ql-vscode/src/data-extensions-editor/data-extensions-editor-module.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,7 @@ export class DataExtensionsEditorModule extends DisposableObject {
148148
modelFile,
149149
Mode.Application,
150150
this.modelDetailsPanel.setState.bind(this.modelDetailsPanel),
151+
this.modelDetailsPanel.revealItem.bind(this.modelDetailsPanel),
151152
);
152153
await view.openView();
153154
},

extensions/ql-vscode/src/data-extensions-editor/data-extensions-editor-view.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ import { showResolvableLocation } from "../databases/local-databases/locations";
3131
import { decodeBqrsToExternalApiUsages } from "./bqrs";
3232
import { redactableError } from "../common/errors";
3333
import { readQueryResults, runQuery } from "./external-api-usage-query";
34-
import { ExternalApiUsage } from "./external-api-usage";
34+
import { ExternalApiUsage, Usage } from "./external-api-usage";
3535
import { ModeledMethod } from "./modeled-method";
3636
import { ExtensionPack } from "./shared/extension-pack";
3737
import { autoModel, ModelRequest, ModelResponse } from "./auto-model-api";
@@ -74,6 +74,7 @@ export class DataExtensionsEditorView extends AbstractWebview<
7474
externalApiUsages: ExternalApiUsage[],
7575
databaseItem: DatabaseItem,
7676
) => void,
77+
private readonly revealItemInDetailsPanel: (usage: Usage) => Promise<void>,
7778
) {
7879
super(ctx);
7980

@@ -503,6 +504,7 @@ export class DataExtensionsEditorView extends AbstractWebview<
503504
modelFile,
504505
Mode.Framework,
505506
this.updateModelDetailsPanelState,
507+
this.revealItemInDetailsPanel,
506508
);
507509
await view.openView();
508510
});

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ export class ModelDetailsDataProvider
6363
}
6464
}
6565

66-
type ModelDetailsTreeViewItem = ExternalApiUsage | Usage;
66+
export type ModelDetailsTreeViewItem = ExternalApiUsage | Usage;
6767

6868
function isExternalApiUsage(
6969
item: ModelDetailsTreeViewItem,
Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,25 @@
1-
import { window } from "vscode";
1+
import { TreeView, window } from "vscode";
22
import { DisposableObject } from "../../common/disposable-object";
3-
import { ModelDetailsDataProvider } from "./model-details-data-provider";
4-
import { ExternalApiUsage } from "../external-api-usage";
3+
import {
4+
ModelDetailsDataProvider,
5+
ModelDetailsTreeViewItem,
6+
} from "./model-details-data-provider";
7+
import { ExternalApiUsage, Usage } from "../external-api-usage";
58
import { DatabaseItem } from "../../databases/local-databases";
69

710
export class ModelDetailsPanel extends DisposableObject {
811
private readonly dataProvider: ModelDetailsDataProvider;
12+
private readonly treeView: TreeView<ModelDetailsTreeViewItem>;
913

1014
public constructor() {
1115
super();
1216

1317
this.dataProvider = new ModelDetailsDataProvider();
1418

15-
const treeView = window.createTreeView("codeQLModelDetails", {
19+
this.treeView = window.createTreeView("codeQLModelDetails", {
1620
treeDataProvider: this.dataProvider,
1721
});
18-
this.push(treeView);
22+
this.push(this.treeView);
1923
}
2024

2125
public setState(
@@ -24,4 +28,8 @@ export class ModelDetailsPanel extends DisposableObject {
2428
): void {
2529
this.dataProvider.setState(externalApiUsages, databaseItem);
2630
}
31+
32+
public async revealItem(usage: Usage): Promise<void> {
33+
await this.treeView.reveal(usage);
34+
}
2735
}

0 commit comments

Comments
 (0)