Convert extensions/ql-vscode/src/variant-analysis/variant-analysis-view.ts to call typed commands

This commit is contained in:
Robert
2023-03-24 14:10:19 +00:00
parent d4a8eb9834
commit 93436ad610
4 changed files with 18 additions and 6 deletions

View File

@@ -358,7 +358,10 @@ export async function activate(
), ),
); );
const variantAnalysisViewSerializer = new VariantAnalysisViewSerializer(ctx); const variantAnalysisViewSerializer = new VariantAnalysisViewSerializer(
ctx,
app,
);
Window.registerWebviewPanelSerializer( Window.registerWebviewPanelSerializer(
VariantAnalysisView.viewType, VariantAnalysisView.viewType,
variantAnalysisViewSerializer, variantAnalysisViewSerializer,

View File

@@ -317,7 +317,9 @@ export class VariantAnalysisManager
} }
if (!this.views.has(variantAnalysisId)) { if (!this.views.has(variantAnalysisId)) {
// The view will register itself with the manager, so we don't need to do anything here. // The view will register itself with the manager, so we don't need to do anything here.
this.track(new VariantAnalysisView(this.ctx, variantAnalysisId, this)); this.track(
new VariantAnalysisView(this.ctx, this.app, variantAnalysisId, this),
);
} }
const variantAnalysisView = this.views.get(variantAnalysisId)!; const variantAnalysisView = this.views.get(variantAnalysisId)!;

View File

@@ -2,6 +2,7 @@ import { ExtensionContext, WebviewPanel, WebviewPanelSerializer } from "vscode";
import { VariantAnalysisView } from "./variant-analysis-view"; import { VariantAnalysisView } from "./variant-analysis-view";
import { VariantAnalysisState } from "../pure/interface-types"; import { VariantAnalysisState } from "../pure/interface-types";
import { VariantAnalysisViewManager } from "./variant-analysis-view-manager"; import { VariantAnalysisViewManager } from "./variant-analysis-view-manager";
import { App } from "../common/app";
export class VariantAnalysisViewSerializer implements WebviewPanelSerializer { export class VariantAnalysisViewSerializer implements WebviewPanelSerializer {
private resolvePromises: Array< private resolvePromises: Array<
@@ -10,7 +11,10 @@ export class VariantAnalysisViewSerializer implements WebviewPanelSerializer {
private manager?: VariantAnalysisViewManager<VariantAnalysisView>; private manager?: VariantAnalysisViewManager<VariantAnalysisView>;
public constructor(private readonly ctx: ExtensionContext) {} public constructor(
private readonly ctx: ExtensionContext,
private readonly app: App,
) {}
onExtensionLoaded( onExtensionLoaded(
manager: VariantAnalysisViewManager<VariantAnalysisView>, manager: VariantAnalysisViewManager<VariantAnalysisView>,
@@ -49,6 +53,7 @@ export class VariantAnalysisViewSerializer implements WebviewPanelSerializer {
const view = new VariantAnalysisView( const view = new VariantAnalysisView(
this.ctx, this.ctx,
this.app,
variantAnalysisState.variantAnalysisId, variantAnalysisState.variantAnalysisId,
manager, manager,
); );

View File

@@ -1,4 +1,4 @@
import { commands, ExtensionContext, ViewColumn } from "vscode"; import { ExtensionContext, ViewColumn } from "vscode";
import { AbstractWebview, WebviewPanelConfig } from "../abstract-webview"; import { AbstractWebview, WebviewPanelConfig } from "../abstract-webview";
import { extLogger } from "../common"; import { extLogger } from "../common";
import { import {
@@ -23,6 +23,7 @@ import { telemetryListener } from "../telemetry";
import { redactableError } from "../pure/errors"; import { redactableError } from "../pure/errors";
import { DataFlowPathsView } from "./data-flow-paths-view"; import { DataFlowPathsView } from "./data-flow-paths-view";
import { DataFlowPaths } from "./shared/data-flow-paths"; import { DataFlowPaths } from "./shared/data-flow-paths";
import { App } from "../common/app";
export class VariantAnalysisView export class VariantAnalysisView
extends AbstractWebview<ToVariantAnalysisMessage, FromVariantAnalysisMessage> extends AbstractWebview<ToVariantAnalysisMessage, FromVariantAnalysisMessage>
@@ -33,6 +34,7 @@ export class VariantAnalysisView
public constructor( public constructor(
ctx: ExtensionContext, ctx: ExtensionContext,
private readonly app: App,
public readonly variantAnalysisId: number, public readonly variantAnalysisId: number,
private readonly manager: VariantAnalysisViewManager<VariantAnalysisView>, private readonly manager: VariantAnalysisViewManager<VariantAnalysisView>,
) { ) {
@@ -118,7 +120,7 @@ export class VariantAnalysisView
await this.manager.cancelVariantAnalysis(this.variantAnalysisId); await this.manager.cancelVariantAnalysis(this.variantAnalysisId);
break; break;
case "requestRepositoryResults": case "requestRepositoryResults":
void commands.executeCommand( void this.app.commands.execute(
"codeQL.loadVariantAnalysisRepoResults", "codeQL.loadVariantAnalysisRepoResults",
this.variantAnalysisId, this.variantAnalysisId,
msg.repositoryFullName, msg.repositoryFullName,
@@ -131,7 +133,7 @@ export class VariantAnalysisView
await this.manager.openQueryText(this.variantAnalysisId); await this.manager.openQueryText(this.variantAnalysisId);
break; break;
case "copyRepositoryList": case "copyRepositoryList":
void commands.executeCommand( void this.app.commands.execute(
"codeQL.copyVariantAnalysisRepoList", "codeQL.copyVariantAnalysisRepoList",
this.variantAnalysisId, this.variantAnalysisId,
msg.filterSort, msg.filterSort,