mirror of
https://github.com/SpaceVim/SpaceVim.git
synced 2025-02-02 22:40:06 +08:00
test(iedit): add test for iedit
This commit is contained in:
parent
9685aa13d4
commit
fcd0d28a67
4
Makefile
4
Makefile
@ -4,10 +4,10 @@ test: build/vader | build
|
|||||||
COVIMERAGE=$(shell command -v covimerage 2>/dev/null || echo build/covimerage/bin/covimerage)
|
COVIMERAGE=$(shell command -v covimerage 2>/dev/null || echo build/covimerage/bin/covimerage)
|
||||||
|
|
||||||
test_coverage: $(COVIMERAGE) build/vader | build
|
test_coverage: $(COVIMERAGE) build/vader | build
|
||||||
$(COVIMERAGE) run --source after --source autoload --source colors --source config --source ftplugin $(VIM_BIN) -Nu test/vimrc -c 'Vader! test/**'
|
$(COVIMERAGE) run --source after --source syntax --source autoload --source colors --source config --source ftplugin $(VIM_BIN) -Nu test/vimrc -c 'Vader! test/**'
|
||||||
|
|
||||||
$(COVIMERAGE):
|
$(COVIMERAGE):
|
||||||
$(COVIMERAGE) run --source after --source autoload --source colors --source config --source ftplugin $(VIM_BIN) -Nu test/vimrc -c 'Vader! test/**'
|
$(COVIMERAGE) run --source after --source syntax --source autoload --source colors --source config --source ftplugin $(VIM_BIN) -Nu test/vimrc -c 'Vader! test/**'
|
||||||
|
|
||||||
build/covimerage:
|
build/covimerage:
|
||||||
virtualenv $@
|
virtualenv $@
|
||||||
|
@ -71,7 +71,7 @@ function! s:self.open() abort
|
|||||||
let self._clear_cmdline = 1
|
let self._clear_cmdline = 1
|
||||||
endif
|
endif
|
||||||
redraw
|
redraw
|
||||||
let char = self._getchar()
|
let char = self.__vim.getchar()
|
||||||
if char ==# "\<FocusLost>" || char ==# "\<FocusGained>" || char2nr(char) == 128
|
if char ==# "\<FocusLost>" || char ==# "\<FocusGained>" || char2nr(char) == 128
|
||||||
continue
|
continue
|
||||||
endif
|
endif
|
||||||
@ -105,13 +105,6 @@ function! s:self.open() abort
|
|||||||
redraw
|
redraw
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function! s:self._getchar(...) abort
|
|
||||||
let ret = call('getchar', a:000)
|
|
||||||
return (type(ret) == type(0) ? nr2char(ret) : ret)
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:self.defind_keys(dict) abort
|
function! s:self.defind_keys(dict) abort
|
||||||
let self._keys = a:dict
|
let self._keys = a:dict
|
||||||
endfunction
|
endfunction
|
||||||
|
@ -114,8 +114,9 @@ endfunction
|
|||||||
" use SPC s h to highlight current symbol on default range.
|
" use SPC s h to highlight current symbol on default range.
|
||||||
|
|
||||||
" public API func: start Highlight mode {{{
|
" public API func: start Highlight mode {{{
|
||||||
function! SpaceVim#plugins#highlight#start(current) abort
|
function! SpaceVim#plugins#highlight#start(...) abort
|
||||||
let curpos = getcurpos()
|
" getcurpos is added in vim 7.4.313
|
||||||
|
let curpos = getpos('.')
|
||||||
let save_reg_k = @k
|
let save_reg_k = @k
|
||||||
normal! viw"ky
|
normal! viw"ky
|
||||||
let s:current_match = @k
|
let s:current_match = @k
|
||||||
|
@ -16,6 +16,7 @@ let s:Operator = ''
|
|||||||
let s:VIMH = SpaceVim#api#import('vim#highlight')
|
let s:VIMH = SpaceVim#api#import('vim#highlight')
|
||||||
let s:STRING = SpaceVim#api#import('data#string')
|
let s:STRING = SpaceVim#api#import('data#string')
|
||||||
let s:CMP = SpaceVim#api#import('vim#compatible')
|
let s:CMP = SpaceVim#api#import('vim#compatible')
|
||||||
|
let s:VIM = SpaceVim#api#import('vim')
|
||||||
|
|
||||||
let s:cursor_stack = []
|
let s:cursor_stack = []
|
||||||
|
|
||||||
@ -81,7 +82,7 @@ function! SpaceVim#plugins#iedit#start(...) abort
|
|||||||
let w:spacevim_iedit_mode = s:mode
|
let w:spacevim_iedit_mode = s:mode
|
||||||
let w:spacevim_statusline_mode = 'in'
|
let w:spacevim_statusline_mode = 'in'
|
||||||
if empty(s:stack)
|
if empty(s:stack)
|
||||||
let curpos = getcurpos()
|
let curpos = getpos('.')
|
||||||
let argv = get(a:000, 0, '')
|
let argv = get(a:000, 0, '')
|
||||||
let save_reg_k = @k
|
let save_reg_k = @k
|
||||||
" the register " is cleared
|
" the register " is cleared
|
||||||
@ -118,8 +119,8 @@ function! SpaceVim#plugins#iedit#start(...) abort
|
|||||||
redrawstatus!
|
redrawstatus!
|
||||||
while s:mode !=# ''
|
while s:mode !=# ''
|
||||||
redraw!
|
redraw!
|
||||||
let char = getchar()
|
let char = s:VIM.getchar()
|
||||||
if s:mode ==# 'n' && char == 27
|
if s:mode ==# 'n' && char ==# "\<Esc>"
|
||||||
let s:mode = ''
|
let s:mode = ''
|
||||||
else
|
else
|
||||||
let symbol = s:handle(s:mode, char)
|
let symbol = s:handle(s:mode, char)
|
||||||
@ -193,13 +194,13 @@ let s:toggle_stack = {}
|
|||||||
" here is a list of normal command which can be handled by idedit
|
" here is a list of normal command which can be handled by idedit
|
||||||
function! s:handle_normal(char) abort
|
function! s:handle_normal(char) abort
|
||||||
silent! call s:remove_cursor_highlight()
|
silent! call s:remove_cursor_highlight()
|
||||||
if a:char ==# 105
|
if a:char ==# 'i'
|
||||||
" i: switch to iedit insert mode
|
" i: switch to iedit insert mode
|
||||||
let s:mode = 'i'
|
let s:mode = 'i'
|
||||||
let w:spacevim_iedit_mode = s:mode
|
let w:spacevim_iedit_mode = s:mode
|
||||||
let w:spacevim_statusline_mode = 'ii'
|
let w:spacevim_statusline_mode = 'ii'
|
||||||
redrawstatus!
|
redrawstatus!
|
||||||
elseif a:char == 73
|
elseif a:char ==# 'I'
|
||||||
" I: move surcor to the begin, and switch to iedit insert mode
|
" I: move surcor to the begin, and switch to iedit insert mode
|
||||||
let s:mode = 'i'
|
let s:mode = 'i'
|
||||||
let w:spacevim_iedit_mode = s:mode
|
let w:spacevim_iedit_mode = s:mode
|
||||||
@ -219,7 +220,7 @@ function! s:handle_normal(char) abort
|
|||||||
let s:cursor_stack[i].begin = ''
|
let s:cursor_stack[i].begin = ''
|
||||||
endfor
|
endfor
|
||||||
redrawstatus!
|
redrawstatus!
|
||||||
elseif a:char == 9 " <tab>
|
elseif a:char ==# "\<Tab>"
|
||||||
if index(keys(s:toggle_stack), s:index . '') == -1
|
if index(keys(s:toggle_stack), s:index . '') == -1
|
||||||
call extend(s:toggle_stack, {s:index : [s:stack[s:index], s:cursor_stack[s:index]]})
|
call extend(s:toggle_stack, {s:index : [s:stack[s:index], s:cursor_stack[s:index]]})
|
||||||
call remove(s:stack, s:index)
|
call remove(s:stack, s:index)
|
||||||
@ -229,7 +230,7 @@ function! s:handle_normal(char) abort
|
|||||||
call insert(s:cursor_stack, s:toggle_stack[s:index][1] , s:index)
|
call insert(s:cursor_stack, s:toggle_stack[s:index][1] , s:index)
|
||||||
call remove(s:toggle_stack, s:index)
|
call remove(s:toggle_stack, s:index)
|
||||||
endif
|
endif
|
||||||
elseif a:char == 97
|
elseif a:char ==# 'a'
|
||||||
" a: goto iedit insert mode after cursor char
|
" a: goto iedit insert mode after cursor char
|
||||||
let s:mode = 'i'
|
let s:mode = 'i'
|
||||||
let w:spacevim_iedit_mode = s:mode
|
let w:spacevim_iedit_mode = s:mode
|
||||||
@ -243,7 +244,7 @@ function! s:handle_normal(char) abort
|
|||||||
\ '^.', '', 'g')
|
\ '^.', '', 'g')
|
||||||
endfor
|
endfor
|
||||||
redrawstatus!
|
redrawstatus!
|
||||||
elseif a:char == 65 " A
|
elseif a:char ==# 'A'
|
||||||
let s:mode = 'i'
|
let s:mode = 'i'
|
||||||
let w:spacevim_iedit_mode = s:mode
|
let w:spacevim_iedit_mode = s:mode
|
||||||
let w:spacevim_statusline_mode = 'ii'
|
let w:spacevim_statusline_mode = 'ii'
|
||||||
@ -253,7 +254,7 @@ function! s:handle_normal(char) abort
|
|||||||
let s:cursor_stack[i].end = ''
|
let s:cursor_stack[i].end = ''
|
||||||
endfor
|
endfor
|
||||||
redrawstatus!
|
redrawstatus!
|
||||||
elseif a:char == 67 " C
|
elseif a:char ==# 'C'
|
||||||
let s:mode = 'i'
|
let s:mode = 'i'
|
||||||
let w:spacevim_iedit_mode = s:mode
|
let w:spacevim_iedit_mode = s:mode
|
||||||
let w:spacevim_statusline_mode = 'ii'
|
let w:spacevim_statusline_mode = 'ii'
|
||||||
@ -262,15 +263,15 @@ function! s:handle_normal(char) abort
|
|||||||
let s:cursor_stack[i].end = ''
|
let s:cursor_stack[i].end = ''
|
||||||
endfor
|
endfor
|
||||||
call s:replace_symbol()
|
call s:replace_symbol()
|
||||||
elseif a:char == 126 " ~
|
elseif a:char ==# '~'
|
||||||
for i in range(len(s:cursor_stack))
|
for i in range(len(s:cursor_stack))
|
||||||
let s:cursor_stack[i].cursor = s:STRING.toggle_case(s:cursor_stack[i].cursor)
|
let s:cursor_stack[i].cursor = s:STRING.toggle_case(s:cursor_stack[i].cursor)
|
||||||
endfor
|
endfor
|
||||||
call s:replace_symbol()
|
call s:replace_symbol()
|
||||||
elseif a:char == 102 " f
|
elseif a:char ==# 'f'
|
||||||
let s:Operator = 'f'
|
let s:Operator = 'f'
|
||||||
call s:timeout()
|
call s:timeout()
|
||||||
elseif a:char == 115 " s
|
elseif a:char ==# 's'
|
||||||
let s:mode = 'i'
|
let s:mode = 'i'
|
||||||
let w:spacevim_iedit_mode = s:mode
|
let w:spacevim_iedit_mode = s:mode
|
||||||
let w:spacevim_statusline_mode = 'ii'
|
let w:spacevim_statusline_mode = 'ii'
|
||||||
@ -280,18 +281,18 @@ function! s:handle_normal(char) abort
|
|||||||
let s:cursor_stack[i].end = substitute(s:cursor_stack[i].end, '^.', '', 'g')
|
let s:cursor_stack[i].end = substitute(s:cursor_stack[i].end, '^.', '', 'g')
|
||||||
endfor
|
endfor
|
||||||
call s:replace_symbol()
|
call s:replace_symbol()
|
||||||
elseif a:char == 120 " x
|
elseif a:char ==# 'x'
|
||||||
for i in range(len(s:cursor_stack))
|
for i in range(len(s:cursor_stack))
|
||||||
let s:cursor_stack[i].cursor = matchstr(s:cursor_stack[i].end, '^.')
|
let s:cursor_stack[i].cursor = matchstr(s:cursor_stack[i].end, '^.')
|
||||||
let s:cursor_stack[i].end = substitute(s:cursor_stack[i].end, '^.', '', 'g')
|
let s:cursor_stack[i].end = substitute(s:cursor_stack[i].end, '^.', '', 'g')
|
||||||
endfor
|
endfor
|
||||||
call s:replace_symbol()
|
call s:replace_symbol()
|
||||||
elseif a:char == 88 " X
|
elseif a:char ==# 'X'
|
||||||
for i in range(len(s:cursor_stack))
|
for i in range(len(s:cursor_stack))
|
||||||
let s:cursor_stack[i].begin = substitute(s:cursor_stack[i].begin, '.$', '', 'g')
|
let s:cursor_stack[i].begin = substitute(s:cursor_stack[i].begin, '.$', '', 'g')
|
||||||
endfor
|
endfor
|
||||||
call s:replace_symbol()
|
call s:replace_symbol()
|
||||||
elseif a:char ==# "\<Left>" || a:char == 104
|
elseif a:char ==# "\<Left>" || a:char ==# 'h'
|
||||||
for i in range(len(s:cursor_stack))
|
for i in range(len(s:cursor_stack))
|
||||||
if !empty(s:cursor_stack[i].begin)
|
if !empty(s:cursor_stack[i].begin)
|
||||||
let s:cursor_stack[i].end = s:cursor_stack[i].cursor . s:cursor_stack[i].end
|
let s:cursor_stack[i].end = s:cursor_stack[i].cursor . s:cursor_stack[i].end
|
||||||
@ -299,41 +300,41 @@ function! s:handle_normal(char) abort
|
|||||||
let s:cursor_stack[i].begin = substitute(s:cursor_stack[i].begin, '.$', '', 'g')
|
let s:cursor_stack[i].begin = substitute(s:cursor_stack[i].begin, '.$', '', 'g')
|
||||||
endif
|
endif
|
||||||
endfor
|
endfor
|
||||||
elseif a:char ==# "\<Right>" || a:char == 108
|
elseif a:char ==# "\<Right>" || a:char ==# 'l'
|
||||||
for i in range(len(s:cursor_stack))
|
for i in range(len(s:cursor_stack))
|
||||||
let s:cursor_stack[i].begin = s:cursor_stack[i].begin . s:cursor_stack[i].cursor
|
let s:cursor_stack[i].begin = s:cursor_stack[i].begin . s:cursor_stack[i].cursor
|
||||||
let s:cursor_stack[i].cursor = matchstr(s:cursor_stack[i].end, '^.')
|
let s:cursor_stack[i].cursor = matchstr(s:cursor_stack[i].end, '^.')
|
||||||
let s:cursor_stack[i].end = substitute(s:cursor_stack[i].end, '^.', '', 'g')
|
let s:cursor_stack[i].end = substitute(s:cursor_stack[i].end, '^.', '', 'g')
|
||||||
endfor
|
endfor
|
||||||
elseif a:char == 48 || a:char ==# "\<Home>" " 0 or <Home>
|
elseif a:char ==# '0' || a:char ==# "\<Home>" " 0 or <Home>
|
||||||
for i in range(len(s:cursor_stack))
|
for i in range(len(s:cursor_stack))
|
||||||
let old_cursor_char = s:cursor_stack[i].cursor
|
let old_cursor_char = s:cursor_stack[i].cursor
|
||||||
let s:cursor_stack[i].cursor = matchstr(s:cursor_stack[i].begin . s:cursor_stack[i].cursor . s:cursor_stack[i].end, '^.')
|
let s:cursor_stack[i].cursor = matchstr(s:cursor_stack[i].begin . s:cursor_stack[i].cursor . s:cursor_stack[i].end, '^.')
|
||||||
let s:cursor_stack[i].end = substitute(s:cursor_stack[i].begin . old_cursor_char . s:cursor_stack[i].end , '^.', '', 'g')
|
let s:cursor_stack[i].end = substitute(s:cursor_stack[i].begin . old_cursor_char . s:cursor_stack[i].end , '^.', '', 'g')
|
||||||
let s:cursor_stack[i].begin = ''
|
let s:cursor_stack[i].begin = ''
|
||||||
endfor
|
endfor
|
||||||
elseif a:char == 36 || a:char ==# "\<End>" " $ or <End>
|
elseif a:char ==# '$' || a:char ==# "\<End>" " $ or <End>
|
||||||
for i in range(len(s:cursor_stack))
|
for i in range(len(s:cursor_stack))
|
||||||
let old_cursor_char = s:cursor_stack[i].cursor
|
let old_cursor_char = s:cursor_stack[i].cursor
|
||||||
let s:cursor_stack[i].cursor = matchstr(s:cursor_stack[i].begin . s:cursor_stack[i].cursor . s:cursor_stack[i].end, '.$')
|
let s:cursor_stack[i].cursor = matchstr(s:cursor_stack[i].begin . s:cursor_stack[i].cursor . s:cursor_stack[i].end, '.$')
|
||||||
let s:cursor_stack[i].begin = substitute(s:cursor_stack[i].begin . old_cursor_char . s:cursor_stack[i].end , '.$', '', 'g')
|
let s:cursor_stack[i].begin = substitute(s:cursor_stack[i].begin . old_cursor_char . s:cursor_stack[i].end , '.$', '', 'g')
|
||||||
let s:cursor_stack[i].end = ''
|
let s:cursor_stack[i].end = ''
|
||||||
endfor
|
endfor
|
||||||
elseif a:char == 68 " D
|
elseif a:char ==# 'D'
|
||||||
for i in range(len(s:cursor_stack))
|
for i in range(len(s:cursor_stack))
|
||||||
let s:cursor_stack[i].begin = ''
|
let s:cursor_stack[i].begin = ''
|
||||||
let s:cursor_stack[i].cursor = ''
|
let s:cursor_stack[i].cursor = ''
|
||||||
let s:cursor_stack[i].end = ''
|
let s:cursor_stack[i].end = ''
|
||||||
endfor
|
endfor
|
||||||
call s:replace_symbol()
|
call s:replace_symbol()
|
||||||
elseif a:char == 112 " p
|
elseif a:char ==# 'p'
|
||||||
for i in range(len(s:cursor_stack))
|
for i in range(len(s:cursor_stack))
|
||||||
let s:cursor_stack[i].begin = @"
|
let s:cursor_stack[i].begin = @"
|
||||||
let s:cursor_stack[i].cursor = ''
|
let s:cursor_stack[i].cursor = ''
|
||||||
let s:cursor_stack[i].end = ''
|
let s:cursor_stack[i].end = ''
|
||||||
endfor
|
endfor
|
||||||
call s:replace_symbol()
|
call s:replace_symbol()
|
||||||
elseif a:char == 83 " S
|
elseif a:char ==# 'S'
|
||||||
for i in range(len(s:cursor_stack))
|
for i in range(len(s:cursor_stack))
|
||||||
let s:cursor_stack[i].begin = ''
|
let s:cursor_stack[i].begin = ''
|
||||||
let s:cursor_stack[i].cursor = ''
|
let s:cursor_stack[i].cursor = ''
|
||||||
@ -344,10 +345,10 @@ function! s:handle_normal(char) abort
|
|||||||
let w:spacevim_statusline_mode = 'ii'
|
let w:spacevim_statusline_mode = 'ii'
|
||||||
redrawstatus!
|
redrawstatus!
|
||||||
call s:replace_symbol()
|
call s:replace_symbol()
|
||||||
elseif a:char == 71 " G
|
elseif a:char ==# 'G'
|
||||||
exe s:stack[-1][0]
|
exe s:stack[-1][0]
|
||||||
let s:index = len(s:stack) - 1
|
let s:index = len(s:stack) - 1
|
||||||
elseif a:char == 103 "g
|
elseif a:char ==# 'g'
|
||||||
if s:Operator ==# 'g'
|
if s:Operator ==# 'g'
|
||||||
exe s:stack[0][0]
|
exe s:stack[0][0]
|
||||||
let s:Operator = ''
|
let s:Operator = ''
|
||||||
@ -356,7 +357,7 @@ function! s:handle_normal(char) abort
|
|||||||
let s:Operator = 'g'
|
let s:Operator = 'g'
|
||||||
call s:timeout()
|
call s:timeout()
|
||||||
endif
|
endif
|
||||||
elseif a:char == 110 " n
|
elseif a:char ==# 'n'
|
||||||
if s:index == len(s:stack) - 1
|
if s:index == len(s:stack) - 1
|
||||||
let s:index = 0
|
let s:index = 0
|
||||||
else
|
else
|
||||||
@ -364,7 +365,7 @@ function! s:handle_normal(char) abort
|
|||||||
endif
|
endif
|
||||||
call cursor(s:stack[s:index][0],
|
call cursor(s:stack[s:index][0],
|
||||||
\ s:stack[s:index][1] + len(s:cursor_stack[s:index].begin))
|
\ s:stack[s:index][1] + len(s:cursor_stack[s:index].begin))
|
||||||
elseif a:char == 78 " N
|
elseif a:char ==# 'N'
|
||||||
if s:index == 0
|
if s:index == 0
|
||||||
let s:index = len(s:stack) - 1
|
let s:index = len(s:stack) - 1
|
||||||
else
|
else
|
||||||
@ -393,7 +394,7 @@ endfunction
|
|||||||
function! s:handle_insert(char) abort
|
function! s:handle_insert(char) abort
|
||||||
silent! call s:remove_cursor_highlight()
|
silent! call s:remove_cursor_highlight()
|
||||||
let is_movement = 0
|
let is_movement = 0
|
||||||
if a:char ==# 27 || a:char ==# 7
|
if a:char ==# "\<Esc>" || a:char ==# "\<C-g>"
|
||||||
" Ctrl-g / <Esc>: switch to iedit normal mode
|
" Ctrl-g / <Esc>: switch to iedit normal mode
|
||||||
let s:mode = 'n'
|
let s:mode = 'n'
|
||||||
let w:spacevim_iedit_mode = s:mode
|
let w:spacevim_iedit_mode = s:mode
|
||||||
@ -402,34 +403,34 @@ function! s:handle_insert(char) abort
|
|||||||
redraw!
|
redraw!
|
||||||
redrawstatus!
|
redrawstatus!
|
||||||
return s:cursor_stack[0].begin . s:cursor_stack[0].cursor . s:cursor_stack[0].end
|
return s:cursor_stack[0].begin . s:cursor_stack[0].cursor . s:cursor_stack[0].end
|
||||||
elseif a:char ==# 23
|
elseif a:char ==# "\<C-w>"
|
||||||
" ctrl-w: delete word before cursor
|
" ctrl-w: delete word before cursor
|
||||||
for i in range(len(s:cursor_stack))
|
for i in range(len(s:cursor_stack))
|
||||||
let s:cursor_stack[i].begin = substitute(s:cursor_stack[i].begin, '\S*\s*$', '', 'g')
|
let s:cursor_stack[i].begin = substitute(s:cursor_stack[i].begin, '\S*\s*$', '', 'g')
|
||||||
endfor
|
endfor
|
||||||
elseif a:char ==# 21
|
elseif a:char ==# "\<C-u>"
|
||||||
" ctrl-u: delete all words before cursor
|
" ctrl-u: delete all words before cursor
|
||||||
for i in range(len(s:cursor_stack))
|
for i in range(len(s:cursor_stack))
|
||||||
let s:cursor_stack[i].begin = ''
|
let s:cursor_stack[i].begin = ''
|
||||||
endfor
|
endfor
|
||||||
elseif a:char ==# 11
|
elseif a:char ==# "\<C-r>"
|
||||||
" Ctrl-k: delete all words after cursor
|
" Ctrl-k: delete all words after cursor
|
||||||
for i in range(len(s:cursor_stack))
|
for i in range(len(s:cursor_stack))
|
||||||
let s:cursor_stack[i].cursor = ''
|
let s:cursor_stack[i].cursor = ''
|
||||||
let s:cursor_stack[i].end = ''
|
let s:cursor_stack[i].end = ''
|
||||||
endfor
|
endfor
|
||||||
elseif a:char ==# "\<bs>" || a:char ==# 8
|
elseif a:char ==# "\<bs>" || a:char ==# "\<C-h>"
|
||||||
" BackSpace or Ctrl-h: delete char before cursor
|
" BackSpace or Ctrl-h: delete char before cursor
|
||||||
for i in range(len(s:cursor_stack))
|
for i in range(len(s:cursor_stack))
|
||||||
let s:cursor_stack[i].begin = substitute(s:cursor_stack[i].begin, '.$', '', 'g')
|
let s:cursor_stack[i].begin = substitute(s:cursor_stack[i].begin, '.$', '', 'g')
|
||||||
endfor
|
endfor
|
||||||
elseif a:char ==# "\<Delete>" || a:char ==# 127 " <Delete>
|
elseif a:char ==# "\<Delete>" || a:char ==# "\<C-?>" " <Delete>
|
||||||
" Delete: delete char after cursor
|
" Delete: delete char after cursor
|
||||||
for i in range(len(s:cursor_stack))
|
for i in range(len(s:cursor_stack))
|
||||||
let s:cursor_stack[i].cursor = matchstr(s:cursor_stack[i].end, '^.')
|
let s:cursor_stack[i].cursor = matchstr(s:cursor_stack[i].end, '^.')
|
||||||
let s:cursor_stack[i].end = substitute(s:cursor_stack[i].end, '^.', '', 'g')
|
let s:cursor_stack[i].end = substitute(s:cursor_stack[i].end, '^.', '', 'g')
|
||||||
endfor
|
endfor
|
||||||
elseif a:char ==# 2 || a:char ==# "\<Left>"
|
elseif a:char ==# "\<C-b>" || a:char ==# "\<Left>"
|
||||||
" ctrl-b / <Left>: moves the cursor back one character
|
" ctrl-b / <Left>: moves the cursor back one character
|
||||||
let is_movement = 1
|
let is_movement = 1
|
||||||
for i in range(len(s:cursor_stack))
|
for i in range(len(s:cursor_stack))
|
||||||
@ -439,7 +440,7 @@ function! s:handle_insert(char) abort
|
|||||||
let s:cursor_stack[i].begin = substitute(s:cursor_stack[i].begin, '.$', '', 'g')
|
let s:cursor_stack[i].begin = substitute(s:cursor_stack[i].begin, '.$', '', 'g')
|
||||||
endif
|
endif
|
||||||
endfor
|
endfor
|
||||||
elseif a:char ==# 6 || a:char ==# "\<Right>"
|
elseif a:char ==# "\<C-f>" || a:char ==# "\<Right>"
|
||||||
" ctrl-f / <Right>: moves the cursor forward one character
|
" ctrl-f / <Right>: moves the cursor forward one character
|
||||||
let is_movement = 1
|
let is_movement = 1
|
||||||
for i in range(len(s:cursor_stack))
|
for i in range(len(s:cursor_stack))
|
||||||
@ -449,10 +450,10 @@ function! s:handle_insert(char) abort
|
|||||||
let s:cursor_stack[i].end = substitute(s:cursor_stack[i].end,
|
let s:cursor_stack[i].end = substitute(s:cursor_stack[i].end,
|
||||||
\ '^.', '', 'g')
|
\ '^.', '', 'g')
|
||||||
endfor
|
endfor
|
||||||
elseif a:char == 18 " <C-r>
|
elseif a:char ==# "\<C-r>"
|
||||||
let s:Operator = 'r'
|
let s:Operator = 'r'
|
||||||
call s:timeout()
|
call s:timeout()
|
||||||
elseif a:char == 1 || a:char ==# "\<Home>"
|
elseif a:char ==# "\<C-a>" || a:char ==# "\<Home>"
|
||||||
" Ctrl-a or <Home>
|
" Ctrl-a or <Home>
|
||||||
let is_movement = 1
|
let is_movement = 1
|
||||||
for i in range(len(s:cursor_stack))
|
for i in range(len(s:cursor_stack))
|
||||||
@ -469,7 +470,7 @@ function! s:handle_insert(char) abort
|
|||||||
\ '^.', '', 'g')
|
\ '^.', '', 'g')
|
||||||
let s:cursor_stack[i].begin = ''
|
let s:cursor_stack[i].begin = ''
|
||||||
endfor
|
endfor
|
||||||
elseif a:char == 5 || a:char ==# "\<End>"
|
elseif a:char ==# "\<C-e>" || a:char ==# "\<End>"
|
||||||
" Ctrl-e or <End>
|
" Ctrl-e or <End>
|
||||||
let is_movement = 1
|
let is_movement = 1
|
||||||
for i in range(len(s:cursor_stack))
|
for i in range(len(s:cursor_stack))
|
||||||
@ -488,7 +489,7 @@ function! s:handle_insert(char) abort
|
|||||||
endfor
|
endfor
|
||||||
else
|
else
|
||||||
for i in range(len(s:cursor_stack))
|
for i in range(len(s:cursor_stack))
|
||||||
let s:cursor_stack[i].begin .= nr2char(a:char)
|
let s:cursor_stack[i].begin .= a:char
|
||||||
endfor
|
endfor
|
||||||
endif
|
endif
|
||||||
if !is_movement
|
if !is_movement
|
||||||
|
20
test/plugin/highlight.vader
Normal file
20
test/plugin/highlight.vader
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
###################
|
||||||
|
# Typical comment #
|
||||||
|
###################
|
||||||
|
Given (fixture):
|
||||||
|
================
|
||||||
|
Hello Hello
|
||||||
|
Hello
|
||||||
|
Hello
|
||||||
|
|
||||||
|
Execute ( SpaceVim plugin: iedit ):
|
||||||
|
let g:_spacevim_input_list = ['e', 'D', 'a', 'W', 'o', 'r', 'l', 'd', "\<Esc>", "\<Esc>"]
|
||||||
|
call SpaceVim#plugins#highlight#start()
|
||||||
|
|
||||||
|
|
||||||
|
Expect (result):
|
||||||
|
~~~~~~~~~~~~~~~~
|
||||||
|
World World
|
||||||
|
World
|
||||||
|
World
|
||||||
|
|
19
test/plugin/iedit.vader
Normal file
19
test/plugin/iedit.vader
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
###################
|
||||||
|
# Typical comment #
|
||||||
|
###################
|
||||||
|
Given (fixture):
|
||||||
|
================
|
||||||
|
Hello Hello
|
||||||
|
Hello
|
||||||
|
Hello
|
||||||
|
|
||||||
|
Execute ( SpaceVim plugin: iedit ):
|
||||||
|
let g:_spacevim_input_list = ['D', 'a', 'W', 'o', 'r', 'l', 'd', "\<Esc>", "\<Esc>"]
|
||||||
|
call SpaceVim#plugins#iedit#start()
|
||||||
|
|
||||||
|
|
||||||
|
Expect (result):
|
||||||
|
~~~~~~~~~~~~~~~~
|
||||||
|
World World
|
||||||
|
World
|
||||||
|
World
|
4
test/plugin/runner.vader
Normal file
4
test/plugin/runner.vader
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
Execute ( SpaceVim plugin: code runner ):
|
||||||
|
call SpaceVim#plugins#runner#open('echo 1')
|
||||||
|
tabclose
|
||||||
|
|
4
test/plugin/tasks.vader
Normal file
4
test/plugin/tasks.vader
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
Execute ( SpaceVim plugin: code runner ):
|
||||||
|
call SpaceVim#plugins#tasks#list()
|
||||||
|
exe "normal jjjj\<Cr>"
|
||||||
|
|
Loading…
Reference in New Issue
Block a user