readline: give the possibility to ignore the empty line in the history (#13452)

pull/13465/head
Vincenzo Palazzo 2022-02-13 23:12:25 +01:00 committed by GitHub
parent 57e850e932
commit bf11df40e2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 12 additions and 4 deletions

View File

@ -42,7 +42,9 @@ enum FnType {
fn new_repl() Repl {
return Repl{
readline: readline.Readline{}
readline: readline.Readline{
skip_empty: true
}
modules: ['os', 'time', 'math']
vstartup_lines: os.read_file(vstartup) or { '' }.trim_right('\n\r').split_into_lines()
// Test file used to check if a function as a void return or a

View File

@ -28,6 +28,7 @@ mut:
prompt string
prompt_offset int
previous_lines [][]rune
skip_empty bool // skip the empty lines when calling .history_previous()
search_index int
is_tty bool
}

View File

@ -551,9 +551,14 @@ fn (mut r Readline) history_previous() {
r.previous_lines[0] = r.current
}
r.search_index++
r.current = r.previous_lines[r.search_index]
r.cursor = r.current.len
r.refresh_line()
prev_line := r.previous_lines[r.search_index]
if r.skip_empty && prev_line == [] {
r.history_previous()
} else {
r.current = prev_line
r.cursor = r.current.len
r.refresh_line()
}
}
// history_next sets current line to the content of the next line in the history buffer.