ebe6c3ba542a
make q a letter while searching, so a search can start with q, and leave Esc as the way out (3.0.66)
- time
- 2026-09-26 13:15 UTC · 2 weeks ago
- machine
- Junes-MacBook-Pro.local
- agent
- claude-opus-5-5
- session
- history view
- parent
- 7feada19c118
↓ koh-ebe6c3ba.tar.gzatlas at this save
files changed4 files
VERSION+1 −1src/view/view.v+2 −5src/view/view_test.v+7 −2v.mod+1 −1src/view/view.v+2 −5
@@ -204,14 +204,11 @@204204 return false205205 }206206 207-// search_key edits the query. q still quits, as in Koh 2: a view you cannot208-// leave is worse than a search that cannot contain q.207+// search_key edits the query. Every key is text here, q included, so a208+// search can begin with q; Esc is the way out.209209 fn search_key(mut session Session, key Key) bool {210210 match key.kind {211211 .rune {212- if key.text == 'q' {213- return true214- }215212 session.screen.query += key.text216213 session.screen.selected = 0217214 }src/view/view_test.v+7 −2
@@ -162,10 +162,15 @@162162 assert session.screen.query == 'x'163163 }164164 165-fn test_q_quits_from_the_list_and_while_searching() {166- mut session := list_session([save('aaa', 'first', false)])165+fn test_q_is_a_letter_while_searching_and_esc_is_the_way_out() {166+ mut session := list_session([save('aaa', 'queue the saves', false)])167167 assert handle_key(mut session, unsafe { nil }, Key{ kind: .rune, text: 'q' }, never_act)168168 session.mode = .search169+ assert !handle_key(mut session, unsafe { nil }, Key{ kind: .rune, text: 'q' }, never_act)170+ assert session.screen.query == 'q'171+ handle_key(mut session, unsafe { nil }, Key{ kind: .escape }, never_act)172+ assert session.mode == .list173+ assert session.screen.query == ''169174 assert handle_key(mut session, unsafe { nil }, Key{ kind: .rune, text: 'q' }, never_act)170175 }171176 v.mod+1 −1
@@ -1,6 +1,6 @@11 Module {22 name: 'koh3'3- version: '3.0.65'3+ version: '3.0.66'44 description: 'One SQLite file per repo, one line of history.'55 license: 'MIT'66 }