Presentation state for the traditional tab-based editor shell.
These fields are presentation concerns: they control how the editor
looks and behaves visually, but have no effect on the core editing
model. Each field was migrated from MingaEditor.State as part of
Phase F of the Core/Shell separation.
All set_X/get_X methods that operate on shell fields live here.
MingaEditor.State retains thin wrappers that delegate through
update_shell_state/2 for backward compatibility.
Summary
Functions
Returns the agent session lifecycle state.
Returns the bottom panel state.
Cancels the nav flash animation.
Clears the transient status message.
Closes the dashboard home screen.
Clears the git status panel.
Returns the dashboard home screen state, or nil.
Dismisses the hover popup.
Returns the git status panel data, or nil.
Returns the hover popup state, or nil when not showing.
Returns the nav flash state, or nil when inactive.
Returns the picker UI state.
Returns the prompt UI state.
Replaces the agent session lifecycle state.
Replaces the bottom panel state.
Sets the dashboard home screen state.
Sets the git status panel data.
Sets the hover popup state.
Sets the nav flash state.
Replaces the picker UI state.
Replaces the prompt UI state.
Sets the transient status message shown in the modeline.
Replaces the tab bar state.
Replaces the which-key popup state.
Returns true if the given tool should NOT be prompted for installation.
Returns the transient status message, or nil.
Returns the tab bar state, or nil.
Applies a function to the picker UI state.
Returns the which-key popup state.
Types
@type t() :: %MingaEditor.Shell.Traditional.State{ agent: MingaEditor.State.Agent.t(), bottom_panel: MingaEditor.BottomPanel.t(), dashboard: MingaEditor.Dashboard.state() | nil, git_status_panel: MingaEditor.Frontend.Protocol.GUI.git_status_data() | nil, hover_popup: MingaEditor.HoverPopup.t() | nil, modeline_click_regions: [ MingaEditor.Shell.Traditional.Modeline.click_region() ], nav_flash: MingaEditor.NavFlash.t() | nil, picker_ui: MingaEditor.State.Picker.t(), prompt_ui: MingaEditor.State.Prompt.t(), signature_help: MingaEditor.SignatureHelp.t() | nil, status_msg: String.t() | nil, suppress_tool_prompts: boolean(), tab_bar: MingaEditor.State.TabBar.t() | nil, tab_bar_click_regions: [ MingaEditor.Shell.Traditional.TabBarRenderer.click_region() ], tool_declined: MapSet.t(), tool_prompt_queue: [atom()], warning_popup_timer: reference() | nil, whichkey: MingaEditor.State.WhichKey.t() }
Functions
@spec agent(t()) :: MingaEditor.State.Agent.t()
Returns the agent session lifecycle state.
@spec bottom_panel(t()) :: MingaEditor.BottomPanel.t()
Returns the bottom panel state.
Clears the transient status message.
Closes the dashboard home screen.
Clears the git status panel.
@spec dashboard(t()) :: MingaEditor.Dashboard.state() | nil
Returns the dashboard home screen state, or nil.
Dismisses the hover popup.
@spec git_status_panel(t()) :: MingaEditor.Frontend.Protocol.GUI.git_status_data() | nil
Returns the git status panel data, or nil.
@spec hover_popup(t()) :: MingaEditor.HoverPopup.t() | nil
Returns the hover popup state, or nil when not showing.
@spec picker_ui(t()) :: MingaEditor.State.Picker.t()
Returns the picker UI state.
@spec prompt_ui(t()) :: MingaEditor.State.Prompt.t()
Returns the prompt UI state.
@spec set_agent(t(), MingaEditor.State.Agent.t()) :: t()
Replaces the agent session lifecycle state.
@spec set_bottom_panel(t(), MingaEditor.BottomPanel.t()) :: t()
Replaces the bottom panel state.
@spec set_dashboard(t(), MingaEditor.Dashboard.state()) :: t()
Sets the dashboard home screen state.
Sets the git status panel data.
@spec set_hover_popup(t(), MingaEditor.HoverPopup.t()) :: t()
Sets the hover popup state.
@spec set_picker_ui(t(), MingaEditor.State.Picker.t()) :: t()
Replaces the picker UI state.
@spec set_prompt_ui(t(), MingaEditor.State.Prompt.t()) :: t()
Replaces the prompt UI state.
Sets the transient status message shown in the modeline.
@spec set_tab_bar(t(), MingaEditor.State.TabBar.t() | nil) :: t()
Replaces the tab bar state.
@spec set_whichkey(t(), MingaEditor.State.WhichKey.t()) :: t()
Replaces the which-key popup state.
Returns true if the given tool should NOT be prompted for installation.
A tool is skipped when it's already declined this session, already installed, currently being installed, or already in the prompt queue.
Returns the transient status message, or nil.
@spec tab_bar(t()) :: MingaEditor.State.TabBar.t() | nil
Returns the tab bar state, or nil.
@spec update_picker_ui(t(), (MingaEditor.State.Picker.t() -> MingaEditor.State.Picker.t())) :: t()
Applies a function to the picker UI state.
@spec whichkey(t()) :: MingaEditor.State.WhichKey.t()
Returns the which-key popup state.