Update vital-over
This commit is contained in:
parent
3949408e59
commit
79351abae6
@ -2,7 +2,7 @@
|
|||||||
" FILE: autoload/EasyMotion/command_line.vim
|
" FILE: autoload/EasyMotion/command_line.vim
|
||||||
" AUTHOR: haya14busa
|
" AUTHOR: haya14busa
|
||||||
" Reference: https://github.com/osyo-manga/vim-over
|
" Reference: https://github.com/osyo-manga/vim-over
|
||||||
" Last Change: 21 Feb 2014.
|
" Last Change: 15 Mar 2014.
|
||||||
" License: MIT license {{{
|
" License: MIT license {{{
|
||||||
" Permission is hereby granted, free of charge, to any person obtaining
|
" Permission is hereby granted, free of charge, to any person obtaining
|
||||||
" a copy of this software and associated documentation files (the
|
" a copy of this software and associated documentation files (the
|
||||||
@ -38,14 +38,17 @@ let s:search = s:cmdline.make()
|
|||||||
let s:search.highlights.prompt = 'Question'
|
let s:search.highlights.prompt = 'Question'
|
||||||
|
|
||||||
" Add Module: {{{
|
" Add Module: {{{
|
||||||
call s:search.connect('Execute')
|
call s:search.connect('Exit')
|
||||||
call s:search.connect('Cancel')
|
call s:search.connect('Cancel')
|
||||||
call s:search.connect('Redraw')
|
call s:search.connect('Redraw')
|
||||||
|
call s:search.connect('DrawCommandline')
|
||||||
call s:search.connect('Delete')
|
call s:search.connect('Delete')
|
||||||
call s:search.connect('CursorMove')
|
call s:search.connect('CursorMove')
|
||||||
call s:search.connect('Paste')
|
call s:search.connect('Paste')
|
||||||
call s:search.connect('BufferComplete')
|
call s:search.connect('BufferComplete')
|
||||||
call s:search.connect('InsertRegister')
|
call s:search.connect('InsertRegister')
|
||||||
|
call s:search.connect('ExceptionExit')
|
||||||
|
call s:search.connect(s:modules.get('ExceptionMessage').make('EasyMotion: ', 'echom'))
|
||||||
call s:search.connect(s:modules.get('History').make('/'))
|
call s:search.connect(s:modules.get('History').make('/'))
|
||||||
call s:search.connect(s:modules.get('NoInsert').make_special_chars())
|
call s:search.connect(s:modules.get('NoInsert').make_special_chars())
|
||||||
call s:search.connect(s:modules.get('KeyMapping').make_emacs())
|
call s:search.connect(s:modules.get('KeyMapping').make_emacs())
|
||||||
@ -100,6 +103,11 @@ function! s:search.keymapping() "{{{
|
|||||||
\ "key" : "<Over>(em-openallfold)",
|
\ "key" : "<Over>(em-openallfold)",
|
||||||
\ "noremap" : 1,
|
\ "noremap" : 1,
|
||||||
\ },
|
\ },
|
||||||
|
\ "\<CR>" : {
|
||||||
|
\ "key" : "<Over>(exit)",
|
||||||
|
\ "noremap" : 1,
|
||||||
|
\ "lock" : 1,
|
||||||
|
\ },
|
||||||
\ }
|
\ }
|
||||||
endfunction "}}}
|
endfunction "}}}
|
||||||
|
|
||||||
@ -119,8 +127,8 @@ function! EasyMotion#command_line#cunmap(lhs)
|
|||||||
call s:search.cunmap(lhs)
|
call s:search.cunmap(lhs)
|
||||||
endfunction
|
endfunction
|
||||||
function! s:as_keymapping(key)
|
function! s:as_keymapping(key)
|
||||||
execute 'let result = "' . substitute(a:key, '\(<.\{-}>\)', '\\\1', 'g') . '"'
|
execute 'let result = "' . substitute(a:key, '\(<.\{-}>\)', '\\\1', 'g') . '"'
|
||||||
return result
|
return result
|
||||||
endfunction
|
endfunction
|
||||||
"}}}
|
"}}}
|
||||||
"}}}
|
"}}}
|
||||||
@ -136,6 +144,8 @@ function! s:search.on_enter(cmdline) "{{{
|
|||||||
endif
|
endif
|
||||||
call EasyMotion#highlight#add_highlight('\%#',
|
call EasyMotion#highlight#add_highlight('\%#',
|
||||||
\ g:EasyMotion_hl_inc_cursor)
|
\ g:EasyMotion_hl_inc_cursor)
|
||||||
|
call a:cmdline.set_suffix(printf("col:%d", a:cmdline.getpos()))
|
||||||
|
" redraw
|
||||||
endif
|
endif
|
||||||
endfunction "}}}
|
endfunction "}}}
|
||||||
function! s:search.on_leave(cmdline) "{{{
|
function! s:search.on_leave(cmdline) "{{{
|
||||||
@ -158,6 +168,9 @@ function! s:search.on_char(cmdline) "{{{
|
|||||||
if g:EasyMotion_off_screen_search
|
if g:EasyMotion_off_screen_search
|
||||||
call s:off_screen_search(re)
|
call s:off_screen_search(re)
|
||||||
endif
|
endif
|
||||||
|
call a:cmdline.set_suffix(printf("col:%d", a:cmdline.getpos()))
|
||||||
|
"redraw
|
||||||
|
" throw 'vital-over excetion'
|
||||||
elseif s:search.line.length() >= s:num_strokes
|
elseif s:search.line.length() >= s:num_strokes
|
||||||
call s:search.exit()
|
call s:search.exit()
|
||||||
endif
|
endif
|
||||||
@ -184,7 +197,7 @@ function! EasyMotion#command_line#GetInput(num_strokes, prev, direction) "{{{
|
|||||||
let input = s:search.get()
|
let input = s:search.get()
|
||||||
if input == '' && ! s:search.exit_code()
|
if input == '' && ! s:search.exit_code()
|
||||||
return a:prev
|
return a:prev
|
||||||
elseif s:search.exit_code() == 1 " cancelled
|
elseif s:search.exit_code() == 1 || s:search.exit_code() == -1
|
||||||
call s:Cancell()
|
call s:Cancell()
|
||||||
return ''
|
return ''
|
||||||
else
|
else
|
||||||
@ -243,6 +256,7 @@ function! s:off_screen_search(re) "{{{
|
|||||||
keepjumps call setpos('.', s:orig_pos)
|
keepjumps call setpos('.', s:orig_pos)
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
" redraw
|
||||||
endfunction "}}}
|
endfunction "}}}
|
||||||
function! s:adjust_screen() "{{{
|
function! s:adjust_screen() "{{{
|
||||||
if s:save_direction != 'b'
|
if s:save_direction != 'b'
|
||||||
|
@ -235,6 +235,12 @@ function! s:base.execute(...)
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
|
function! s:base.draw()
|
||||||
|
call self.callevent("on_draw_pre")
|
||||||
|
call self.callevent("on_draw")
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
function! s:base.exit(...)
|
function! s:base.exit(...)
|
||||||
let self.variables.exit = 1
|
let self.variables.exit = 1
|
||||||
let self.variables.exit_code = get(a:, 1, 0)
|
let self.variables.exit_code = get(a:, 1, 0)
|
||||||
@ -344,7 +350,8 @@ function! s:base._main(...)
|
|||||||
call self.callevent("on_enter")
|
call self.callevent("on_enter")
|
||||||
|
|
||||||
while !self._is_exit()
|
while !self._is_exit()
|
||||||
call s:_echo_cmdline(self)
|
try
|
||||||
|
call self.draw()
|
||||||
|
|
||||||
let self.variables.input_key = s:_getchar()
|
let self.variables.input_key = s:_getchar()
|
||||||
let self.variables.char = s:_unmap(self._get_keymapping(), self.variables.input_key)
|
let self.variables.char = s:_unmap(self._get_keymapping(), self.variables.input_key)
|
||||||
@ -355,10 +362,13 @@ function! s:base._main(...)
|
|||||||
call self.callevent("on_char_pre")
|
call self.callevent("on_char_pre")
|
||||||
call self.insert(self.variables.input)
|
call self.insert(self.variables.input)
|
||||||
call self.callevent("on_char")
|
call self.callevent("on_char")
|
||||||
|
catch
|
||||||
|
call self.callevent("on_exception")
|
||||||
|
endtry
|
||||||
endwhile
|
endwhile
|
||||||
catch
|
catch
|
||||||
echohl ErrorMsg | echom v:throwpoint . " " . v:exception | echohl None
|
echohl ErrorMsg | echom v:throwpoint . " " . v:exception | echohl None
|
||||||
return -1
|
let self.variables.exit_code = -1
|
||||||
finally
|
finally
|
||||||
call self._finish()
|
call self._finish()
|
||||||
call self.callevent("on_leave")
|
call self.callevent("on_leave")
|
||||||
@ -372,37 +382,6 @@ function! s:base._finish()
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
function! s:suffix(left, suffix)
|
|
||||||
let left_len = strdisplaywidth(a:left)
|
|
||||||
let len = &columns - left_len % &columns
|
|
||||||
let len = len + (&columns * (strdisplaywidth(a:suffix) > (len - 1))) - 1
|
|
||||||
return printf("%" . len . "S", a:suffix)
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
|
|
||||||
function! s:echon(expr)
|
|
||||||
echon strtrans(a:expr)
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:_echo_cmdline(cmdline)
|
|
||||||
call a:cmdline.redraw()
|
|
||||||
execute "echohl" a:cmdline.highlights.prompt
|
|
||||||
call s:echon(a:cmdline.get_prompt())
|
|
||||||
echohl NONE
|
|
||||||
call s:echon(a:cmdline.backward())
|
|
||||||
if empty(a:cmdline.line.pos_word())
|
|
||||||
execute "echohl" a:cmdline.highlights.cursor
|
|
||||||
call s:echon(' ')
|
|
||||||
else
|
|
||||||
execute "echohl" a:cmdline.highlights.cursor_on
|
|
||||||
call s:echon(a:cmdline.line.pos_word())
|
|
||||||
endif
|
|
||||||
echohl NONE
|
|
||||||
call s:echon(a:cmdline.forward())
|
|
||||||
" call s:echon(s:suffix(a:cmdline.get_prompt() . a:cmdline.getline() . repeat(" ", empty(a:cmdline.line.pos_word())), a:cmdline.get_suffix()))
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
|
|
||||||
function! s:base._is_exit()
|
function! s:base._is_exit()
|
||||||
return self.variables.exit
|
return self.variables.exit
|
||||||
endfunction
|
endfunction
|
||||||
@ -446,17 +425,6 @@ function! s:base._get_keymapping()
|
|||||||
return extend(extend(result, self.variables.keymapping), self.keymapping())
|
return extend(extend(result, self.variables.keymapping), self.keymapping())
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:_redraw()
|
|
||||||
" normal! :
|
|
||||||
redraw
|
|
||||||
" echo ""
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
|
|
||||||
function! s:base.redraw()
|
|
||||||
call s:_redraw()
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
|
|
||||||
function! s:_getchar()
|
function! s:_getchar()
|
||||||
let char = getchar()
|
let char = getchar()
|
||||||
|
@ -94,15 +94,12 @@ function! s:_finish()
|
|||||||
if exists("s:old_statusline")
|
if exists("s:old_statusline")
|
||||||
let &statusline = s:old_statusline
|
let &statusline = s:old_statusline
|
||||||
unlet s:old_statusline
|
unlet s:old_statusline
|
||||||
|
redrawstatus
|
||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
function! s:module.on_char_pre(cmdline)
|
function! s:module.on_char_pre(cmdline)
|
||||||
" echom "-----"
|
|
||||||
" echom a:cmdline.char()
|
|
||||||
" echom "Completion\<Tab>"
|
|
||||||
" echom "Completion\<Tab>" == a:cmdline.char()
|
|
||||||
if a:cmdline.is_input("<Over>(buffer-complete)")
|
if a:cmdline.is_input("<Over>(buffer-complete)")
|
||||||
if self.complete(a:cmdline) == -1
|
if self.complete(a:cmdline) == -1
|
||||||
call s:_finish()
|
call s:_finish()
|
||||||
@ -127,7 +124,7 @@ function! s:module.on_char_pre(cmdline)
|
|||||||
endif
|
endif
|
||||||
else
|
else
|
||||||
if a:cmdline.untap_keyinput("Completion")
|
if a:cmdline.untap_keyinput("Completion")
|
||||||
" call a:cmdline._on_char_pre()
|
call a:cmdline.callevent("on_char_pre")
|
||||||
endif
|
endif
|
||||||
call s:_finish()
|
call s:_finish()
|
||||||
return
|
return
|
||||||
@ -136,6 +133,7 @@ function! s:module.on_char_pre(cmdline)
|
|||||||
call a:cmdline.insert(s:complete_list[s:count], s:pos)
|
call a:cmdline.insert(s:complete_list[s:count], s:pos)
|
||||||
if len(s:complete_list) > 1
|
if len(s:complete_list) > 1
|
||||||
let &statusline = s:_as_statusline(s:complete_list, s:count)
|
let &statusline = s:_as_statusline(s:complete_list, s:count)
|
||||||
|
redrawstatus
|
||||||
endif
|
endif
|
||||||
if len(s:complete_list) == 1
|
if len(s:complete_list) == 1
|
||||||
call a:cmdline.untap_keyinput("Completion")
|
call a:cmdline.untap_keyinput("Completion")
|
||||||
@ -143,6 +141,11 @@ function! s:module.on_char_pre(cmdline)
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
|
function! s:module.on_draw_pre(...)
|
||||||
|
" redrawstatus
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
function! s:module.on_leave(cmdline)
|
function! s:module.on_leave(cmdline)
|
||||||
call s:_finish()
|
call s:_finish()
|
||||||
unlet! s:complete
|
unlet! s:complete
|
||||||
|
@ -0,0 +1,140 @@
|
|||||||
|
scriptencoding utf-8
|
||||||
|
let s:save_cpo = &cpo
|
||||||
|
set cpo&vim
|
||||||
|
|
||||||
|
let s:module = {
|
||||||
|
\ "name" : "DrawCommandline"
|
||||||
|
\}
|
||||||
|
|
||||||
|
let s:cmdheight = {}
|
||||||
|
|
||||||
|
function! s:cmdheight.save()
|
||||||
|
if has_key(self, "value")
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
let self.value = &cmdheight
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! s:cmdheight.restore()
|
||||||
|
if has_key(self, "value")
|
||||||
|
let &cmdheight = self.value
|
||||||
|
unlet self.value
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
|
function! s:cmdheight.get()
|
||||||
|
return self.value
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
|
function! s:suffix(left, suffix)
|
||||||
|
let left_len = strdisplaywidth(a:left)
|
||||||
|
let len = &columns - left_len % &columns
|
||||||
|
let len = len + (&columns * (strdisplaywidth(a:suffix) > (len - 1))) - 1
|
||||||
|
return repeat(" ", len - strdisplaywidth(a:suffix)) . a:suffix
|
||||||
|
" return printf("%" . len . "S", a:suffix)
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
|
let s:old_width = 0
|
||||||
|
function! s:_redraw(cmdline)
|
||||||
|
let left = a:cmdline.get_prompt() . a:cmdline.getline() . (empty(a:cmdline.line.pos_word()) ? " " : "")
|
||||||
|
let width = len(left) + 1
|
||||||
|
|
||||||
|
if a:cmdline.get_suffix() != ""
|
||||||
|
let width += len(s:suffix(left, a:cmdline.get_suffix())) - 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
if &columns >= width && &columns <= s:old_width && s:old_width >= width
|
||||||
|
redraw
|
||||||
|
normal! :
|
||||||
|
elseif &columns <= width
|
||||||
|
normal! :
|
||||||
|
else
|
||||||
|
redraw
|
||||||
|
endif
|
||||||
|
let s:old_width = width
|
||||||
|
|
||||||
|
call s:cmdheight.save()
|
||||||
|
let height = max([(width - 1) / (&columns) + 1, s:cmdheight.get()])
|
||||||
|
if height > &cmdheight || &cmdheight > height
|
||||||
|
let &cmdheight = height
|
||||||
|
redraw
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
|
function! s:_as_echon(str)
|
||||||
|
return "echon " . string(a:str)
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
|
function! s:module.on_draw_pre(cmdline)
|
||||||
|
if empty(a:cmdline.line.pos_word())
|
||||||
|
let cursor = "echohl " . a:cmdline.highlights.cursor . " | echon ' '"
|
||||||
|
else
|
||||||
|
let cursor = "echohl " . a:cmdline.highlights.cursor_on . " | " . s:_as_echon(a:cmdline.line.pos_word())
|
||||||
|
endif
|
||||||
|
let suffix = ""
|
||||||
|
if a:cmdline.get_suffix() != ""
|
||||||
|
let suffix = s:_as_echon(s:suffix(a:cmdline.get_prompt() . a:cmdline.getline() . repeat(" ", empty(a:cmdline.line.pos_word())), a:cmdline.get_suffix()))
|
||||||
|
endif
|
||||||
|
let self.draw_command = join([
|
||||||
|
\ "echohl " . a:cmdline.highlights.prompt,
|
||||||
|
\ s:_as_echon(a:cmdline.get_prompt()),
|
||||||
|
\ "echohl NONE",
|
||||||
|
\ s:_as_echon(a:cmdline.backward()),
|
||||||
|
\ cursor,
|
||||||
|
\ "echohl NONE",
|
||||||
|
\ s:_as_echon(a:cmdline.forward()),
|
||||||
|
\ suffix,
|
||||||
|
\ ], " | ")
|
||||||
|
|
||||||
|
call s:_redraw(a:cmdline)
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
|
function! s:_echon(expr)
|
||||||
|
echon strtrans(a:expr)
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
|
function! s:module.on_draw(cmdline)
|
||||||
|
execute self.draw_command
|
||||||
|
" execute "echohl" a:cmdline.highlights.prompt
|
||||||
|
" call s:echon(a:cmdline.get_prompt())
|
||||||
|
" echohl NONE
|
||||||
|
" call s:echon(a:cmdline.backward())
|
||||||
|
" if empty(a:cmdline.line.pos_word())
|
||||||
|
" execute "echohl" a:cmdline.highlights.cursor
|
||||||
|
" call s:echon(' ')
|
||||||
|
" else
|
||||||
|
" execute "echohl" a:cmdline.highlights.cursor_on
|
||||||
|
" call s:echon(a:cmdline.line.pos_word())
|
||||||
|
" endif
|
||||||
|
" echohl NONE
|
||||||
|
" call s:echon(a:cmdline.forward())
|
||||||
|
" if a:cmdline.get_suffix() != ""
|
||||||
|
" call s:echon(s:suffix(a:cmdline.get_prompt() . a:cmdline.getline() . repeat(" ", empty(a:cmdline.line.pos_word())), a:cmdline.get_suffix()))
|
||||||
|
" endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
|
function! s:module.on_execute_pre(...)
|
||||||
|
call s:cmdheight.restore()
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
|
function! s:module.on_leave(...)
|
||||||
|
call s:cmdheight.restore()
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
|
function! s:make()
|
||||||
|
return deepcopy(s:module)
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
|
let &cpo = s:save_cpo
|
||||||
|
unlet s:save_cpo
|
@ -0,0 +1,22 @@
|
|||||||
|
scriptencoding utf-8
|
||||||
|
let s:save_cpo = &cpo
|
||||||
|
set cpo&vim
|
||||||
|
|
||||||
|
let s:module = {
|
||||||
|
\ "name" : "ExceptionExit",
|
||||||
|
\}
|
||||||
|
|
||||||
|
|
||||||
|
function! s:module.on_exception(cmdline)
|
||||||
|
call a:cmdline.exit(-1)
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
|
function! s:make(...)
|
||||||
|
let result = deepcopy(s:module)
|
||||||
|
let result.exit_code = get(a:, 1, 0)
|
||||||
|
return result
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
let &cpo = s:save_cpo
|
||||||
|
unlet s:save_cpo
|
@ -0,0 +1,45 @@
|
|||||||
|
scriptencoding utf-8
|
||||||
|
let s:save_cpo = &cpo
|
||||||
|
set cpo&vim
|
||||||
|
|
||||||
|
let s:module = {
|
||||||
|
\ "name" : "ExceptionMessage",
|
||||||
|
\}
|
||||||
|
|
||||||
|
|
||||||
|
function! s:module.on_exception(cmdline)
|
||||||
|
let self.exception = v:exception
|
||||||
|
let self.throwpoint = v:throwpoint
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
|
function! s:module.on_draw_pre(cmdline)
|
||||||
|
if has_key(self, "exception")
|
||||||
|
call self.message(a:cmdline)
|
||||||
|
unlet self.exception
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! s:module.message(...)
|
||||||
|
echohl ErrorMsg
|
||||||
|
execute self.command string(self.prefix . self.throwpoint . " " . self.exception)
|
||||||
|
echohl None
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
|
function! s:module.on_leave(cmdline)
|
||||||
|
if has_key(self, "exception")
|
||||||
|
call self.message(a:cmdline)
|
||||||
|
unlet self.exception
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! s:make(...)
|
||||||
|
let result = deepcopy(s:module)
|
||||||
|
let result.prefix = get(a:, 1, "vital-over:")
|
||||||
|
let result.command = get(a:, 2, "echo")
|
||||||
|
return result
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
let &cpo = s:save_cpo
|
||||||
|
unlet s:save_cpo
|
@ -1,76 +0,0 @@
|
|||||||
scriptencoding utf-8
|
|
||||||
let s:save_cpo = &cpo
|
|
||||||
set cpo&vim
|
|
||||||
|
|
||||||
|
|
||||||
function! s:silent_feedkeys(expr, name, ...)
|
|
||||||
let mode = get(a:, 1, "m")
|
|
||||||
let map = printf("<Plug>(%s)", a:name)
|
|
||||||
if mode == "n"
|
|
||||||
let command = "nnoremap"
|
|
||||||
else
|
|
||||||
let command = "nmap"
|
|
||||||
endif
|
|
||||||
execute command "<silent>" map printf("%s:nunmap %s<CR>", a:expr, map)
|
|
||||||
call feedkeys(printf("\<Plug>(%s)", a:name))
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
|
|
||||||
function! s:_is_input_enter(cmdline)
|
|
||||||
return a:cmdline.is_input("\<CR>")
|
|
||||||
\ || a:cmdline.is_input("\<NL>")
|
|
||||||
\ || a:cmdline.is_input("\<C-j>")
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
|
|
||||||
let s:module = {
|
|
||||||
\ "name" : "Execute"
|
|
||||||
\}
|
|
||||||
|
|
||||||
function! s:module.on_char_pre(cmdline)
|
|
||||||
if s:_is_input_enter(a:cmdline)
|
|
||||||
call self.execute(a:cmdline)
|
|
||||||
call a:cmdline.setchar("")
|
|
||||||
call a:cmdline.exit(0)
|
|
||||||
endif
|
|
||||||
if a:cmdline.is_input("<Over>(execute-no-exit)")
|
|
||||||
call self.execute(a:cmdline)
|
|
||||||
call a:cmdline.setchar("")
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:module.execute(cmdline)
|
|
||||||
return a:cmdline.execute()
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
|
|
||||||
function! s:make()
|
|
||||||
return deepcopy(s:module)
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
|
|
||||||
let s:search = deepcopy(s:module)
|
|
||||||
let s:search.prefix = "/"
|
|
||||||
|
|
||||||
|
|
||||||
function! s:search.execute(cmdline)
|
|
||||||
call s:silent_feedkeys(":call histdel('/', -1)\<CR>", "remove_hist", "n")
|
|
||||||
let cmd = printf("call s:silent_feedkeys(\"%s%s\<CR>\", 'search', 'n')", self.prefix, a:cmdline.getline())
|
|
||||||
execute cmd
|
|
||||||
" let cmd = printf("call search('%s')", a:cmdline.getline())
|
|
||||||
" call a:cmdline.execute(cmd)
|
|
||||||
" let @/ = a:cmdline.getline()
|
|
||||||
" call s:silent_feedkeys(":let &hlsearch = &hlsearch\<CR>", "hlsearch", "n")
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function! s:make_search(...)
|
|
||||||
let result = deepcopy(s:search)
|
|
||||||
let result.prefix = get(a:, 1, "/")
|
|
||||||
return result
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
|
|
||||||
let &cpo = s:save_cpo
|
|
||||||
unlet s:save_cpo
|
|
25
autoload/vital/_easymotion/Over/Commandline/Modules/Exit.vim
Normal file
25
autoload/vital/_easymotion/Over/Commandline/Modules/Exit.vim
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
scriptencoding utf-8
|
||||||
|
let s:save_cpo = &cpo
|
||||||
|
set cpo&vim
|
||||||
|
|
||||||
|
let s:module = {
|
||||||
|
\ "name" : "Exit",
|
||||||
|
\ "exit_code" : 0
|
||||||
|
\}
|
||||||
|
|
||||||
|
|
||||||
|
function! s:module.on_char_pre(cmdline)
|
||||||
|
if a:cmdline.is_input("<Over>(exit)")
|
||||||
|
call a:cmdline.setchar("")
|
||||||
|
call a:cmdline.exit(self.exit_code)
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
|
function! s:make()
|
||||||
|
return deepcopy(s:module)
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
|
let &cpo = s:save_cpo
|
||||||
|
unlet s:save_cpo
|
@ -24,13 +24,20 @@ function! s:module.on_execute_failed(...)
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:module.on_leave(cmdline)
|
function! s:module.on_leave(cmdline)
|
||||||
if self.is_execute == 0
|
if self.is_execute == 0 && a:cmdline.exit_code() != -1
|
||||||
call self.redraw(a:cmdline)
|
call self.redraw(a:cmdline)
|
||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
|
" function! s:module.on_draw_pre(cmdline)
|
||||||
|
" call self.redraw(a:cmdline)
|
||||||
|
" endfunction
|
||||||
|
|
||||||
|
|
||||||
function! s:module.redraw(cmdline)
|
function! s:module.redraw(cmdline)
|
||||||
call a:cmdline.redraw()
|
redraw
|
||||||
|
normal! :
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:make()
|
function! s:make()
|
||||||
|
@ -3,7 +3,6 @@ easymotion
|
|||||||
|
|
||||||
Over.Commandline.Base
|
Over.Commandline.Base
|
||||||
Over.Commandline.Modules.Cancel
|
Over.Commandline.Modules.Cancel
|
||||||
Over.Commandline.Modules.Execute
|
|
||||||
Over.Commandline.Modules.BufferComplete
|
Over.Commandline.Modules.BufferComplete
|
||||||
Over.Commandline.Modules.Paste
|
Over.Commandline.Modules.Paste
|
||||||
Over.Commandline.Modules.KeyMapping
|
Over.Commandline.Modules.KeyMapping
|
||||||
@ -14,3 +13,7 @@ Over.Commandline.Modules.Redraw
|
|||||||
Over.Commandline.Modules.InsertRegister
|
Over.Commandline.Modules.InsertRegister
|
||||||
Over.Commandline.Modules.History
|
Over.Commandline.Modules.History
|
||||||
Over.Commandline.Modules.NoInsert
|
Over.Commandline.Modules.NoInsert
|
||||||
|
Over.Commandline.Modules.Exit
|
||||||
|
Over.Commandline.Modules.DrawCommandline
|
||||||
|
Over.Commandline.Modules.ExceptionMessage
|
||||||
|
Over.Commandline.Modules.ExceptionExit
|
||||||
|
Loading…
Reference in New Issue
Block a user