Rename DataExtensionsEditor

This commit is contained in:
Anders Starcke Henriksen
2023-08-30 15:03:08 +02:00
parent 6da39ee79f
commit 05a7d933d1
9 changed files with 56 additions and 64 deletions

View File

@@ -302,7 +302,7 @@ export type PackagingCommands = {
"codeQL.downloadPacks": () => Promise<void>;
};
export type DataExtensionsEditorCommands = {
export type ModelEditorCommands = {
"codeQL.openDataExtensionsEditor": () => Promise<void>;
"codeQLDataExtensionsEditor.jumpToUsageLocation": (
usage: Usage,
@@ -347,7 +347,7 @@ export type AllExtensionCommands = BaseCommands &
AstCfgCommands &
AstViewerCommands &
PackagingCommands &
DataExtensionsEditorCommands &
ModelEditorCommands &
EvalLogViewerCommands &
SummaryLanguageSupportCommands &
Partial<TestUICommands> &

View File

@@ -569,14 +569,14 @@ interface HideModeledApisMessage {
hideModeledApis: boolean;
}
export type ToDataExtensionsEditorMessage =
export type ToModelEditorMessage =
| SetExtensionPackStateMessage
| SetExternalApiUsagesMessage
| LoadModeledMethodsMessage
| AddModeledMethodsMessage
| SetInProgressMethodsMessage;
export type FromDataExtensionsEditorMessage =
export type FromModelEditorMessage =
| ViewLoadedMsg
| SwitchModeMessage
| RefreshExternalApiUsages

View File

@@ -128,7 +128,7 @@ import { getAstCfgCommands } from "./language-support/ast-viewer/ast-cfg-command
import { App } from "./common/app";
import { registerCommandWithErrorHandling } from "./common/vscode/commands";
import { DebuggerUI } from "./debugger/debugger-ui";
import { DataExtensionsEditorModule } from "./model-editor/model-editor-module";
import { ModelEditorModule } from "./model-editor/model-editor-module";
import { TestManager } from "./query-testing/test-manager";
import { TestRunner } from "./query-testing/test-runner";
import { TestManagerBase } from "./query-testing/test-manager-base";
@@ -934,15 +934,14 @@ async function activateWithInstalledDistribution(
const debuggerUI = new DebuggerUI(app, localQueries, dbm);
ctx.subscriptions.push(debuggerUI);
const dataExtensionsEditorModule =
await DataExtensionsEditorModule.initialize(
ctx,
app,
dbm,
cliServer,
qs,
tmpDir.name,
);
const modelEditorModule = await ModelEditorModule.initialize(
ctx,
app,
dbm,
cliServer,
qs,
tmpDir.name,
);
void extLogger.log("Initializing QLTest interface.");
@@ -1015,7 +1014,7 @@ async function activateWithInstalledDistribution(
...getPackagingCommands({
cliServer,
}),
...dataExtensionsEditorModule.getCommands(),
...modelEditorModule.getCommands(),
...evalLogViewer.getCommands(),
...summaryLanguageSupport.getCommands(),
...testUiCommands,

View File

@@ -1,6 +1,6 @@
import { ExtensionContext } from "vscode";
import { DataExtensionsEditorView } from "./model-editor-view";
import { DataExtensionsEditorCommands } from "../common/commands";
import { ModelEditorView } from "./model-editor-view";
import { ModelEditorCommands } from "../common/commands";
import { CliVersionConstraint, CodeQLCliServer } from "../codeql-cli/cli";
import { QueryRunner } from "../query-server";
import { DatabaseItem, DatabaseManager } from "../databases/local-databases";
@@ -23,12 +23,11 @@ import { MethodModelingPanel } from "./method-modeling/method-modeling-panel";
const SUPPORTED_LANGUAGES: string[] = ["java", "csharp"];
export class DataExtensionsEditorModule extends DisposableObject {
export class ModelEditorModule extends DisposableObject {
private readonly queryStorageDir: string;
private readonly methodsUsagePanel: MethodsUsagePanel;
private mostRecentlyActiveView: DataExtensionsEditorView | undefined =
undefined;
private mostRecentlyActiveView: ModelEditorView | undefined = undefined;
private constructor(
private readonly ctx: ExtensionContext,
@@ -47,17 +46,17 @@ export class DataExtensionsEditorModule extends DisposableObject {
this.push(new MethodModelingPanel(ctx));
}
private handleViewBecameActive(view: DataExtensionsEditorView): void {
private handleViewBecameActive(view: ModelEditorView): void {
this.mostRecentlyActiveView = view;
}
private handleViewWasDisposed(view: DataExtensionsEditorView): void {
private handleViewWasDisposed(view: ModelEditorView): void {
if (this.mostRecentlyActiveView === view) {
this.mostRecentlyActiveView = undefined;
}
}
private isMostRecentlyActiveView(view: DataExtensionsEditorView): boolean {
private isMostRecentlyActiveView(view: ModelEditorView): boolean {
return this.mostRecentlyActiveView === view;
}
@@ -68,8 +67,8 @@ export class DataExtensionsEditorModule extends DisposableObject {
cliServer: CodeQLCliServer,
queryRunner: QueryRunner,
queryStorageDir: string,
): Promise<DataExtensionsEditorModule> {
const dataExtensionsEditorModule = new DataExtensionsEditorModule(
): Promise<ModelEditorModule> {
const modelEditorModule = new ModelEditorModule(
ctx,
app,
databaseManager,
@@ -78,11 +77,11 @@ export class DataExtensionsEditorModule extends DisposableObject {
queryStorageDir,
);
await dataExtensionsEditorModule.initialize();
return dataExtensionsEditorModule;
await modelEditorModule.initialize();
return modelEditorModule;
}
public getCommands(): DataExtensionsEditorCommands {
public getCommands(): ModelEditorCommands {
return {
"codeQL.openDataExtensionsEditor": async () => {
const db = this.databaseManager.currentDatabaseItem;
@@ -141,7 +140,7 @@ export class DataExtensionsEditorModule extends DisposableObject {
return;
}
const view = new DataExtensionsEditorView(
const view = new ModelEditorView(
this.ctx,
this.app,
this.databaseManager,

View File

@@ -10,8 +10,8 @@ import {
WebviewPanelConfig,
} from "../common/vscode/abstract-webview";
import {
FromDataExtensionsEditorMessage,
ToDataExtensionsEditorMessage,
FromModelEditorMessage,
ToModelEditorMessage,
} from "../common/interface-types";
import { ProgressCallback, withProgress } from "../common/vscode/progress";
import { QueryRunner } from "../query-server";
@@ -40,9 +40,9 @@ import { getLanguageDisplayName } from "../common/query-language";
import { AutoModeler } from "./auto-modeler";
import { INITIAL_HIDE_MODELED_APIS_VALUE } from "./shared/hide-modeled-apis";
export class DataExtensionsEditorView extends AbstractWebview<
ToDataExtensionsEditorMessage,
FromDataExtensionsEditorMessage
export class ModelEditorView extends AbstractWebview<
ToModelEditorMessage,
FromModelEditorMessage
> {
private readonly autoModeler: AutoModeler;
@@ -66,14 +66,10 @@ export class DataExtensionsEditorView extends AbstractWebview<
hideModeledApis: boolean,
) => Promise<void>,
private readonly revealItemInUsagePanel: (usage: Usage) => Promise<void>,
private readonly handleViewBecameActive: (
view: DataExtensionsEditorView,
) => void,
private readonly handleViewWasDisposed: (
view: DataExtensionsEditorView,
) => void,
private readonly handleViewBecameActive: (view: ModelEditorView) => void,
private readonly handleViewWasDisposed: (view: ModelEditorView) => void,
private readonly isMostRecentlyActiveView: (
view: DataExtensionsEditorView,
view: ModelEditorView,
) => boolean,
) {
super(ctx);
@@ -121,7 +117,7 @@ export class DataExtensionsEditorView extends AbstractWebview<
void this.app.commands.execute(
"setContext",
"codeql.dataExtensionsEditorOpen",
this.isADataExtensionsEditorOpen(),
this.isAModelEditorOpen(),
);
});
@@ -134,7 +130,7 @@ export class DataExtensionsEditorView extends AbstractWebview<
);
}
private isADataExtensionsEditorOpen(): boolean {
private isAModelEditorOpen(): boolean {
return window.tabGroups.all.some((tabGroup) =>
tabGroup.tabs.some((tab) => {
const viewType: string | undefined = (tab.input as any)?.viewType;
@@ -169,9 +165,7 @@ export class DataExtensionsEditorView extends AbstractWebview<
// Nothing to do here
}
protected async onMessage(
msg: FromDataExtensionsEditorMessage,
): Promise<void> {
protected async onMessage(msg: FromModelEditorMessage): Promise<void> {
switch (msg.t) {
case "viewLoaded":
await this.onWebViewLoaded();
@@ -433,7 +427,7 @@ export class DataExtensionsEditorView extends AbstractWebview<
return;
}
const view = new DataExtensionsEditorView(
const view = new ModelEditorView(
this.ctx,
this.app,
this.databaseManager,

View File

@@ -3,20 +3,20 @@ import * as React from "react";
import { Meta, StoryFn } from "@storybook/react";
import { Mode } from "../../model-editor/shared/mode";
import { DataExtensionsEditor as DataExtensionsEditorComponent } from "../../view/model-editor/ModelEditor";
import { ModelEditor as ModelEditorComponent } from "../../view/model-editor/ModelEditor";
import { CallClassification } from "../../model-editor/external-api-usage";
export default {
title: "CodeQL Model Editor/CodeQL Model Editor",
component: DataExtensionsEditorComponent,
} as Meta<typeof DataExtensionsEditorComponent>;
component: ModelEditorComponent,
} as Meta<typeof ModelEditorComponent>;
const Template: StoryFn<typeof DataExtensionsEditorComponent> = (args) => (
<DataExtensionsEditorComponent {...args} />
const Template: StoryFn<typeof ModelEditorComponent> = (args) => (
<ModelEditorComponent {...args} />
);
export const DataExtensionsEditor = Template.bind({});
DataExtensionsEditor.args = {
export const ModelEditor = Template.bind({});
ModelEditor.args = {
initialViewState: {
extensionPack: {
path: "/home/user/vscode-codeql-starter/codeql-custom-queries-java/sql2o",

View File

@@ -1,6 +1,6 @@
import * as React from "react";
import { useCallback, useEffect, useMemo, useState } from "react";
import { ToDataExtensionsEditorMessage } from "../../common/interface-types";
import { ToModelEditorMessage } from "../../common/interface-types";
import {
VSCodeButton,
VSCodeCheckbox,
@@ -28,7 +28,7 @@ const LoadingContainer = styled.div`
font-weight: 600;
`;
const DataExtensionsEditorContainer = styled.div`
const ModelEditorContainer = styled.div`
margin-top: 1rem;
`;
@@ -78,7 +78,7 @@ type Props = {
initialHideModeledApis?: boolean;
};
export function DataExtensionsEditor({
export function ModelEditor({
initialViewState,
initialExternalApiUsages = [],
initialModeledMethods = {},
@@ -117,7 +117,7 @@ export function DataExtensionsEditor({
useEffect(() => {
const listener = (evt: MessageEvent) => {
if (evt.origin === window.origin) {
const msg: ToDataExtensionsEditorMessage = evt.data;
const msg: ToModelEditorMessage = evt.data;
switch (msg.t) {
case "setModelEditorViewState":
setViewState(msg.viewState);
@@ -297,7 +297,7 @@ export function DataExtensionsEditor({
}
return (
<DataExtensionsEditorContainer>
<ModelEditorContainer>
<HeaderContainer>
<HeaderColumn>
<HeaderRow>
@@ -371,6 +371,6 @@ export function DataExtensionsEditor({
onModelDependencyClick={onModelDependencyClick}
/>
</EditorContainer>
</DataExtensionsEditorContainer>
</ModelEditorContainer>
);
}

View File

@@ -1,9 +1,9 @@
import * as React from "react";
import { WebviewDefinition } from "../webview-definition";
import { DataExtensionsEditor } from "./ModelEditor";
import { ModelEditor } from "./ModelEditor";
const definition: WebviewDefinition = {
component: <DataExtensionsEditor />,
component: <ModelEditor />,
};
export default definition;

View File

@@ -1,6 +1,6 @@
import {
FromCompareViewMessage,
FromDataExtensionsEditorMessage,
FromModelEditorMessage,
FromResultsViewMsg,
FromVariantAnalysisMessage,
VariantAnalysisState,
@@ -15,7 +15,7 @@ interface VsCodeApi {
| FromResultsViewMsg
| FromCompareViewMessage
| FromVariantAnalysisMessage
| FromDataExtensionsEditorMessage,
| FromModelEditorMessage,
): void;
/**