diff --git a/src/gui_2.py b/src/gui_2.py index a5aa0e1..4330a21 100644 --- a/src/gui_2.py +++ b/src/gui_2.py @@ -974,7 +974,10 @@ class App: self._render_external_tools_panel() imgui.separator() imgui.text("") - self._render_external_editor_panel() + try: + self._render_external_editor_panel() + except Exception as e: + imgui.text_colored(vec4(1, 0.3, 0.3, 1), f"Error: {str(e)}") imgui.end_tab_item() if imgui.begin_tab_item("Workspace Layouts")[0]: imgui.text("Experimental: Auto-switch layout by Tier") diff --git a/src/models.py b/src/models.py index c96933a..d7813b0 100644 --- a/src/models.py +++ b/src/models.py @@ -425,7 +425,11 @@ class ExternalEditorConfig: editors = {} for name, ed_data in data.get("editors", {}).items(): if isinstance(ed_data, dict): - editors[name] = TextEditorConfig.from_dict(ed_data) + editors[name] = TextEditorConfig( + name=name, + path=ed_data.get("path", ""), + diff_args=ed_data.get("diff_args", []), + ) elif isinstance(ed_data, str): editors[name] = TextEditorConfig(name=name, path=ed_data) return cls(