Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions extensions/ql-vscode/src/local-queries/local-queries.ts
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,6 @@ import { WebviewReveal } from "./webview";
import { asError, getErrorMessage } from "../common/helpers-pure";
import { CliVersionConstraint, CodeQLCliServer } from "../codeql-cli/cli";
import { LocalQueryCommands } from "../common/commands";
import { App } from "../common/app";
import { DisposableObject } from "../common/disposable-object";
import { SkeletonQueryWizard } from "./skeleton-query-wizard";
import { LocalQueryRun } from "./local-query-run";
Expand All @@ -51,6 +50,7 @@ import { findLanguage } from "../codeql-cli/query-language";
import type { QueryTreeViewItem } from "../queries-panel/query-tree-view-item";
import { tryGetQueryLanguage } from "../common/query-language";
import { LanguageContextStore } from "../language-context-store";
import { ExtensionApp } from "../common/vscode/vscode-app";

interface DatabaseQuickPickItem extends QuickPickItem {
databaseItem: DatabaseItem;
Expand All @@ -66,7 +66,7 @@ export class LocalQueries extends DisposableObject {
private selectedQueryTreeViewItems: readonly QueryTreeViewItem[] = [];

public constructor(
private readonly app: App,
private readonly app: ExtensionApp,
private readonly queryRunner: QueryRunner,
private readonly queryHistoryManager: QueryHistoryManager,
private readonly databaseManager: DatabaseManager,
Expand Down
22 changes: 17 additions & 5 deletions extensions/ql-vscode/src/local-queries/quick-query.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import { CancellationToken, window as Window, workspace, Uri } from "vscode";
import { LSPErrorCodes, ResponseError } from "vscode-languageclient";
import { CodeQLCliServer } from "../codeql-cli/cli";
import { DatabaseUI } from "../databases/local-databases-ui";
import { showBinaryChoiceDialog } from "../common/vscode/dialog";
import { getInitialQueryContents } from "./query-contents";
import { getPrimaryDbscheme, getQlPackForDbscheme } from "../databases/qlpack";
import {
Expand All @@ -15,6 +14,7 @@ import {
import { getErrorMessage } from "../common/helpers-pure";
import { FALLBACK_QLPACK_FILENAME, getQlPackPath } from "../common/ql";
import { App } from "../common/app";
import { ExtensionApp } from "../common/vscode/vscode-app";

const QUICK_QUERIES_DIR_NAME = "quick-queries";
const QUICK_QUERY_QUERY_NAME = "quick-query.ql";
Expand Down Expand Up @@ -52,7 +52,7 @@ function findExistingQuickQueryEditor() {
* Show a buffer the user can enter a simple query into.
*/
export async function displayQuickQuery(
app: App,
app: ExtensionApp,
cliServer: CodeQLCliServer,
databaseUI: DatabaseUI,
progress: ProgressCallback,
Expand Down Expand Up @@ -80,12 +80,24 @@ export async function displayQuickQuery(
// being undefined) just let the user know that they're in for a
// restart.
if (workspace.workspaceFile === undefined) {
const makeMultiRoot = await showBinaryChoiceDialog(
"Quick query requires multiple folders in the workspace. Reload workspace as multi-folder workspace?",
const createQueryOption = 'Run "Create query"';
const quickQueryOption = 'Run "Quick query" anyway';
const quickQueryPrompt = await Window.showWarningMessage(
'"Quick query" requires reloading your workspace as a multi-root workspace, which may cause query history and databases to be lost.',
{
modal: true,
detail:
'The "Create query" command does not require reloading the workspace.',
},
createQueryOption,
quickQueryOption,
);
if (makeMultiRoot) {
if (quickQueryPrompt === quickQueryOption) {
updateQuickQueryDir(queriesDir, workspaceFolders.length, 0);
}
if (quickQueryPrompt === createQueryOption) {
await app.queryServerCommands.execute("codeQL.createQuery");
Comment thread Fixed
}
return;
}

Expand Down