Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions autoload/vital/_easymotion/HitAHint/Motion.vim
Original file line number Diff line number Diff line change
Expand Up @@ -135,15 +135,15 @@ function! s:move_to_winpos(winpos) abort
let is_win_moved = !(winnr is# winnr())
if is_win_moved
if exists('#WinLeave')
doautocmd WinLeave *
doautocmd WinLeave
endif
call s:move_to_win(winnr)
else
normal! m`
endif
call cursor(pos)
if is_win_moved && exists('#WinEnter')
doautocmd WinEnter *
doautocmd WinEnter
endif
endfunction

Expand Down
59 changes: 40 additions & 19 deletions autoload/vital/_easymotion/Prelude.vim
Original file line number Diff line number Diff line change
Expand Up @@ -39,21 +39,37 @@ else
endif

" Wrapper functions for type().
let [
\ s:__TYPE_NUMBER,
\ s:__TYPE_STRING,
\ s:__TYPE_FUNCREF,
\ s:__TYPE_LIST,
\ s:__TYPE_DICT,
\ s:__TYPE_FLOAT] = [
\ type(3),
\ type(''),
\ type(function('tr')),
\ type([]),
\ type({}),
\ has('float') ? type(str2float('0')) : -1]
" __TYPE_FLOAT = -1 when -float
" This doesn't match to anything.
" NOTE: __TYPE_FLOAT = -1 when -float.
" this doesn't match to anything.
if has('patch-7.4.2071')
let [
\ s:__TYPE_NUMBER,
\ s:__TYPE_STRING,
\ s:__TYPE_FUNCREF,
\ s:__TYPE_LIST,
\ s:__TYPE_DICT,
\ s:__TYPE_FLOAT] = [
\ v:t_number,
\ v:t_string,
\ v:t_func,
\ v:t_list,
\ v:t_dict,
\ v:t_float]
else
let [
\ s:__TYPE_NUMBER,
\ s:__TYPE_STRING,
\ s:__TYPE_FUNCREF,
\ s:__TYPE_LIST,
\ s:__TYPE_DICT,
\ s:__TYPE_FLOAT] = [
\ type(3),
\ type(''),
\ type(function('tr')),
\ type([]),
\ type({}),
\ has('float') ? type(str2float('0')) : -1]
endif

" Number or Float
function! s:is_numeric(Value) abort
Expand All @@ -67,27 +83,32 @@ function! s:is_number(Value) abort
return type(a:Value) ==# s:__TYPE_NUMBER
endfunction

" Float
function! s:is_float(Value) abort
return type(a:Value) ==# s:__TYPE_FLOAT
endfunction
" String
function! s:is_string(Value) abort
return type(a:Value) ==# s:__TYPE_STRING
endfunction

" Funcref
function! s:is_funcref(Value) abort
return type(a:Value) ==# s:__TYPE_FUNCREF
endfunction

" List
function! s:is_list(Value) abort
return type(a:Value) ==# s:__TYPE_LIST
endfunction

" Dictionary
function! s:is_dict(Value) abort
return type(a:Value) ==# s:__TYPE_DICT
endfunction

" Float
function! s:is_float(Value) abort
return type(a:Value) ==# s:__TYPE_FLOAT
endfunction


function! s:truncate_skipping(str, max, footer_width, separator) abort
call s:_warn_deprecated('truncate_skipping', 'Data.String.truncate_skipping')

Expand Down
32 changes: 29 additions & 3 deletions autoload/vital/_easymotion/Vim/Buffer.vim
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@
" Do not mofidify the code nor insert new lines before '" ___vital___'
if v:version > 703 || v:version == 703 && has('patch1170')
function! vital#_easymotion#Vim#Buffer#import() abort
return map({'_vital_depends': '', 'read_content': '', 'get_selected_text': '', 'is_cmdwin': '', 'edit_content': '', 'open': '', 'get_last_selected': '', '_vital_loaded': ''}, 'function("s:" . v:key)')
return map({'parse_cmdarg': '', '_vital_depends': '', 'read_content': '', 'get_selected_text': '', 'is_cmdwin': '', 'edit_content': '', 'open': '', 'get_last_selected': '', '_vital_loaded': ''}, 'function("s:" . v:key)')
endfunction
else
function! s:_SID() abort
return matchstr(expand('<sfile>'), '<SNR>\zs\d\+\ze__SID$')
endfunction
execute join(['function! vital#_easymotion#Vim#Buffer#import() abort', printf("return map({'_vital_depends': '', 'read_content': '', 'get_selected_text': '', 'is_cmdwin': '', 'edit_content': '', 'open': '', 'get_last_selected': '', '_vital_loaded': ''}, \"function('<SNR>%s_' . v:key)\")", s:_SID()), 'endfunction'], "\n")
execute join(['function! vital#_easymotion#Vim#Buffer#import() abort', printf("return map({'parse_cmdarg': '', '_vital_depends': '', 'read_content': '', 'get_selected_text': '', 'is_cmdwin': '', 'edit_content': '', 'open': '', 'get_last_selected': '', '_vital_loaded': ''}, \"function('<SNR>%s_' . v:key)\")", s:_SID()), 'endfunction'], "\n")
delfunction s:_SID
endif
" ___vital___
Expand Down Expand Up @@ -114,6 +114,7 @@ function! s:read_content(content, ...) abort
\ 'nobinary': 0,
\ 'bad': '',
\ 'edit': 0,
\ 'line': '',
\}, get(a:000, 0, {}))
let tempfile = empty(options.tempfile) ? tempname() : options.tempfile
let optnames = [
Expand All @@ -127,7 +128,8 @@ function! s:read_content(content, ...) abort
let optname = join(filter(optnames, '!empty(v:val)'))
try
call writefile(a:content, tempfile)
execute printf('keepalt keepjumps read %s%s',
execute printf('keepalt keepjumps %sread %s%s',
\ options.line,
\ empty(optname) ? '' : optname . ' ',
\ fnameescape(tempfile),
\)
Expand Down Expand Up @@ -155,6 +157,30 @@ function! s:edit_content(content, ...) abort
setlocal nomodified
endfunction

function! s:parse_cmdarg(...) abort
let cmdarg = get(a:000, 0, v:cmdarg)
let options = {}
if cmdarg =~# '++enc='
let options.encoding = matchstr(cmdarg, '++enc=\zs[^ ]\+\ze')
endif
if cmdarg =~# '++ff='
let options.fileformat = matchstr(cmdarg, '++ff=\zs[^ ]\+\ze')
endif
if cmdarg =~# '++bad='
let options.bad = matchstr(cmdarg, '++bad=\zs[^ ]\+\ze')
endif
if cmdarg =~# '++bin'
let options.binary = 1
endif
if cmdarg =~# '++nobin'
let options.nobinary = 1
endif
if cmdarg =~# '++edit'
let options.edit = 1
endif
return options
endfunction

let &cpo = s:save_cpo
unlet s:save_cpo

Expand Down
7 changes: 6 additions & 1 deletion autoload/vital/_easymotion/Vim/Guard.vim
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,12 @@ function! s:_new_register(name) abort
return register
endfunction
function! s:register.restore() abort
call setreg(self.name, self.value, self.type)
" https://github.com/vim/vim/commit/5a50c2255c447838d08d3b4895a3be3a41cd8eda
if has('patch-7.4.243') || self.name !=# '='
call setreg(self.name, self.value, self.type)
else
let @= = self.value
endif
endfunction

let s:environment = {}
Expand Down
2 changes: 1 addition & 1 deletion autoload/vital/easymotion.vital
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
easymotion
3404e200ca6b5f371811606e8399fefdf4595529
882de6964d10595e839ccbcc0fb20b7ff14e43cb

Over.Commandline.Base
Over.Commandline.Modules.Cancel
Expand Down