Extract isSupportedLanguage function

This commit is contained in:
Koen Vlaswinkel
2023-10-30 16:08:00 +01:00
parent ba1bdacb50
commit 80ae27a453
2 changed files with 33 additions and 9 deletions

View File

@@ -11,7 +11,7 @@ import { pickExtensionPack } from "./extension-pack-picker";
import { showAndLogErrorMessage } from "../common/logging";
import { dir } from "tmp-promise";
import { isQueryLanguage, QueryLanguage } from "../common/query-language";
import { isQueryLanguage } from "../common/query-language";
import { DisposableObject } from "../common/disposable-object";
import { MethodsUsagePanel } from "./methods-usage/methods-usage-panel";
import { Method, Usage } from "./method";
@@ -24,8 +24,7 @@ import { ModelConfigListener } from "../config";
import { ModelingEvents } from "./modeling-events";
import { getModelsAsDataLanguage } from "./languages";
import { INITIAL_MODE } from "./shared/mode";
const SUPPORTED_LANGUAGES: string[] = ["java", "csharp"];
import { isSupportedLanguage } from "./supported-languages";
export class ModelEditorModule extends DisposableObject {
private readonly queryStorageDir: string;
@@ -130,12 +129,10 @@ export class ModelEditorModule extends DisposableObject {
const language = db.language;
// Ruby is only enabled when the config setting is set
const isSupportedLanguage =
SUPPORTED_LANGUAGES.includes(language) ||
(language === QueryLanguage.Ruby && this.modelConfig.enableRuby);
if (!isSupportedLanguage || !isQueryLanguage(language)) {
if (
!isQueryLanguage(language) ||
!isSupportedLanguage(language, this.modelConfig)
) {
void showAndLogErrorMessage(
this.app.logger,
`The CodeQL Model Editor is not supported for ${language} databases.`,

View File

@@ -0,0 +1,27 @@
import { QueryLanguage } from "../common/query-language";
import { ModelConfig } from "../config";
/**
* Languages that are always supported by the model editor. These languages
* do not require a separate config setting to enable them.
*/
const SUPPORTED_LANGUAGES: QueryLanguage[] = [
QueryLanguage.Java,
QueryLanguage.CSharp,
];
export function isSupportedLanguage(
language: QueryLanguage,
modelConfig: ModelConfig,
) {
if (SUPPORTED_LANGUAGES.includes(language)) {
return true;
}
if (language === QueryLanguage.Ruby) {
// Ruby is only enabled when the config setting is set
return modelConfig.enableRuby;
}
return false;
}