tests/vim_test/plugin/gundo_test_utils.vim @ 9a42f3562a99

Neovim support: line buffers shouldn't contain newlines

The result of `difflib.unified_diff()` may contains newlines at the end of its
each line. It's suppressed in original Vim, but it's illegal in Neovim.

Since there is no good way to prevent `difflib` from appending newlines to the
results, `_output_preview_text()` function should sanitize it.

Thanks @michamos

Reference:
  https://github.com/neovim/neovim/blob/a5edc5f2572d6d63f7f7a32ae6ec7bcabe1472b6/src/nvim/api/buffer.c#L215
  https://github.com/sjl/gundo.vim/pull/30#issuecomment-170064637
author Hyeon Kim <simnalamburt@gmail.com>
date Mon, 15 Dec 2014 06:29:40 +0900
parents d018089ed71a
children (none)
let s:undolevels_save = &undolevels

function! g:Goto(buffername)"{{{
    exec bufwinnr(bufnr(a:buffername)) . 'wincmd w'
endfunction"}}}

function! g:GotoLineContaining(text)"{{{
    exe "silent! normal gg/\\M" . a:text . "\n"
endfunction"}}}

function! g:CurrentLineContains(text)"{{{
    if stridx(getline('.'), a:text) != -1
        return 1
    else
        return 0
    endif
endfunction"}}}

function! g:Contains(text)"{{{
    call g:GotoLineContaining(a:text)
    return g:CurrentLineContains(a:text)
endfunction"}}}

function! g:TypeLine(text)"{{{
    exe "normal i" . a:text . "\<C-g>u\n\e"
endfunction"}}}

function! g:TypeLineDone(text)"{{{
    exe "normal i" . a:text . "\n\e"

    " Break the undo chain
    let &undolevels = s:undolevels_save
endfunction"}}}

function! g:PrintTheFuckingBuffer()"{{{
    echo join(getline(1, 100000), "\n")
    echo "SOMETIMES I HATE YOU VIM"
endfunction"}}}

function! g:MoveUp()"{{{
    call cursor(line('.') - 1, 0)
endfunction"}}}

function! g:MoveDown()"{{{
    call cursor(line('.') + 1, 0)
endfunction"}}}