hone-ide
IDE workbench shell. Compiles to a native binary via Perry.
# macOS
cd hone-ide && perry compile src/app.ts --output hone-ide
# iOS Simulator
cd hone-ide && perry compile src/app.ts --target ios-simulator --output Hone
# Web
cd hone-ide && perry compile src/app.ts --target web --output hone-ide.html
Entry Point
src/app.ts performs startup in order:
- Load themes from
@honeide/themes - Detect platform and screen dimensions
- Register built-in commands and panels
- Build the visual workbench (or show first-run setup screen)
- Call
App({ title: 'Hone', width: 1200, height: 800, icon: 'hone-icon.png', body: body })
The plugin system initializes conditionally based on the __plugins__ compile flag.
Commands
src/commands.ts provides registerCommand() with:
id— unique string identifiertitle— display namecategory— grouping (e.g., “File”, “Edit”, “View”)handler— function to executeshowInPalette— whether the command appears in the command palette
Commands are the central mechanism for keybindings, menus, and the command palette.
Keybindings
src/keybindings.ts handles keyboard shortcut resolution.
- Modifier support: Ctrl, Shift, Alt, Meta (Cmd on macOS)
- Chord sequences (e.g., Ctrl+K then Ctrl+C)
- When-clauses for context-dependent activation
CmdOrCtrlnormalizes to Cmd on macOS, Ctrl on other platforms
Views
25+ views in src/workbench/views/:
| View | Purpose |
|---|---|
ai-chat | AI conversation panel |
ai-inline | Inline AI completion UI |
debug | Debugger controls and state |
diff | Side-by-side and inline diff |
explorer | File tree browser |
extensions | Extension management |
find | Find and replace |
git | Git status, staging, commit |
lsp | Autocomplete, diagnostics, hover, signature help |
notifications | Toast notifications |
plugins | Plugin management (V2) |
pr-review | Pull request review |
quick-open | Fuzzy file finder |
recent | Recent files and workspaces |
search | Workspace-wide search |
settings-ui | Visual settings editor |
setup | First-run configuration |
sync | Cross-device sync status |
tabs | Editor tab bar |
terminal | Integrated terminal |
update | Update notifications |
welcome | Welcome/start page |
status-bar | Bottom status bar |
Theme Engine
Loads VS Code-compatible JSON theme files. Ships with 15 built-in themes.
- UI colors accessed via getter functions
- Dynamic theme switching at runtime
- Token colors resolved through the tokenizer’s theme mapping