Fix bug with python3 support crashing Gundo
The recent change that introduced python3 support also made it the default
python version used for Gundo. This caused a problem with certain versions of
vim where upon toggling the Gundo window, we would be greeted with an error
message: "This Vim cannot execute :py3 after using :python"
This commit adds a g:gundo_prefer_python3 variable (default 0) that can be used
to set a preference for python3. By default, python2 will be used.
This also required moving the variable initialization code to the top, since
just evaluating `has('python3')` seems to trigger the vim error.
author |
Strahinja Markovic <strahinja.markovic@gmail.com> |
date |
Mon, 29 Aug 2011 14:13:01 +0200 |
parents |
a3ab3da8805a |
children |
(none) |
UTSuite [Gundo] Testing Toggling
function! s:Setup()"{{{
exec 'edit test'
call g:Goto('test')
setlocal buftype=nofile
endfunction"}}}
function! s:Teardown()"{{{
if bufwinnr(bufnr('__Gundo__')) != -1
exec bufwinnr(bufnr('__Gundo__')) . 'wincmd w'
quit
endif
if bufwinnr(bufnr('__Gundo_Preview__')) != -1
exec bufwinnr(bufnr('__Gundo_Preview__')) . 'wincmd w'
quit
endif
if bufnr('__Gundo__') != -1
exec 'bwipeout ' . bufnr('__Gundo__')
endif
if bufnr('__Gundo_Preview__') != -1
exec 'bwipeout ' . bufnr('__Gundo_Preview__')
endif
if bufnr('test') != -1
exec 'bwipeout ' . bufnr('test')
endif
if bufnr('test2') != -1
exec 'bwipeout ' . bufnr('test2')
endif
endfunction"}}}
function! s:TestToggleBasic()"{{{
call g:TypeLine("ONE")
call g:TypeLineDone("TWO")
GundoToggle
Assert g:Contains("o [0]")
Assert g:Contains("o [1]")
Assert g:Contains("@ [2]")
Assert !g:Contains("[3]")
endfunction"}}}
function! s:TestToggleBranches()"{{{
call g:TypeLineDone("ONE")
silent! undo
call g:TypeLineDone("TWO")
GundoToggle
" Make sure there is a branch next to state 2
call g:GotoLineContaining("[1]")
Assert g:CurrentLineContains("|")
" Make sure there is no branch next to states 0 and 2
call g:GotoLineContaining("[0]")
Assert !g:CurrentLineContains("|")
call g:GotoLineContaining("[2]")
Assert !g:CurrentLineContains("|")
" Make sure the branch point is directly above state 0
call g:GotoLineContaining("[0]")
call g:MoveUp()
Assert g:CurrentLineContains("|/")
endfunction"}}}