IdeApp class

The full-screen TUI IDE: a file-tree sidebar, a tab bar of open files, a syntax-highlighted editor with a git-change gutter, and a status bar.

run takes over the terminal (via Terminal) until the user quits with Ctrl-Q, then restores it. The layout, focus, key routing and render loop all live here; the panes are pure renderers and the models hold the state.

Key bindings:

  • Ctrl-Q quit (guards unsaved changes), Ctrl-S save, Ctrl-W close tab (both guard unsaved changes with a confirm-again prompt).
  • Ctrl-F find text, Ctrl-L go to line — each opens a modal prompt.
  • Ctrl-T toggle/focus the integrated terminal panel; type a command and Enter to run it (working directory persists via cd); Esc returns to the editor.
  • Ctrl-A toggle/focus the AI agent panel; it operates with the open file or the selected directory as context and can read/edit files, search and run commands. Esc returns to the editor.
  • Ctrl-B toggle focus between tree and editor; Tab/Esc also switch.
  • Ctrl-N/Ctrl-P next/previous tab.
  • Tree: arrows/PageUp/Down/Home/End navigate, Enter/→ open or expand, ← collapse/parent, . toggle hidden files, n new file, N new folder.
  • Editor: arrows/Home/End/PageUp/Down move; typing edits; Tab inserts two spaces.

Constructors

IdeApp({required Workspace workspace, required TerminalDriver terminal, HighlighterRegistry? registry, AgentBackend? agentBackend, AiProvider? aiProvider, String? aiModel, CommandShield? shield, CommandSyntax? commandSyntax, TokenTheme theme = TokenTheme.dark})

Properties

debugScreen ScreenBuffer?
The current screen buffer (for tests/inspection); null before first render.
no setter
hashCode int
The hash code for this object.
no setterinherited
rootPath String
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
theme → TokenTheme
final

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
run() Future<void>
Runs the IDE until the user quits, restoring the terminal afterwards.
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited