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.
This commit is contained in:
parent
240efe7415
commit
9271614008
@ -19,24 +19,6 @@ if v:version < '703'"{{{
|
|||||||
finish
|
finish
|
||||||
endif"}}}
|
endif"}}}
|
||||||
|
|
||||||
if has('python3')"{{{
|
|
||||||
let s:has_supported_python = 2
|
|
||||||
elseif has('python')
|
|
||||||
let s:has_supported_python = 1
|
|
||||||
else
|
|
||||||
let s:has_supported_python = 0
|
|
||||||
endif
|
|
||||||
|
|
||||||
if !s:has_supported_python
|
|
||||||
function! s:GundoDidNotLoad()
|
|
||||||
echohl WarningMsg|echomsg "Gundo requires Vim to be compiled with Python 2.4+"|echohl None
|
|
||||||
endfunction
|
|
||||||
command! -nargs=0 GundoToggle call s:GundoDidNotLoad()
|
|
||||||
finish
|
|
||||||
endif"}}}
|
|
||||||
|
|
||||||
let s:plugin_path = escape(expand('<sfile>:p:h'), '\')
|
|
||||||
|
|
||||||
if !exists('g:gundo_width')"{{{
|
if !exists('g:gundo_width')"{{{
|
||||||
let g:gundo_width = 45
|
let g:gundo_width = 45
|
||||||
endif"}}}
|
endif"}}}
|
||||||
@ -61,7 +43,27 @@ endif"}}}
|
|||||||
if !exists("g:gundo_close_on_revert")"{{{
|
if !exists("g:gundo_close_on_revert")"{{{
|
||||||
let g:gundo_close_on_revert = 0
|
let g:gundo_close_on_revert = 0
|
||||||
endif"}}}
|
endif"}}}
|
||||||
|
if !exists("g:gundo_prefer_python3")"{{{
|
||||||
|
let g:gundo_prefer_python3 = 0
|
||||||
|
endif"}}}
|
||||||
|
|
||||||
|
if has('python')"{{{
|
||||||
|
let s:has_supported_python = 1
|
||||||
|
elseif g:gundo_prefer_python3 && has('python3')
|
||||||
|
let s:has_supported_python = 2
|
||||||
|
else
|
||||||
|
let s:has_supported_python = 0
|
||||||
|
endif
|
||||||
|
|
||||||
|
if !s:has_supported_python
|
||||||
|
function! s:GundoDidNotLoad()
|
||||||
|
echohl WarningMsg|echomsg "Gundo requires Vim to be compiled with Python 2.4+"|echohl None
|
||||||
|
endfunction
|
||||||
|
command! -nargs=0 GundoToggle call s:GundoDidNotLoad()
|
||||||
|
finish
|
||||||
|
endif"}}}
|
||||||
|
|
||||||
|
let s:plugin_path = escape(expand('<sfile>:p:h'), '\')
|
||||||
"}}}
|
"}}}
|
||||||
|
|
||||||
"{{{ Gundo utility functions
|
"{{{ Gundo utility functions
|
||||||
@ -265,7 +267,7 @@ endfunction"}}}
|
|||||||
|
|
||||||
function! s:GundoOpen()"{{{
|
function! s:GundoOpen()"{{{
|
||||||
if !exists('g:gundo_py_loaded')
|
if !exists('g:gundo_py_loaded')
|
||||||
if s:has_supported_python == 2
|
if s:has_supported_python == 2 && g:gundo_prefer_python3
|
||||||
exe 'py3file ' . s:plugin_path . '/gundo.py'
|
exe 'py3file ' . s:plugin_path . '/gundo.py'
|
||||||
python3 initPythonModule()
|
python3 initPythonModule()
|
||||||
else
|
else
|
||||||
@ -370,7 +372,7 @@ endfunction"}}}
|
|||||||
"{{{ Gundo rendering
|
"{{{ Gundo rendering
|
||||||
|
|
||||||
function! s:GundoRenderGraph()"{{{
|
function! s:GundoRenderGraph()"{{{
|
||||||
if s:has_supported_python == 2
|
if s:has_supported_python == 2 && g:gundo_prefer_python3
|
||||||
python3 GundoRenderGraph()
|
python3 GundoRenderGraph()
|
||||||
else
|
else
|
||||||
python GundoRenderGraph()
|
python GundoRenderGraph()
|
||||||
@ -378,7 +380,7 @@ function! s:GundoRenderGraph()"{{{
|
|||||||
endfunction"}}}
|
endfunction"}}}
|
||||||
|
|
||||||
function! s:GundoRenderPreview()"{{{
|
function! s:GundoRenderPreview()"{{{
|
||||||
if s:has_supported_python == 2
|
if s:has_supported_python == 2 && g:gundo_prefer_python3
|
||||||
python3 GundoRenderPreview()
|
python3 GundoRenderPreview()
|
||||||
else
|
else
|
||||||
python GundoRenderPreview()
|
python GundoRenderPreview()
|
||||||
@ -386,7 +388,7 @@ function! s:GundoRenderPreview()"{{{
|
|||||||
endfunction"}}}
|
endfunction"}}}
|
||||||
|
|
||||||
function! s:GundoRenderChangePreview()"{{{
|
function! s:GundoRenderChangePreview()"{{{
|
||||||
if s:has_supported_python == 2
|
if s:has_supported_python == 2 && g:gundo_prefer_python3
|
||||||
python3 GundoRenderChangePreview()
|
python3 GundoRenderChangePreview()
|
||||||
else
|
else
|
||||||
python GundoRenderChangePreview()
|
python GundoRenderChangePreview()
|
||||||
@ -398,7 +400,7 @@ endfunction"}}}
|
|||||||
"{{{ Gundo undo/redo
|
"{{{ Gundo undo/redo
|
||||||
|
|
||||||
function! s:GundoRevert()"{{{
|
function! s:GundoRevert()"{{{
|
||||||
if s:has_supported_python == 2
|
if s:has_supported_python == 2 && g:gundo_prefer_python3
|
||||||
python3 GundoRevert()
|
python3 GundoRevert()
|
||||||
else
|
else
|
||||||
python GundoRevert()
|
python GundoRevert()
|
||||||
@ -406,7 +408,7 @@ function! s:GundoRevert()"{{{
|
|||||||
endfunction"}}}
|
endfunction"}}}
|
||||||
|
|
||||||
function! s:GundoPlayTo()"{{{
|
function! s:GundoPlayTo()"{{{
|
||||||
if s:has_supported_python == 2
|
if s:has_supported_python == 2 && g:gundo_prefer_python3
|
||||||
python3 GundoPlayTo()
|
python3 GundoPlayTo()
|
||||||
else
|
else
|
||||||
python GundoPlayTo()
|
python GundoPlayTo()
|
||||||
|
Loading…
Reference in New Issue
Block a user