TermUI.Dev.DevMode (TermUI v0.2.0)
View SourceCentral coordinator for development mode features.
DevMode manages the lifecycle and state of all development tools:
- UI Inspector - Shows component boundaries
- State Inspector - Displays component state tree
- Hot Reload - Updates code without restart
- Performance Monitor - Shows FPS, memory, frame times
Usage
# Enable development mode
DevMode.enable()
# Toggle individual features
DevMode.toggle_ui_inspector()
DevMode.toggle_state_inspector()
DevMode.toggle_perf_monitor()
# Check status
DevMode.enabled?()
DevMode.ui_inspector_enabled?()Keyboard Shortcuts (when enabled)
- Ctrl+Shift+I: Toggle UI Inspector
- Ctrl+Shift+S: Toggle State Inspector
- Ctrl+Shift+P: Toggle Performance Monitor
Summary
Functions
Returns a specification to start this module under a supervisor.
Disables development mode.
Enables development mode.
Returns whether development mode is enabled.
Gets all registered components.
Gets current performance metrics.
Gets the currently selected component.
Gets the current state for rendering overlays.
Handles keyboard shortcut for development mode.
Returns whether performance monitor is enabled.
Records a frame for FPS calculation.
Records component render time.
Registers a component for inspection.
Renders development mode overlays.
Selects a component for detailed inspection.
Starts the DevMode server.
Returns whether state inspector is enabled.
Toggles hot reload.
Toggles performance monitor.
Toggles state inspector panel.
Toggles UI inspector overlay.
Returns whether UI inspector is enabled.
Unregisters a component.
Updates component state for inspection.
Types
Functions
Returns a specification to start this module under a supervisor.
See Supervisor.
@spec disable() :: :ok
Disables development mode.
@spec enable() :: :ok
Enables development mode.
@spec enabled?() :: boolean()
Returns whether development mode is enabled.
@spec get_components() :: %{required(term()) => component_info()}
Gets all registered components.
@spec get_metrics() :: metrics()
Gets current performance metrics.
@spec get_selected_component() :: term() | nil
Gets the currently selected component.
@spec get_state() :: state()
Gets the current state for rendering overlays.
Handles keyboard shortcut for development mode.
@spec perf_monitor_enabled?() :: boolean()
Returns whether performance monitor is enabled.
@spec record_frame(integer()) :: :ok
Records a frame for FPS calculation.
Records component render time.
Registers a component for inspection.
Renders development mode overlays.
Returns render nodes for UI inspector, state inspector, and performance monitor.
@spec select_component(term()) :: :ok
Selects a component for detailed inspection.
Starts the DevMode server.
@spec state_inspector_enabled?() :: boolean()
Returns whether state inspector is enabled.
@spec toggle_hot_reload() :: boolean()
Toggles hot reload.
@spec toggle_perf_monitor() :: boolean()
Toggles performance monitor.
@spec toggle_state_inspector() :: boolean()
Toggles state inspector panel.
@spec toggle_ui_inspector() :: boolean()
Toggles UI inspector overlay.
@spec ui_inspector_enabled?() :: boolean()
Returns whether UI inspector is enabled.
@spec unregister_component(term()) :: :ok
Unregisters a component.
Updates component state for inspection.