NS9 slice: Apply newed colors to editor chrome, cursor, selection, and search #59

Closed
opened 2026-06-21 09:15:35 +00:00 by tmk241 · 1 comment
Owner

OBJECTIVE: The main editor surface uses the newed-matched theme for text, gutter/status chrome, cursor/selection, dirty state, and search matches without hurting narrow viewport readability.

AUTHORITY: Parent #57; KEYMAP.md modes/search surfaces; mim REQUIREMENTS.md ui/input/testing rows; newed theme default palette anchors.

AGENT AUTHORITY:

  • Delivery authority: local-commit
  • Tracker authority: this issue may be commented and closed when acceptance passes; parent #57 may be commented/checklisted.
  • Handoff state: committed clean, tracker commented/closed.

PARENT: #57 via explicit issue link and parent checklist.

SCOPE: src/tui.zig rendering, status line, cursor/selection/search-match styles, dirty/read-only/error indicators, render diagnostics/fixtures. Use the theme tokens from #58 or equivalent completed slice.

BOUNDARIES: Do not redesign layout or keymap. Do not make visual tests brittle screenshots; prefer ANSI/text fixtures and render diagnostics.

ACCEPTANCE:

  • Normal text/background/status line use the newed-matched tokens.
  • Cursor, active selection, inactive selection, current line if present, search match, and active search match are distinguishable in truecolor and degraded modes.
  • Dirty/clean/read-only/error status is not color-only; text/icons/labels remain clear.
  • Rendered frames always reset styles at line/frame boundaries.
  • Narrow viewport smoke renders stay within expected width/height and remain readable.

VERIFICATION:

  • zig build test
  • Render fixture tests for normal frame, dirty state, selection, search match, narrow viewport, and mono/16-color style fallbacks.
  • zig build v1-smoke

BLOCKERS: depends on theme token/adaptation support.

OBJECTIVE: The main editor surface uses the newed-matched theme for text, gutter/status chrome, cursor/selection, dirty state, and search matches without hurting narrow viewport readability. AUTHORITY: Parent #57; KEYMAP.md modes/search surfaces; mim REQUIREMENTS.md ui/input/testing rows; newed theme default palette anchors. AGENT AUTHORITY: - Delivery authority: local-commit - Tracker authority: this issue may be commented and closed when acceptance passes; parent #57 may be commented/checklisted. - Handoff state: committed clean, tracker commented/closed. PARENT: #57 via explicit issue link and parent checklist. SCOPE: `src/tui.zig` rendering, status line, cursor/selection/search-match styles, dirty/read-only/error indicators, render diagnostics/fixtures. Use the theme tokens from #58 or equivalent completed slice. BOUNDARIES: Do not redesign layout or keymap. Do not make visual tests brittle screenshots; prefer ANSI/text fixtures and render diagnostics. ACCEPTANCE: - Normal text/background/status line use the newed-matched tokens. - Cursor, active selection, inactive selection, current line if present, search match, and active search match are distinguishable in truecolor and degraded modes. - Dirty/clean/read-only/error status is not color-only; text/icons/labels remain clear. - Rendered frames always reset styles at line/frame boundaries. - Narrow viewport smoke renders stay within expected width/height and remain readable. VERIFICATION: - `zig build test` - Render fixture tests for normal frame, dirty state, selection, search match, narrow viewport, and mono/16-color style fallbacks. - `zig build v1-smoke` BLOCKERS: depends on theme token/adaptation support.
tmk241 added the sliceready-for-agentgoal labels 2026-06-21 09:15:35 +00:00
Author
Owner

Closing receipt for #59.

Implemented in local commit 3df3b25 (Apply newed palette to editor chrome):

  • Applied the newed night palette to editor gutter/text/current-line/cursor/selection/status chrome.
  • Filled editor and panel rows with themed backgrounds so the global background is visible instead of terminal-default holes.
  • Added active and non-active search match highlighting using palette tokens.
  • Status line now exposes clean/dirty state with palette styling.
  • Updated terminal E2E ANSI-role classification to the new palette values.
  • Added render tests for global background fill and active/non-active search-match styling.

Verification:

  • zig build
  • zig build test
  • zig build terminal-e2e
  • zig build run -- --help
  • zig build --prefix /tmp/mim-install verify-install-code
  • redgate list /opt/repositories/mim/REQUIREMENTS.md && redgate lint /opt/repositories/mim/REQUIREMENTS.md && redgate health /opt/repositories/mim/REQUIREMENTS.md
Closing receipt for #59. Implemented in local commit `3df3b25` (`Apply newed palette to editor chrome`): - Applied the newed night palette to editor gutter/text/current-line/cursor/selection/status chrome. - Filled editor and panel rows with themed backgrounds so the global background is visible instead of terminal-default holes. - Added active and non-active search match highlighting using palette tokens. - Status line now exposes clean/dirty state with palette styling. - Updated terminal E2E ANSI-role classification to the new palette values. - Added render tests for global background fill and active/non-active search-match styling. Verification: - `zig build` ✅ - `zig build test` ✅ - `zig build terminal-e2e` ✅ - `zig build run -- --help` ✅ - `zig build --prefix /tmp/mim-install verify-install-code` ✅ - `redgate list /opt/repositories/mim/REQUIREMENTS.md && redgate lint /opt/repositories/mim/REQUIREMENTS.md && redgate health /opt/repositories/mim/REQUIREMENTS.md` ✅
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: tmk241/mim#59