Fix flushing of char buffer.

This commit is contained in:
Israel Chauca Fuentes
2012-02-09 21:28:53 -05:00
parent 9f003b5bf5
commit 9d133d5b69
2 changed files with 13 additions and 10 deletions

View File

@@ -187,6 +187,10 @@ function! delimitMate#FlushBuffer() " {{{
return '' return ''
endfunction " }}} endfunction " }}}
function! delimitMate#AddToBuffer(c) "{{{
call insert(b:_l_delimitMate_buffer, a:c)
endfunction "delimitMate#AddToBuffer }}}
function! delimitMate#BalancedParens(char) "{{{ function! delimitMate#BalancedParens(char) "{{{
" Returns: " Returns:
" = 0 => Parens balanced. " = 0 => Parens balanced.
@@ -256,7 +260,7 @@ function! delimitMate#SkipDelim(char) "{{{
return a:char . delimitMate#Del() return a:char . delimitMate#Del()
elseif delimitMate#IsEmptyPair( pre . a:char ) elseif delimitMate#IsEmptyPair( pre . a:char )
" Add closing delimiter and jump back to the middle. " Add closing delimiter and jump back to the middle.
call insert(b:_l_delimitMate_buffer, a:char) call delimitMate#AddToBuffer(a:char)
return delimitMate#WriteAfter(a:char) return delimitMate#WriteAfter(a:char)
else else
" Nothing special here, return the same character. " Nothing special here, return the same character.
@@ -284,11 +288,11 @@ function! delimitMate#ParenDelim(char) " {{{
return '' return ''
elseif (col) < 0 elseif (col) < 0
call setline('.',a:char.line) call setline('.',a:char.line)
call insert(b:_l_delimitMate_buffer, a:char) call delimitMate#AddToBuffer(a:char)
else else
"echom string(col).':'.line[:(col)].'|'.line[(col+1):] "echom string(col).':'.line[:(col)].'|'.line[(col+1):]
call setline('.',line[:(col)].a:char.line[(col+1):]) call setline('.',line[:(col)].a:char.line[(col+1):])
call insert(b:_l_delimitMate_buffer, a:char) call delimitMate#AddToBuffer(a:char)
endif endif
return '' return ''
endfunction " }}} endfunction " }}}
@@ -313,11 +317,11 @@ function! delimitMate#QuoteDelim(char) "{{{
return a:char return a:char
elseif (delimitMate#GetCharFromCursor(-1) == a:char && delimitMate#GetCharFromCursor(0) != a:char) && b:_l_delimitMate_smart_quotes elseif (delimitMate#GetCharFromCursor(-1) == a:char && delimitMate#GetCharFromCursor(0) != a:char) && b:_l_delimitMate_smart_quotes
" Seems like we have an unbalanced quote, insert one quotation mark and jump to the middle. " Seems like we have an unbalanced quote, insert one quotation mark and jump to the middle.
call insert(b:_l_delimitMate_buffer, a:char) call delimitMate#AddToBuffer(a:char)
return delimitMate#WriteAfter(a:char) return delimitMate#WriteAfter(a:char)
else else
" Insert a pair and jump to the middle. " Insert a pair and jump to the middle.
call insert(b:_l_delimitMate_buffer, a:char) call delimitMate#AddToBuffer(a:char)
call delimitMate#WriteAfter(a:char) call delimitMate#WriteAfter(a:char)
return a:char return a:char
endif endif
@@ -351,7 +355,7 @@ function! delimitMate#JumpAny(key) " {{{
elseif char == "" elseif char == ""
" CR expansion. " CR expansion.
"let char = "\<CR>" . getline(line('.') + 1)[0] . "\<Del>" "let char = "\<CR>" . getline(line('.') + 1)[0] . "\<Del>"
let b:_l_delimitMate_buffer = [] call delimitMate#FlushBuffer()
return "\<CR>" . getline(line('.') + 1)[0] . delimitMate#Del() . "\<Del>" return "\<CR>" . getline(line('.') + 1)[0] . delimitMate#Del() . "\<Del>"
else else
"call delimitMate#RmBuffer(1) "call delimitMate#RmBuffer(1)
@@ -404,7 +408,7 @@ function! delimitMate#ExpandSpace() "{{{
endif endif
if delimitMate#WithinEmptyPair() if delimitMate#WithinEmptyPair()
" Expand: " Expand:
call insert(b:_l_delimitMate_buffer, 's') call delimitMate#AddToBuffer('s')
return delimitMate#WriteAfter(' ') . "\<Space>" return delimitMate#WriteAfter(' ') . "\<Space>"
else else
return "\<Space>" return "\<Space>"
@@ -460,7 +464,6 @@ function! delimitMate#Finish(move_back) " {{{
let i += 1 let i += 1
endwhile endwhile
let result = substitute(buffer, "s", "\<Space>", 'g') . lefts let result = substitute(buffer, "s", "\<Space>", 'g') . lefts
echo 'buffer: '.result
return result return result
endif endif
return '' return ''

View File

@@ -260,14 +260,14 @@ function! s:DelimitMateSwitch() "{{{
endfunction "}}} endfunction "}}}
function! s:Finish() " {{{ function! s:Finish() " {{{
if exists('g:delimitMate_loaded') if exists('b:delimitMate_enabled')
return delimitMate#Finish(1) return delimitMate#Finish(1)
endif endif
return '' return ''
endfunction " }}} endfunction " }}}
function! s:FlushBuffer() " {{{ function! s:FlushBuffer() " {{{
if exists('g:delimitMate_loaded') if exists('b:delimitMate_enabled')
return delimitMate#FlushBuffer() return delimitMate#FlushBuffer()
endif endif
return '' return ''