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
4 files VERSION+1 −1src/view/view.v+2 −5src/view/view_test.v+7 −2v.mod+1 −1
VERSION+1 −1
@@ -1 +1 @@1-3.0.651+3.0.66

view file

src/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 		}

view file

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 

view file

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 }

view file