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" ;
16import "source-map-support/register" ;
7+ import { dirSync } from "tmp-promise" ;
28import type { CancellationToken , Disposable , ExtensionContext } from "vscode" ;
39import {
410 env ,
@@ -11,40 +17,8 @@ import {
1117 workspace ,
1218} from "vscode" ;
1319import 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" ;
2421import { 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" ;
4822import type { FindDistributionResult } from "./codeql-cli/distribution" ;
4923import {
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" ;
6642import {
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" ;
7848import type { BaseLogger } from "./common/logging" ;
7949import {
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" ;
9474import {
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" ;
11492import { 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" ;
11696import { 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" ;
12797import { 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" ;
128121import { 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" ;
129130import { TestManager } from "./query-testing/test-manager" ;
130131import { 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
12101220async 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}
0 commit comments