ADR-0042: The files pane is a rich list drawn on a text widget
Context
The files pane was a Tk listbox: text only, one colour, one selection bar,
essentially the output of ls. A Windows 2000-style navigator needs per-row icons, a
hover band and a full-width selection band, none of which a listbox can draw.
Decision
The pane body is a read-only text widget used as a list canvas: one line per
entry, a monochrome glyph icon followed by the name, and full-width hover and
selection bands implemented as tags that extend through the newline. Colours come
from existing theme roles, with the hover shade derived by blending towards the
selection colour.
This text widget is GUI-local chrome, not a view of a core buffer. It is disabled, never proxied and never editable. A text widget is used only because it is the best stock Tk surface for icons, bands, scrolling and keyboard navigation; a canvas would need all of that computed by hand.
Consequences
- The pane gains the look and feel the UI principle asks for, with no new theme roles.
- rio does not move towards "everything is a buffer". Core-backed read-only view buffers remain a separate, untaken option.
- The component was generalised for the git pane in ADR-0043, and the flat navigator became a tree in ADR-0087.