simvx.core.config

Unified application configuration for SimVX.

Merges editor and IDE settings into a single ~/.config/simvx/config.json file with general, editor, and ide sections. Legacy per-tool config files (editor.json, ide.json) are auto-migrated on first load.

Module Contents

Classes

GeneralConfig

Settings shared by both editor and IDE.

EditorSection

Editor-specific settings.

IDESection

IDE-specific settings.

AppConfig

Unified config with sections, persisted in ~/.config/simvx/config.json.

Data

API

simvx.core.config.log

‘getLogger(…)’

simvx.core.config.CONFIG_DIR

None

simvx.core.config.CONFIG_FILE

None

class simvx.core.config.GeneralConfig

Settings shared by both editor and IDE.

theme_preset: str

‘dark’

font_size: float

13.0

window_width: int

1600

window_height: int

900

recent_files: list[str]

‘field(…)’

recent_folders: list[str]

‘field(…)’

recent_projects: list[dict]

‘field(…)’

custom_shortcuts: dict[str, str]

‘field(…)’

class simvx.core.config.EditorSection

Editor-specific settings.

dock_layout: dict

‘field(…)’

show_grid: bool

True

grid_size: float

1.0

grid_subdivisions: int

4

snap_enabled: bool

False

snap_size: float

0.5

auto_save_interval: int

300

class simvx.core.config.IDESection

IDE-specific settings.

tab_size: int

4

insert_spaces: bool

True

word_wrap: bool

False

show_line_numbers: bool

True

show_minimap: bool

False

show_code_folding: bool

True

auto_save: bool

False

format_on_save: bool

True

sidebar_width: int

250

bottom_panel_height: int

200

sidebar_visible: bool

True

bottom_panel_visible: bool

True

lsp_enabled: bool

True

lsp_command: str

‘pylsp’

lsp_args: list[str]

‘field(…)’

lint_enabled: bool

True

lint_on_save: bool

True

lint_command: str

‘ruff check –output-format=json’

format_command: str

‘ruff format’

python_path: str = <Multiline-String>
venv_path: str = <Multiline-String>
auto_detect_venv: bool

True

debug_adapter: str

‘debugpy’

keybindings: dict[str, str]

‘field(…)’

class simvx.core.config.AppConfig

Unified config with sections, persisted in ~/.config/simvx/config.json.

general: simvx.core.config.GeneralConfig

‘field(…)’

editor: simvx.core.config.EditorSection

‘field(…)’

ide: simvx.core.config.IDESection

‘field(…)’

load() None

Load from config.json, falling back to legacy migration.

save() None

Write current config to config.json.

add_recent_file(path: str) None
add_recent_folder(path: str) None