Files
signed/docs/gpui-native-kit-gaps.md
T
reya c32030cf21
Rust / build (macos-latest, stable) (push) Waiting to run
Rust / build (ubuntu-latest, stable) (push) Waiting to run
Rust / build (windows-latest, stable) (push) Waiting to run
Rust / build (macos-latest, stable) (pull_request) Waiting to run
Rust / build (ubuntu-latest, stable) (pull_request) Waiting to run
Rust / build (windows-latest, stable) (pull_request) Waiting to run
extract workspace crates and switch to gpui-native-kit
2026-11-11 19:04:36 +07:00

2.3 KiB

gpui-native-kit gaps

Known Signed features the kit does not currently support. Recorded instead of modifying the kit or reimplementing a parallel mechanism.

  1. Custom themes. Signed Light/Signed Dark, theme registry names, font sizes, radii, focus ring, and shadows are removed. The kit derives colors, radii, fonts, and chrome from the OS; AppearanceMode is preserved through set_mode_override/follow_system.
  2. Tab bar navigation. The previous/next tab buttons and tab_bar.hide_navigation_buttons are removed; the kit tab strip has none.
  3. Traffic-light placement. Custom macOS traffic-light position and the 44px tab bar are removed. The kit uses theme.titlebar_height and a fixed 78px traffic-light pad.
  4. Virtual list. The kit has no data-driven virtual list. Screens keep gpui::uniform_list for fixed-height lists and ScrollArea for the Inbox.
  5. Editable code field. The kit code view is read-only and supports four grammars. Signed only previews files read-only; other extensions render as plain text.
  6. Hunk-only diffs. Kit DiffViewState needs the full old and new texts; CommitDiff carries hunks only. The custom hunk rows are retained.
  7. Tree data. The kit tree is flat with caller-managed expansion, and has no file glyph; folders use the folder role.
  8. Dynamic dock panels. DockState has no unregister or open_view API. Per-repository/per-entity panels register a builder keyed by a unique id and stay in the builder map. No dock persistence, zoom, or bottom/right placement; splits only.
  9. Dialogs. Dialogs are elements mounted at the window root; there is no window.open_dialog, dialog stack, or non-dismissible option. A single-slot DialogHost is used, and the passphrase dialog ignores dismiss requests.
  10. Notifications. The kit toast shows one toast at a time; backend errors queue but only the current toast is visible.
  11. Segmented badges. Segmented has no badge slot; filter counts fold into labels.
  12. Combobox trigger. Combobox has no custom trigger renderer; branch/tag selectors lose the leading git icon and custom caret.
  13. Icons. The built-in role set is limited. App-specific glyphs remain in assets::CustomIconName through IconNamed; kit icons are unpainted unless given a color.