mirror of
https://github.com/SpaceVim/SpaceVim.git
synced 2025-03-13 02:05:40 +08:00
Fix flygrep history completion (#3659)
This commit is contained in:
parent
21bbc714ee
commit
44b3a99d06
@ -679,8 +679,6 @@ function! s:previous_match_history() abort
|
|||||||
let s:complete_input_history_base = s:MPT._prompt.begin
|
let s:complete_input_history_base = s:MPT._prompt.begin
|
||||||
let s:MPT._prompt.cursor = ''
|
let s:MPT._prompt.cursor = ''
|
||||||
let s:MPT._prompt.end = ''
|
let s:MPT._prompt.end = ''
|
||||||
else
|
|
||||||
let s:MPT._prompt.begin = s:complete_input_history_base
|
|
||||||
endif
|
endif
|
||||||
let s:complete_input_history_num[0] += 1
|
let s:complete_input_history_num[0] += 1
|
||||||
let s:MPT._prompt.begin = s:complete_input_history(s:complete_input_history_base, s:complete_input_history_num)
|
let s:MPT._prompt.begin = s:complete_input_history(s:complete_input_history_base, s:complete_input_history_num)
|
||||||
@ -693,8 +691,6 @@ function! s:next_match_history() abort
|
|||||||
let s:complete_input_history_base = s:MPT._prompt.begin
|
let s:complete_input_history_base = s:MPT._prompt.begin
|
||||||
let s:MPT._prompt.cursor = ''
|
let s:MPT._prompt.cursor = ''
|
||||||
let s:MPT._prompt.end = ''
|
let s:MPT._prompt.end = ''
|
||||||
else
|
|
||||||
let s:MPT._prompt.begin = s:complete_input_history_base
|
|
||||||
endif
|
endif
|
||||||
let s:complete_input_history_num[1] += 1
|
let s:complete_input_history_num[1] += 1
|
||||||
let s:MPT._prompt.begin = s:complete_input_history(s:complete_input_history_base, s:complete_input_history_num)
|
let s:MPT._prompt.begin = s:complete_input_history(s:complete_input_history_base, s:complete_input_history_num)
|
||||||
@ -704,14 +700,21 @@ endfunction
|
|||||||
|
|
||||||
function! s:complete_input_history(str,num) abort
|
function! s:complete_input_history(str,num) abort
|
||||||
let results = filter(copy(s:grep_history), "v:val =~# '^' . a:str")
|
let results = filter(copy(s:grep_history), "v:val =~# '^' . a:str")
|
||||||
if a:num[0] - a:num[1] == 0
|
if !empty(results) && results[-1] !=# a:str
|
||||||
return a:str
|
let complete_items = results + [a:str]
|
||||||
elseif len(results) > 0
|
elseif empty(results)
|
||||||
let index = ((len(results) - 1) - a:num[0] + a:num[1]) % len(results)
|
let complete_items = [a:str]
|
||||||
return results[index]
|
|
||||||
else
|
else
|
||||||
return a:str
|
let complete_items = results
|
||||||
endif
|
endif
|
||||||
|
" 5 0 6
|
||||||
|
let patch = (a:num[0] - a:num[1]) % len(complete_items)
|
||||||
|
if patch >= 0
|
||||||
|
let index = len(complete_items) - 1 - patch
|
||||||
|
else
|
||||||
|
let index = abs(patch) - 1
|
||||||
|
endif
|
||||||
|
return complete_items[index]
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
let s:MPT._function_key = {
|
let s:MPT._function_key = {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user