mirror of
https://github.com/Raimondi/delimitMate.git
synced 2025-12-06 20:54:31 +08:00
Add insert_eol_marker
This commit is contained in:
@@ -7,6 +7,8 @@ let s:defaults.delimitMate_autoclose = 1
|
|||||||
let s:defaults.delimitMate_expand_space = 0
|
let s:defaults.delimitMate_expand_space = 0
|
||||||
let s:defaults.delimitMate_expand_cr = 0
|
let s:defaults.delimitMate_expand_cr = 0
|
||||||
let s:defaults.delimitMate_jump_expansion = 0
|
let s:defaults.delimitMate_jump_expansion = 0
|
||||||
|
let s:defaults.delimitMate_insert_eol_marker = 0
|
||||||
|
let s:defaults.delimitMate_eol_marker = ';'
|
||||||
let s:defaults.delimitMate_expand_inside_quotes = 0
|
let s:defaults.delimitMate_expand_inside_quotes = 0
|
||||||
let s:defaults.delimitMate_smart_pairs = 1
|
let s:defaults.delimitMate_smart_pairs = 1
|
||||||
let s:defaults.delimitMate_smart_pairs_extra = []
|
let s:defaults.delimitMate_smart_pairs_extra = []
|
||||||
@@ -318,8 +320,9 @@ function! s:keys4left(char, pair, info, opts) "{{{1
|
|||||||
echom 33
|
echom 33
|
||||||
return ''
|
return ''
|
||||||
endif
|
endif
|
||||||
|
let eol_marker = a:opts.insert_eol_marker == 1 && empty(a:info.cur.ahead) ? a:opts.eol_marker . "\<C-G>U\<Left>" : ''
|
||||||
echom 34
|
echom 34
|
||||||
return strcharpart(a:pair, 1, 1) . "\<C-G>U\<Left>"
|
return strcharpart(a:pair, 1, 1) . eol_marker . "\<C-G>U\<Left>"
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:keys4right(char, pair, info, opts) "{{{1
|
function! s:keys4right(char, pair, info, opts) "{{{1
|
||||||
@@ -398,7 +401,8 @@ function! s:keys4cr(info, opts) "{{{1
|
|||||||
echom 71
|
echom 71
|
||||||
let right = a:info.cur.line
|
let right = a:info.cur.line
|
||||||
let rm_spaces = empty(a:info.cur.behind) ? '' : "\<C-U>"
|
let rm_spaces = empty(a:info.cur.behind) ? '' : "\<C-U>"
|
||||||
return rm_spaces . "\<Del>x\<C-G>U\<Left>\<BS>\<CR>" . a:info.cur.n_char . "\<Del>\<Up>\<End>\<CR>"
|
let eol_marker = a:opts.insert_eol_marker == 2 && strchars(a:info.cur.ahead) == 1 ? a:opts.eol_marker : ''
|
||||||
|
return rm_spaces . "\<Del>x\<C-G>U\<Left>\<BS>\<CR>" . a:info.cur.n_char . "\<Del>" . eol_marker . "\<Up>\<End>\<CR>"
|
||||||
endif
|
endif
|
||||||
if a:opts.expand_cr && a:opts.expand_inside_quotes
|
if a:opts.expand_cr && a:opts.expand_inside_quotes
|
||||||
\&& !empty(filter(copy(a:opts.quotes), 'v:val.v:val ==# a:info.prev.around'))
|
\&& !empty(filter(copy(a:opts.quotes), 'v:val.v:val ==# a:info.prev.around'))
|
||||||
|
|||||||
@@ -11,33 +11,32 @@
|
|||||||
" - Add 5 to vimtap#Plan().
|
" - Add 5 to vimtap#Plan().
|
||||||
|
|
||||||
call vimtest#StartTap()
|
call vimtest#StartTap()
|
||||||
call vimtap#Plan(8)
|
call vimtap#Plan(9)
|
||||||
|
|
||||||
let g:delimitMate_expand_cr = 1
|
let g:delimitMate_expand_cr = 1
|
||||||
let g:delimitMate_eol_marker = ';'
|
let g:delimitMate_eol_marker = ';'
|
||||||
" NOTE: Do not forget to update the plan ^
|
" NOTE: Do not forget to update the plan ^
|
||||||
let g:delimitMate_insert_eol_marker = 0
|
let g:delimitMate_insert_eol_marker = 0
|
||||||
DelimitMateReload
|
|
||||||
|
|
||||||
call DMTest_single('', '(', '()')
|
call DMTest_single('', 'i(', '()')
|
||||||
|
|
||||||
call DMTest_single('', "(\<CR>x", ['(', 'x', ')'])
|
call DMTest_single('', "i(\<CR>x", ['(', 'x', ')'])
|
||||||
|
|
||||||
let g:delimitMate_insert_eol_marker = 1
|
let g:delimitMate_insert_eol_marker = 1
|
||||||
DelimitMateReload
|
call DMTest_single('', 'i(', '();')
|
||||||
call DMTest_single('', '(', '();')
|
|
||||||
|
|
||||||
call DMTest_single('', "(\<CR>x", ['(', 'x', ');'])
|
call DMTest_single(' a', 'i(', '() a')
|
||||||
|
|
||||||
|
call DMTest_single('', "i(\<CR>x", ['(', 'x', ');'])
|
||||||
|
|
||||||
let g:delimitMate_insert_eol_marker = 2
|
let g:delimitMate_insert_eol_marker = 2
|
||||||
DelimitMateReload
|
call DMTest_single('', 'i(', '()')
|
||||||
call DMTest_single('', '(', '()')
|
|
||||||
|
|
||||||
call DMTest_single('', "(\<CR>x", ['(', 'x', ');'])
|
call DMTest_single('', "i(\<CR>x", ['(', 'x', ');'])
|
||||||
|
|
||||||
call DMTest_single('', "{(\<CR>x", ['{(', 'x', ')};'])
|
call DMTest_single('', "i{(\<CR>x", ['{(', 'x', ')}'])
|
||||||
|
|
||||||
call DMTest_single('', ";\<Esc>I{(\<CR>x", ['{(', 'x', ')};'])
|
call DMTest_single('', "i;\<Left>{(\<CR>x", ['{(', 'x', ')};'])
|
||||||
|
|
||||||
" End: quit vim.
|
" End: quit vim.
|
||||||
call vimtest#Quit()
|
call vimtest#Quit()
|
||||||
|
|||||||
Reference in New Issue
Block a user