Use language display name when asking for language
This commit is contained in:
@@ -1,6 +1,10 @@
|
||||
import { CodeQLCliServer } from "./cli";
|
||||
import { Uri, window } from "vscode";
|
||||
import { isQueryLanguage, QueryLanguage } from "../common/query-language";
|
||||
import {
|
||||
getLanguageDisplayName,
|
||||
isQueryLanguage,
|
||||
QueryLanguage,
|
||||
} from "../common/query-language";
|
||||
import { getOnDiskWorkspaceFolders } from "../common/vscode/workspace-folders";
|
||||
import { extLogger } from "../common/logging/vscode";
|
||||
import { UserCancellationException } from "../common/vscode/progress";
|
||||
@@ -46,14 +50,22 @@ export async function askForLanguage(
|
||||
cliServer: CodeQLCliServer,
|
||||
throwOnEmpty = true,
|
||||
): Promise<QueryLanguage | undefined> {
|
||||
const language = await window.showQuickPick(
|
||||
await cliServer.getSupportedLanguages(),
|
||||
{
|
||||
placeHolder: "Select target language for your query",
|
||||
ignoreFocusOut: true,
|
||||
},
|
||||
);
|
||||
if (!language) {
|
||||
const supportedLanguages = await cliServer.getSupportedLanguages();
|
||||
|
||||
const items = supportedLanguages
|
||||
.filter((language) => isQueryLanguage(language))
|
||||
.map((language) => ({
|
||||
label: getLanguageDisplayName(language),
|
||||
description: language,
|
||||
language,
|
||||
}))
|
||||
.sort((a, b) => a.label.localeCompare(b.label));
|
||||
|
||||
const selectedItem = await window.showQuickPick(items, {
|
||||
placeHolder: "Select target language for your query",
|
||||
ignoreFocusOut: true,
|
||||
});
|
||||
if (!selectedItem) {
|
||||
// This only happens if the user cancels the quick pick.
|
||||
if (throwOnEmpty) {
|
||||
throw new UserCancellationException("Cancelled.");
|
||||
@@ -66,6 +78,8 @@ export async function askForLanguage(
|
||||
return undefined;
|
||||
}
|
||||
|
||||
const language = selectedItem.language;
|
||||
|
||||
if (!isQueryLanguage(language)) {
|
||||
void showAndLogErrorMessage(
|
||||
extLogger,
|
||||
|
||||
@@ -65,7 +65,7 @@ describe("SkeletonQueryWizard", () => {
|
||||
|
||||
beforeEach(async () => {
|
||||
mockCli = mockedObject<CodeQLCliServer>({
|
||||
resolveLanguages: jest
|
||||
getSupportedLanguages: jest
|
||||
.fn()
|
||||
.mockResolvedValue([
|
||||
"ruby",
|
||||
@@ -76,7 +76,6 @@ describe("SkeletonQueryWizard", () => {
|
||||
"csharp",
|
||||
"cpp",
|
||||
]),
|
||||
getSupportedLanguages: jest.fn(),
|
||||
});
|
||||
|
||||
mockDatabaseManager = mockedObject<DatabaseManager>({
|
||||
@@ -102,9 +101,12 @@ describe("SkeletonQueryWizard", () => {
|
||||
},
|
||||
] as WorkspaceFolder[]);
|
||||
|
||||
quickPickSpy = jest
|
||||
.spyOn(window, "showQuickPick")
|
||||
.mockResolvedValueOnce(mockedQuickPickItem(chosenLanguage));
|
||||
quickPickSpy = jest.spyOn(window, "showQuickPick").mockResolvedValueOnce(
|
||||
mockedQuickPickItem({
|
||||
label: chosenLanguage,
|
||||
language: chosenLanguage,
|
||||
}),
|
||||
);
|
||||
showInputBoxSpy = jest
|
||||
.spyOn(window, "showInputBox")
|
||||
.mockResolvedValue(storagePath);
|
||||
|
||||
@@ -79,9 +79,12 @@ describe("Variant Analysis Manager", () => {
|
||||
).fsPath;
|
||||
|
||||
beforeEach(async () => {
|
||||
jest
|
||||
.spyOn(window, "showQuickPick")
|
||||
.mockResolvedValueOnce(mockedQuickPickItem("javascript"));
|
||||
jest.spyOn(window, "showQuickPick").mockResolvedValueOnce(
|
||||
mockedQuickPickItem({
|
||||
label: "JavaScript",
|
||||
language: "javascript",
|
||||
}),
|
||||
);
|
||||
|
||||
cancellationTokenSource = new CancellationTokenSource();
|
||||
|
||||
|
||||
@@ -67,7 +67,12 @@ describe("Variant Analysis Submission Integration", () => {
|
||||
await showQlDocument("query.ql");
|
||||
|
||||
// Select target language for your query
|
||||
quickPickSpy.mockResolvedValueOnce(mockedQuickPickItem("javascript"));
|
||||
quickPickSpy.mockResolvedValueOnce(
|
||||
mockedQuickPickItem({
|
||||
label: "JavaScript",
|
||||
language: "javascript",
|
||||
}),
|
||||
);
|
||||
|
||||
await commandManager.execute("codeQL.runVariantAnalysis");
|
||||
|
||||
@@ -106,7 +111,12 @@ describe("Variant Analysis Submission Integration", () => {
|
||||
await showQlDocument("query.ql");
|
||||
|
||||
// Select target language for your query
|
||||
quickPickSpy.mockResolvedValueOnce(mockedQuickPickItem("javascript"));
|
||||
quickPickSpy.mockResolvedValueOnce(
|
||||
mockedQuickPickItem({
|
||||
label: "JavaScript",
|
||||
language: "javascript",
|
||||
}),
|
||||
);
|
||||
|
||||
await commandManager.execute("codeQL.runVariantAnalysis");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user