• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

umputun / revdiff / 24821449577
90%

Build:
DEFAULT BRANCH: master
Ran 23 Apr 2026 06:56AM UTC
Jobs 1
Files 59
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

23 Apr 2026 06:55AM UTC coverage: 89.548% (+0.2%) from 89.327%
24821449577

push

github

web-flow
feat: leader-based chord keybindings (kitty-style ctrl+w>x) (#143)

* add plan: leader-chord-keybindings

* feat: add chord keybinding parser with ctrl/alt leader validation

Extends parse() to recognize chord bindings like 'ctrl+w>x'. Leader must
be a ctrl+ or alt+ combo; second stage is a single key. Three-stage chords
and empty halves are rejected with a warn. Leader case is normalized
(ctrl+/alt+ lowercased); second-stage case is preserved so ctrl+w>x and
ctrl+w>X stay distinct. Both map and unmap accept chord keys.

* feat: add chord conflict resolution and lazy leader index

Add IsChordLeader/chordPrefixes methods backed by a lazy cache on Keymap,
invalidated on every Bind/Unbind. Add resolveConflicts() at the end of Load()
that drops any standalone binding whose key is also a chord prefix so that
pressing the leader always enters chord-pending state.

* feat: add ResolveChord with layout fallback for chord bindings

* feat: add tests verifying Dump round-trip and KeysFor for chord bindings

Lock in the behavior that chord keys stored as flat strings (ctrl+w>x)
round-trip through Dump/parse and sort alphabetically alongside
single-key bindings via KeysFor and HelpSections.

* feat: extract dispatchAction helper and split pane-nav handlers

Pure refactor preparing for chord dispatch. handleKey's post-Resolve flow
moves into dispatchAction; handleDiffNav and handleTreeNav become thin
wrappers over handleDiffAction and handleTreeAction so keymap-resolved and
chord-resolved paths share the same core.

* feat: add keyState and handleChordSecond for leader-chord dispatch

Introduces keyState sub-struct (chordPending + hint) on Model and the
handleChordSecond method that dispatches resolved chord actions through
dispatchAction, surfaces "Unknown chord" on a miss, and cancels silently
on esc. Wires the chord hint into transientHint() as the lowest-priority
tier so in-flight reload/compact hints still win.

* feat: wire chord-first and chord-second guard... (continued)

133 of 133 new or added lines in 6 files covered. (100.0%)

8036 of 8974 relevant lines covered (89.55%)

465.69 hits per line

Jobs
ID Job ID Ran Files Coverage
1 24821449577.1 23 Apr 2026 06:56AM UTC 59
89.55
GitHub Action Run
Source Files on build 24821449577
  • Tree
  • List 59
  • Changed 7
  • Source Changed 0
  • Coverage Changed 7
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • c444b580 on github
  • Prev Build on master (#24798353579)
  • Next Build on master (#24824793047)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc