Skip to content

Commit 80ae27a

Browse files
committed
Extract isSupportedLanguage function
1 parent ba1bdac commit 80ae27a

File tree

2 files changed

+33
-9
lines changed

2 files changed

+33
-9
lines changed

extensions/ql-vscode/src/model-editor/model-editor-module.ts

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import { pickExtensionPack } from "./extension-pack-picker";
1111
import { showAndLogErrorMessage } from "../common/logging";
1212
import { dir } from "tmp-promise";
1313

14-
import { isQueryLanguage, QueryLanguage } from "../common/query-language";
14+
import { isQueryLanguage } from "../common/query-language";
1515
import { DisposableObject } from "../common/disposable-object";
1616
import { MethodsUsagePanel } from "./methods-usage/methods-usage-panel";
1717
import { Method, Usage } from "./method";
@@ -24,8 +24,7 @@ import { ModelConfigListener } from "../config";
2424
import { ModelingEvents } from "./modeling-events";
2525
import { getModelsAsDataLanguage } from "./languages";
2626
import { INITIAL_MODE } from "./shared/mode";
27-
28-
const SUPPORTED_LANGUAGES: string[] = ["java", "csharp"];
27+
import { isSupportedLanguage } from "./supported-languages";
2928

3029
export class ModelEditorModule extends DisposableObject {
3130
private readonly queryStorageDir: string;
@@ -130,12 +129,10 @@ export class ModelEditorModule extends DisposableObject {
130129

131130
const language = db.language;
132131

133-
// Ruby is only enabled when the config setting is set
134-
const isSupportedLanguage =
135-
SUPPORTED_LANGUAGES.includes(language) ||
136-
(language === QueryLanguage.Ruby && this.modelConfig.enableRuby);
137-
138-
if (!isSupportedLanguage || !isQueryLanguage(language)) {
132+
if (
133+
!isQueryLanguage(language) ||
134+
!isSupportedLanguage(language, this.modelConfig)
135+
) {
139136
void showAndLogErrorMessage(
140137
this.app.logger,
141138
`The CodeQL Model Editor is not supported for ${language} databases.`,
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import { QueryLanguage } from "../common/query-language";
2+
import { ModelConfig } from "../config";
3+
4+
/**
5+
* Languages that are always supported by the model editor. These languages
6+
* do not require a separate config setting to enable them.
7+
*/
8+
const SUPPORTED_LANGUAGES: QueryLanguage[] = [
9+
QueryLanguage.Java,
10+
QueryLanguage.CSharp,
11+
];
12+
13+
export function isSupportedLanguage(
14+
language: QueryLanguage,
15+
modelConfig: ModelConfig,
16+
) {
17+
if (SUPPORTED_LANGUAGES.includes(language)) {
18+
return true;
19+
}
20+
21+
if (language === QueryLanguage.Ruby) {
22+
// Ruby is only enabled when the config setting is set
23+
return modelConfig.enableRuby;
24+
}
25+
26+
return false;
27+
}

0 commit comments

Comments
 (0)