Skip to content

Commit 82a00b6

Browse files
committed
cleanup: fix semantic merge problems
1 parent 096e701 commit 82a00b6

File tree

4 files changed

+116
-104
lines changed

4 files changed

+116
-104
lines changed

extensions/ql-vscode/src/compare-performance/compare-performance-view.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ export class ComparePerformanceView extends AbstractWebview<
4747
}
4848

4949
async showResults(
50-
fromJsonLog: string,
50+
fromJsonLog: string | undefined,
5151
toJsonLog: string,
5252
description: ComparePerformanceDescriptionData,
5353
) {
@@ -74,10 +74,10 @@ export class ComparePerformanceView extends AbstractWebview<
7474
}
7575

7676
const [fromPerf, toPerf] = await Promise.all([
77-
fromJsonLog === ""
78-
? new PerformanceOverviewScanner()
79-
: scanLogWithProgress(fromJsonLog, "1/2"),
80-
scanLogWithProgress(toJsonLog, fromJsonLog === "" ? "1/1" : "2/2"),
77+
fromJsonLog
78+
? scanLogWithProgress(fromJsonLog, "1/2")
79+
: new PerformanceOverviewScanner(),
80+
scanLogWithProgress(toJsonLog, fromJsonLog ? "2/2" : "1/1"),
8181
]);
8282

8383
// TODO: filter out irrelevant common predicates before transfer?
@@ -87,7 +87,7 @@ export class ComparePerformanceView extends AbstractWebview<
8787
description,
8888
from: fromPerf.getData(),
8989
to: toPerf.getData(),
90-
comparison: fromJsonLog !== "",
90+
comparison: !!fromJsonLog,
9191
});
9292
}
9393

extensions/ql-vscode/src/extension.ts

Lines changed: 107 additions & 97 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
1+
import { watch } from "chokidar";
2+
import { ensureDir } from "fs-extra";
3+
import { arch, homedir, platform } from "os";
4+
import { join } from "path";
5+
import { lt, parse } from "semver";
16
import "source-map-support/register";
7+
import { dirSync } from "tmp-promise";
28
import type { CancellationToken, Disposable, ExtensionContext } from "vscode";
39
import {
410
env,
@@ -11,40 +17,8 @@ import {
1117
workspace,
1218
} from "vscode";
1319
import type { LanguageClient } from "vscode-languageclient/node";
14-
import { arch, homedir, platform } from "os";
15-
import { ensureDir } from "fs-extra";
16-
import { join } from "path";
17-
import { dirSync } from "tmp-promise";
18-
import { lt, parse } from "semver";
19-
import { watch } from "chokidar";
20-
import {
21-
activate as archiveFilesystemProvider_activate,
22-
zipArchiveScheme,
23-
} from "./common/vscode/archive-filesystem-provider";
20+
import { prepareCodeTour } from "./code-tour/code-tour";
2421
import { CliVersionConstraint, CodeQLCliServer } from "./codeql-cli/cli";
25-
import {
26-
ADD_DATABASE_SOURCE_TO_WORKSPACE_SETTING,
27-
addDatabaseSourceToWorkspace,
28-
CliConfigListener,
29-
DistributionConfigListener,
30-
GitHubDatabaseConfigListener,
31-
joinOrderWarningThreshold,
32-
QueryHistoryConfigListener,
33-
QueryServerConfigListener,
34-
VariantAnalysisConfigListener,
35-
} from "./config";
36-
import {
37-
AstViewer,
38-
createLanguageClient,
39-
getQueryEditorCommands,
40-
install,
41-
TemplatePrintAstProvider,
42-
TemplatePrintCfgProvider,
43-
TemplateQueryDefinitionProvider,
44-
TemplateQueryReferenceProvider,
45-
} from "./language-support";
46-
import { DatabaseManager } from "./databases/local-databases";
47-
import { DatabaseUI } from "./databases/local-databases-ui";
4822
import type { FindDistributionResult } from "./codeql-cli/distribution";
4923
import {
5024
DEFAULT_DISTRIBUTION_VERSION_RANGE,
@@ -57,24 +31,20 @@ import {
5731
GithubApiError,
5832
GithubRateLimitedError,
5933
} from "./codeql-cli/distribution/github-api-error";
60-
import { tmpDir, tmpDirDisposal } from "./tmp-dir";
61-
import { prepareCodeTour } from "./code-tour/code-tour";
62-
import {
63-
showBinaryChoiceDialog,
64-
showInformationMessageWithAction,
65-
} from "./common/vscode/dialog";
34+
import type { App } from "./common/app";
35+
import type {
36+
AllExtensionCommands,
37+
BaseCommands,
38+
PreActivationCommands,
39+
QueryServerCommands,
40+
} from "./common/commands";
41+
import { redactableError } from "./common/errors";
6642
import {
6743
asError,
6844
assertNever,
6945
getErrorMessage,
7046
getErrorStack,
7147
} from "./common/helpers-pure";
72-
import {
73-
LocalQueries,
74-
QuickEvalCodeLensProvider,
75-
ResultsView,
76-
WebviewReveal,
77-
} from "./local-queries";
7848
import type { BaseLogger } from "./common/logging";
7949
import {
8050
showAndLogErrorMessage,
@@ -88,54 +58,84 @@ import {
8858
languageServerLogger,
8959
queryServerLogger,
9060
} from "./common/logging/vscode";
91-
import { QueryHistoryManager } from "./query-history/query-history-manager";
92-
import type { CompletedLocalQueryInfo } from "./query-results";
93-
import { CompareView } from "./compare/compare-view";
61+
import { VSCodeMockGitHubApiServer } from "./common/mock-gh-api/vscode/vscode-mock-gh-api-server";
62+
import {
63+
activate as archiveFilesystemProvider_activate,
64+
zipArchiveScheme,
65+
} from "./common/vscode/archive-filesystem-provider";
66+
import { registerCommandWithErrorHandling } from "./common/vscode/commands";
67+
import {
68+
showBinaryChoiceDialog,
69+
showInformationMessageWithAction,
70+
} from "./common/vscode/dialog";
71+
import { ExtensionApp } from "./common/vscode/extension-app";
72+
import type { ProgressCallback } from "./common/vscode/progress";
73+
import { withProgress } from "./common/vscode/progress";
9474
import {
9575
initializeTelemetry,
9676
telemetryListener,
9777
} from "./common/vscode/telemetry";
98-
import type { ProgressCallback } from "./common/vscode/progress";
99-
import { withProgress } from "./common/vscode/progress";
100-
import { CodeQlStatusBarHandler } from "./status-bar";
101-
import { getPackagingCommands } from "./packaging";
102-
import { HistoryItemLabelProvider } from "./query-history/history-item-label-provider";
103-
import { EvalLogViewer } from "./query-evaluation-logging";
104-
import { SummaryLanguageSupport } from "./log-insights/summary-language-support";
105-
import { JoinOrderScannerProvider } from "./log-insights/join-order";
106-
import { LogScannerService } from "./log-insights/log-scanner-service";
107-
import { VariantAnalysisView } from "./variant-analysis/variant-analysis-view";
108-
import { VariantAnalysisViewSerializer } from "./variant-analysis/variant-analysis-view-serializer";
109-
import { VariantAnalysisManager } from "./variant-analysis/variant-analysis-manager";
110-
import { createVariantAnalysisContentProvider } from "./variant-analysis/variant-analysis-content-provider";
111-
import { VSCodeMockGitHubApiServer } from "./common/mock-gh-api/vscode/vscode-mock-gh-api-server";
112-
import { VariantAnalysisResultsManager } from "./variant-analysis/variant-analysis-results-manager";
113-
import { ExtensionApp } from "./common/vscode/extension-app";
78+
import { ComparePerformanceView } from "./compare-performance/compare-performance-view";
79+
import { CompareView } from "./compare/compare-view";
80+
import {
81+
ADD_DATABASE_SOURCE_TO_WORKSPACE_SETTING,
82+
addDatabaseSourceToWorkspace,
83+
CliConfigListener,
84+
DistributionConfigListener,
85+
GitHubDatabaseConfigListener,
86+
joinOrderWarningThreshold,
87+
QueryHistoryConfigListener,
88+
QueryServerConfigListener,
89+
VariantAnalysisConfigListener,
90+
} from "./config";
91+
import { DatabaseFetcher } from "./databases/database-fetcher";
11492
import { DbModule } from "./databases/db-module";
115-
import { redactableError } from "./common/errors";
93+
import { GitHubDatabasesModule } from "./databases/github-databases";
94+
import { DatabaseManager } from "./databases/local-databases";
95+
import { DatabaseUI } from "./databases/local-databases-ui";
11696
import { QLDebugAdapterDescriptorFactory } from "./debugger/debugger-factory";
117-
import type { QueryHistoryDirs } from "./query-history/query-history-dirs";
118-
import type {
119-
AllExtensionCommands,
120-
BaseCommands,
121-
PreActivationCommands,
122-
QueryServerCommands,
123-
} from "./common/commands";
124-
import { getAstCfgCommands } from "./language-support/ast-viewer/ast-cfg-commands";
125-
import type { App } from "./common/app";
126-
import { registerCommandWithErrorHandling } from "./common/vscode/commands";
12797
import { DebuggerUI } from "./debugger/debugger-ui";
98+
import { LanguageContextStore } from "./language-context-store";
99+
import { LanguageSelectionPanel } from "./language-selection-panel/language-selection-panel";
100+
import {
101+
AstViewer,
102+
createLanguageClient,
103+
getQueryEditorCommands,
104+
install,
105+
TemplatePrintAstProvider,
106+
TemplatePrintCfgProvider,
107+
TemplateQueryDefinitionProvider,
108+
TemplateQueryReferenceProvider,
109+
} from "./language-support";
110+
import { getAstCfgCommands } from "./language-support/ast-viewer/ast-cfg-commands";
111+
import {
112+
LocalQueries,
113+
QuickEvalCodeLensProvider,
114+
ResultsView,
115+
WebviewReveal,
116+
} from "./local-queries";
117+
import { OpenReferencedFileCodeLensProvider } from "./local-queries/open-referenced-file-code-lens-provider";
118+
import { JoinOrderScannerProvider } from "./log-insights/join-order";
119+
import { LogScannerService } from "./log-insights/log-scanner-service";
120+
import { SummaryLanguageSupport } from "./log-insights/summary-language-support";
128121
import { ModelEditorModule } from "./model-editor/model-editor-module";
122+
import { getPackagingCommands } from "./packaging";
123+
import { QueriesModule } from "./queries-panel/queries-module";
124+
import { EvalLogViewer } from "./query-evaluation-logging";
125+
import { HistoryItemLabelProvider } from "./query-history/history-item-label-provider";
126+
import type { QueryHistoryDirs } from "./query-history/query-history-dirs";
127+
import { QueryHistoryManager } from "./query-history/query-history-manager";
128+
import type { CompletedLocalQueryInfo } from "./query-results";
129+
import { QueryRunner, QueryServerClient } from "./query-server";
129130
import { TestManager } from "./query-testing/test-manager";
130131
import { TestRunner } from "./query-testing/test-runner";
131-
import { QueryRunner, QueryServerClient } from "./query-server";
132-
import { QueriesModule } from "./queries-panel/queries-module";
133-
import { OpenReferencedFileCodeLensProvider } from "./local-queries/open-referenced-file-code-lens-provider";
134-
import { LanguageContextStore } from "./language-context-store";
135-
import { LanguageSelectionPanel } from "./language-selection-panel/language-selection-panel";
136-
import { GitHubDatabasesModule } from "./databases/github-databases";
137-
import { DatabaseFetcher } from "./databases/database-fetcher";
138-
import { ComparePerformanceView } from "./compare-performance/compare-performance-view";
132+
import { CodeQlStatusBarHandler } from "./status-bar";
133+
import { tmpDir, tmpDirDisposal } from "./tmp-dir";
134+
import { createVariantAnalysisContentProvider } from "./variant-analysis/variant-analysis-content-provider";
135+
import { VariantAnalysisManager } from "./variant-analysis/variant-analysis-manager";
136+
import { VariantAnalysisResultsManager } from "./variant-analysis/variant-analysis-results-manager";
137+
import { VariantAnalysisView } from "./variant-analysis/variant-analysis-view";
138+
import { VariantAnalysisViewSerializer } from "./variant-analysis/variant-analysis-view-serializer";
139139

140140
/**
141141
* extension.ts
@@ -928,8 +928,18 @@ async function activateWithInstalledDistribution(
928928
async (
929929
from: CompletedLocalQueryInfo,
930930
to: CompletedLocalQueryInfo | undefined,
931-
): Promise<void> =>
932-
showPerformanceComparison(comparePerformanceView, from, to),
931+
): Promise<void> => {
932+
if (to) {
933+
return showPerformanceComparison(comparePerformanceView, from, to);
934+
} else {
935+
// the convention downstream is that `from` is optional, but here it is the opposite...
936+
return showPerformanceComparison(
937+
comparePerformanceView,
938+
undefined,
939+
from,
940+
);
941+
}
942+
},
933943
);
934944

935945
ctx.subscriptions.push(qhm);
@@ -1209,28 +1219,28 @@ async function showResultsForComparison(
12091219

12101220
async function showPerformanceComparison(
12111221
view: ComparePerformanceView,
1212-
from: CompletedLocalQueryInfo,
1213-
to: CompletedLocalQueryInfo | undefined,
1222+
from: CompletedLocalQueryInfo | undefined,
1223+
to: CompletedLocalQueryInfo,
12141224
): Promise<void> {
1215-
let fromLog = from.evalutorLogPaths?.jsonSummary;
1216-
let toLog = to?.evalutorLogPaths?.jsonSummary;
1225+
const fromLog = from?.evalutorLogPaths?.jsonSummary;
1226+
const toLog = to.evalutorLogPaths?.jsonSummary;
12171227

1218-
if (to === undefined) {
1219-
toLog = fromLog;
1220-
fromLog = "";
1221-
}
12221228
if (fromLog === undefined || toLog === undefined) {
12231229
return extLogger.showWarningMessage(
12241230
`Cannot compare performance as the structured logs are missing. Did they queries complete normally?`,
12251231
);
12261232
}
1227-
await extLogger.log(
1228-
`Comparing performance of ${from.getQueryName()} and ${to?.getQueryName() ?? "baseline"}`,
1229-
);
1233+
if (from) {
1234+
await extLogger.log(
1235+
`Comparing performance of ${from.getQueryName()} and to?.getQueryName()`,
1236+
);
1237+
} else {
1238+
void extLogger.log(`Showing performance of ${to.getQueryName()}`);
1239+
}
12301240

12311241
await view.showResults(fromLog, toLog, {
12321242
kind: "local-run",
1233-
fromQuery: from.getQueryName(),
1243+
fromQuery: from?.getQueryName(),
12341244
toQuery: to.getQueryName(),
12351245
});
12361246
}

extensions/ql-vscode/src/log-insights/performance-comparison.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ export interface PerformanceComparisonDataFromLog {
5656
export type ComparePerformanceDescriptionData =
5757
| {
5858
kind: "local-run";
59-
fromQuery: string;
59+
fromQuery?: string;
6060
toQuery: string;
6161
}
6262
| {

extensions/ql-vscode/src/view/common/ComparePerformanceLocalRunDescription.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,11 @@ export const ComparePerformanceLocalRunDescription = ({
1010
}: Props) => {
1111
return (
1212
<div>
13+
(fromQuery?
1314
<strong>
1415
Comparison of local runs of {fromQuery} and {toQuery}
1516
</strong>
17+
: Local run of {toQuery})
1618
</div>
1719
);
1820
};

0 commit comments

Comments
 (0)