From 0f6581c6f3a63f6ccd34571bc76334cfad3b0b22 Mon Sep 17 00:00:00 2001 From: Israel Chauca Fuentes Date: Sat, 11 Feb 2017 19:13:09 -0500 Subject: [PATCH] Add insert_eol_marker --- autoload/delimitMate.vim | 8 ++++++-- test/eol_marker.vim | 23 +++++++++++------------ 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/autoload/delimitMate.vim b/autoload/delimitMate.vim index fcbb77b..68448fe 100644 --- a/autoload/delimitMate.vim +++ b/autoload/delimitMate.vim @@ -7,6 +7,8 @@ let s:defaults.delimitMate_autoclose = 1 let s:defaults.delimitMate_expand_space = 0 let s:defaults.delimitMate_expand_cr = 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_smart_pairs = 1 let s:defaults.delimitMate_smart_pairs_extra = [] @@ -318,8 +320,9 @@ function! s:keys4left(char, pair, info, opts) "{{{1 echom 33 return '' endif + let eol_marker = a:opts.insert_eol_marker == 1 && empty(a:info.cur.ahead) ? a:opts.eol_marker . "\U\" : '' echom 34 - return strcharpart(a:pair, 1, 1) . "\U\" + return strcharpart(a:pair, 1, 1) . eol_marker . "\U\" endfunction function! s:keys4right(char, pair, info, opts) "{{{1 @@ -398,7 +401,8 @@ function! s:keys4cr(info, opts) "{{{1 echom 71 let right = a:info.cur.line let rm_spaces = empty(a:info.cur.behind) ? '' : "\" - return rm_spaces . "\x\U\\\" . a:info.cur.n_char . "\\\\" + let eol_marker = a:opts.insert_eol_marker == 2 && strchars(a:info.cur.ahead) == 1 ? a:opts.eol_marker : '' + return rm_spaces . "\x\U\\\" . a:info.cur.n_char . "\" . eol_marker . "\\\" endif if a:opts.expand_cr && a:opts.expand_inside_quotes \&& !empty(filter(copy(a:opts.quotes), 'v:val.v:val ==# a:info.prev.around')) diff --git a/test/eol_marker.vim b/test/eol_marker.vim index 276e8ea..8be1049 100644 --- a/test/eol_marker.vim +++ b/test/eol_marker.vim @@ -11,33 +11,32 @@ " - Add 5 to vimtap#Plan(). call vimtest#StartTap() -call vimtap#Plan(8) +call vimtap#Plan(9) let g:delimitMate_expand_cr = 1 let g:delimitMate_eol_marker = ';' " NOTE: Do not forget to update the plan ^ let g:delimitMate_insert_eol_marker = 0 -DelimitMateReload -call DMTest_single('', '(', '()') +call DMTest_single('', 'i(', '()') -call DMTest_single('', "(\x", ['(', 'x', ')']) +call DMTest_single('', "i(\x", ['(', 'x', ')']) let g:delimitMate_insert_eol_marker = 1 -DelimitMateReload -call DMTest_single('', '(', '();') +call DMTest_single('', 'i(', '();') -call DMTest_single('', "(\x", ['(', 'x', ');']) +call DMTest_single(' a', 'i(', '() a') + +call DMTest_single('', "i(\x", ['(', 'x', ');']) let g:delimitMate_insert_eol_marker = 2 -DelimitMateReload -call DMTest_single('', '(', '()') +call DMTest_single('', 'i(', '()') -call DMTest_single('', "(\x", ['(', 'x', ');']) +call DMTest_single('', "i(\x", ['(', 'x', ');']) -call DMTest_single('', "{(\x", ['{(', 'x', ')};']) +call DMTest_single('', "i{(\x", ['{(', 'x', ')}']) -call DMTest_single('', ";\I{(\x", ['{(', 'x', ')};']) +call DMTest_single('', "i;\{(\x", ['{(', 'x', ')};']) " End: quit vim. call vimtest#Quit()