1
0
mirror of https://github.com/SpaceVim/SpaceVim.git synced 2025-02-03 01:40:05 +08:00

feat(history): save searching history

This commit is contained in:
Eric Wong 2024-03-14 13:59:25 +08:00
parent d4bac8e59e
commit 7036897359

View File

@ -41,20 +41,28 @@ function! s:read_cache() abort
if filereadable(s:history_cache_path) if filereadable(s:history_cache_path)
let his = s:JSON.json_decode(join(readfile(s:history_cache_path, ''), '')) let his = s:JSON.json_decode(join(readfile(s:history_cache_path, ''), ''))
if type(his) ==# type({}) if type(his) ==# type({})
call map(deepcopy(his.commands), 'histadd("cmd", v:val)') call map(deepcopy(his.cmd), 'histadd("cmd", v:val)')
call map(deepcopy(his.search), 'histadd("search", v:val)')
let s:filepos = get(his, 'filepos', {}) let s:filepos = get(his, 'filepos', {})
endif endif
endif endif
endfunction endfunction
function! s:write_cache() abort function! s:write_cache() abort
let his = { 'commands' : [], 'filepos' : s:filepos} let his = { 'cmd' : [], 'filepos' : s:filepos, 'search' : []}
for i in range(1, 100) for i in range(1, 100)
let cmd = histget('cmd', 0 - i) let cmd = histget('cmd', 0 - i)
if empty(cmd) if empty(cmd)
break break
endif endif
call add(his.commands, histget('cmd', i)) call insert(his.cmd, cmd)
endfor
for i in range(1, 100)
let search = histget('search', 0 - i)
if empty(search)
break
endif
call insert(his.search, search)
endfor endfor
call writefile([s:JSON.json_encode(his)], s:history_cache_path) call writefile([s:JSON.json_encode(his)], s:history_cache_path)
endfunction endfunction