simvx.ide.editor_integration¶
Editor integration – injects IDE features into the editor’s CodeEditorPanel.
This lives in simvx.ide (not simvx.editor) because the dependency must
point ide -> editor: ide may know about the editor’s extension points, but the
editor (a sibling package) must never import ide at module load.
No panel swapping: the editor already has a CodeEditorPanel from core. The bridge injects IDE capabilities (LSP, diagnostics, breakpoints, completions) and adds IDE-only panels (Terminal, Output, Problems, Search). The editor side references this class lazily – it is constructed by integration code that has both packages available, never at editor import time.
Module Contents¶
Classes¶
Bridges the editor’s State <-> IDEState. |
Data¶
API¶
- simvx.ide.editor_integration.log¶
‘getLogger(…)’
- simvx.ide.editor_integration.__all__¶
[‘IDEBridgePlugin’]
- class simvx.ide.editor_integration.IDEBridgePlugin(editor_state: simvx.editor.state.State, bottom_tabs: simvx.core.ui.tabs.TabContainer, code_panel: simvx.core.ui.code_editor_panel.CodeEditorPanel | None = None)[source]¶
Bridges the editor’s State <-> IDEState.
Instead of swapping panels, injects IDE callbacks into the editor’s existing CodeEditorPanel and adds IDE-only bottom panels.
Lifecycle::
bridge = IDEBridgePlugin(editor_state, bottom_tabs, code_panel) bridge.activate() # wire signals, inject callbacks, start LSP bridge.poll(dt) # call each frame bridge.deactivate() # cleanup
Initialization
- property ide_state: simvx.ide.state.State[source]¶
- property ide_config: simvx.ide.config.Config[source]¶