Based on Bragdon et al., Code Bubbles (ICSE 2010), and the current zega codebase.
- Infinite pan/zoom virtual canvas
- Bubbles as editable fragments (light chrome)
- No overlap / bubble spacer
- Working-set proximity groups + color halos
- File-halos (group by document) + project folder open
- Folder icons + breadcrumb navigate-in-place
- Horizontal reflow (view-only)
- Document-backed Zig/Rust fragments, outline → bubbles
- Edit, save, undo; JetBrains Mono; syntax highlight
- Hover scale; blank-canvas context menu (create new file)
- Draw connections (orthogonal arrows, paper 1-M)
Paper: open callee next to caller; rectilinear arrows; find references → bubble stacks.
- Draw connections (orthogonal arrows, paper 1-M)
- Open definition (click call → new bubble + link)
- Find all references → stack bubble; expand in place
- Popup project search (substring over symbols/files)
- Keyboard focus cycle between bubbles
- Hover preview of containing method
- Vertical code elision (collapse / expand blocks)
- Resize bubble (border drag) → live reflow
- Breadcrumb bar (module · type · symbol; peer navigation)
- Bud new function/method into a growing bubble
- Close / pin bubbles; polish empty & new-file UX
- Expand context menu (open file, open def, note, …)
- Name working sets; explicit split/merge
- Persist/reload groups (workspace file)
- Workspace bar (bird’s-eye map, pan to region)
- Labeled task sections on the bar
- Task shelf (save / close / reopen layouts)
- Search groups by name or contents
Paper used Eclipse; zega targets zls + rust-analyzer.
- Robust outline (tree-sitter or equivalent)
- Goto-def / references / hover via LSP
- Diagnostics (error box under bubble; structure +
zig ast-check) - Bracket pair colorization (nested rainbow + active pair at caret)
- Completions v1 (local keywords/builtins/symbols; file + working-set)
- Completions via zls (LSP)
- Format (
zig fmt,rustfmt)
- Note bubbles (richer edit, sticky)
- Flag bubbles (icons / labels)
- Docs bubbles (markdown / doc comments)
- Mini terminal bubbles (PTY/zsh, context menu, many independent)
- Optional: web / issue bubbles later
- Debug channel layout (session strip + mini map)
- Break / stop → code bubble + stack bubbles
- Step in → new callee bubble + arrow
- Data-structure bubbles; tear-out fields
- Console / log bubbles
- Save/reload debug sessions
- Export workspace (layout + notes) to JSON/XML
- Import shared workspace
- PDF / image snapshot of a working set
- Spatial index (hit-test / spacer / cull)
- Dirty-region / LOD when zoomed out
- Large projects; minimap performance
- Themes, keybindings, multi-selection
| # | Focus | Why |
|---|---|---|
| 1 | Navigation & arrows | Completes the paper’s main loop |
| 2 | Elision + resize + breadcrumb | Core reading UX |
| 3 | Working sets + workspace bar | Multitasking / interruption |
| 4 | LSP | Real navigation for Zig/Rust |
| 5 | Notes / flags / docs | Heterogeneous sets |
| 6 | Debugging | High impact, large effort |
| 7 | Share/export | After layout is stable |
| 8 | Scale & polish | As bubble count grows |
- Java/Eclipse-only tooling, Bugzilla, full Javadoc browser
- Email-as-attachment share (use file export instead)
- Full IDE refactoring parity