diff --git a/extensions/ql-vscode/src/model-editor/languages/index.ts b/extensions/ql-vscode/src/model-editor/languages/index.ts index a96cb4788..bb4c895db 100644 --- a/extensions/ql-vscode/src/model-editor/languages/index.ts +++ b/extensions/ql-vscode/src/model-editor/languages/index.ts @@ -1,2 +1,3 @@ +export * from "./initial-mode"; export * from "./languages"; export * from "./models-as-data"; diff --git a/extensions/ql-vscode/src/model-editor/languages/initial-mode.ts b/extensions/ql-vscode/src/model-editor/languages/initial-mode.ts new file mode 100644 index 000000000..0b7807207 --- /dev/null +++ b/extensions/ql-vscode/src/model-editor/languages/initial-mode.ts @@ -0,0 +1,10 @@ +import { QueryLanguage } from "../../common/query-language"; +import { INITIAL_MODE, Mode } from "../shared/mode"; + +export function getInitialMode(language: QueryLanguage): Mode { + if (language === QueryLanguage.Ruby) { + return Mode.Framework; + } + + return INITIAL_MODE; +} diff --git a/extensions/ql-vscode/src/model-editor/model-editor-module.ts b/extensions/ql-vscode/src/model-editor/model-editor-module.ts index 176107e9f..f7b195ab4 100644 --- a/extensions/ql-vscode/src/model-editor/model-editor-module.ts +++ b/extensions/ql-vscode/src/model-editor/model-editor-module.ts @@ -22,6 +22,7 @@ import { showResolvableLocation } from "../databases/local-databases/locations"; import { ModelEditorViewTracker } from "./model-editor-view-tracker"; import { ModelConfigListener } from "../config"; import { ModelingEvents } from "./modeling-events"; +import { getInitialMode } from "./languages"; const SUPPORTED_LANGUAGES: string[] = ["java", "csharp"]; @@ -237,6 +238,7 @@ export class ModelEditorModule extends DisposableObject { db, modelFile, language, + getInitialMode(language), ); this.modelingEvents.onDbClosed(async (dbUri) => { diff --git a/extensions/ql-vscode/src/model-editor/model-editor-view.ts b/extensions/ql-vscode/src/model-editor/model-editor-view.ts index 23b3d4928..ae38e0f08 100644 --- a/extensions/ql-vscode/src/model-editor/model-editor-view.ts +++ b/extensions/ql-vscode/src/model-editor/model-editor-view.ts @@ -38,7 +38,7 @@ import { Method } from "./method"; import { ModeledMethod } from "./modeled-method"; import { ExtensionPack } from "./shared/extension-pack"; import { ModelConfigListener } from "../config"; -import { INITIAL_MODE, Mode } from "./shared/mode"; +import { Mode } from "./shared/mode"; import { loadModeledMethods, saveModeledMethods } from "./modeled-method-fs"; import { pickExtensionPack } from "./extension-pack-picker"; import { @@ -72,7 +72,7 @@ export class ModelEditorView extends AbstractWebview< private readonly extensionPack: ExtensionPack, // The language is equal to databaseItem.language but is properly typed as QueryLanguage private readonly language: QueryLanguage, - initialMode: Mode = INITIAL_MODE, + initialMode: Mode, ) { super(app); diff --git a/extensions/ql-vscode/src/model-editor/modeling-store.ts b/extensions/ql-vscode/src/model-editor/modeling-store.ts index d50c13c67..0b3bfdf93 100644 --- a/extensions/ql-vscode/src/model-editor/modeling-store.ts +++ b/extensions/ql-vscode/src/model-editor/modeling-store.ts @@ -4,7 +4,7 @@ import { Method, Usage } from "./method"; import { ModeledMethod } from "./modeled-method"; import { ModelingEvents } from "./modeling-events"; import { INITIAL_HIDE_MODELED_METHODS_VALUE } from "./shared/hide-modeled-methods"; -import { INITIAL_MODE, Mode } from "./shared/mode"; +import { Mode } from "./shared/mode"; interface InternalDbModelingState { databaseItem: DatabaseItem; @@ -50,10 +50,7 @@ export class ModelingStore extends DisposableObject { this.state = new Map(); } - public initializeStateForDb( - databaseItem: DatabaseItem, - mode: Mode = INITIAL_MODE, - ) { + public initializeStateForDb(databaseItem: DatabaseItem, mode: Mode) { const dbUri = databaseItem.databaseUri.toString(); this.state.set(dbUri, { databaseItem,