Style fixes (via vint) (#662)

This also adds a augroup for `jedi#add_goto_window`.
This commit is contained in:
Daniel Hahler
2017-01-29 11:55:55 +01:00
committed by Dave Halter
parent f100ffad4d
commit eba90e615d
5 changed files with 110 additions and 87 deletions

View File

@@ -57,13 +57,13 @@ endfor
" ------------------------------------------------------------------------
let s:script_path = fnameescape(expand('<sfile>:p:h:h'))
function! s:init_python()
if g:jedi#force_py_version != 'auto'
function! s:init_python() abort
if g:jedi#force_py_version !=# 'auto'
" Always use the user supplied version.
try
return jedi#force_py_version(g:jedi#force_py_version)
catch
throw "Could not setup g:jedi#force_py_version: ".v:exception
throw 'Could not setup g:jedi#force_py_version: '.v:exception
endtry
endif
@@ -75,15 +75,15 @@ function! s:init_python()
" Get default python version from interpreter in $PATH.
let s:def_py = system('python -c '.shellescape('import sys; sys.stdout.write(str(sys.version_info[0]))'))
if v:shell_error != 0 || !len(s:def_py)
if !exists("g:jedi#squelch_py_warning")
if !exists('g:jedi#squelch_py_warning')
echohl WarningMsg
echom "Warning: jedi-vim failed to get Python version from sys.version_info: " . s:def_py
echom "Falling back to version 2."
echom 'Warning: jedi-vim failed to get Python version from sys.version_info: ' . s:def_py
echom 'Falling back to version 2.'
echohl None
endif
let s:def_py = 2
elseif &verbose
echom "jedi-vim: auto-detected Python: ".s:def_py
echom 'jedi-vim: auto-detected Python: '.s:def_py
endif
" Make sure that the auto-detected version is available in Vim.
@@ -95,11 +95,11 @@ function! s:init_python()
" usually because of a missing neovim module in a VIRTUAL_ENV.
if has('nvim')
echohl WarningMsg
echom "jedi-vim: the detected Python version (".s:def_py.")"
\ "is not functional."
\ "Is the 'neovim' module installed?"
\ "While jedi-vim will work, it might not use the"
\ "expected Python path."
echom 'jedi-vim: the detected Python version ('.s:def_py.')'
\ 'is not functional.'
\ 'Is the "neovim" module installed?'
\ 'While jedi-vim will work, it might not use the'
\ 'expected Python path.'
echohl None
endif
endif
@@ -109,28 +109,28 @@ function! s:init_python()
elseif has('python3')
call jedi#setup_py_version(3)
else
throw "jedi-vim requires Vim with support for Python 2 or 3."
throw 'jedi-vim requires Vim with support for Python 2 or 3.'
endif
return 1
endfunction
function! jedi#reinit_python()
function! jedi#reinit_python() abort
unlet! s:_init_python
call jedi#init_python()
endfunction
let s:_init_python = -1
function! jedi#init_python()
function! jedi#init_python() abort
if s:_init_python == -1
try
let s:_init_python = s:init_python()
catch
let s:_init_python = 0
if !exists("g:jedi#squelch_py_warning")
echoerr "Error: jedi-vim failed to initialize Python: "
\ .v:exception." (in ".v:throwpoint.")"
if !exists('g:jedi#squelch_py_warning')
echoerr 'Error: jedi-vim failed to initialize Python: '
\ .v:exception.' (in '.v:throwpoint.')'
endif
endtry
endif
@@ -139,7 +139,7 @@ endfunction
let s:python_version = 'null'
function! jedi#setup_py_version(py_version)
function! jedi#setup_py_version(py_version) abort
if a:py_version == 2
let cmd_init = 'pyfile'
let cmd_exec = 'python'
@@ -149,20 +149,20 @@ function! jedi#setup_py_version(py_version)
let cmd_exec = 'python3'
let s:python_version = 3
else
throw "jedi#setup_py_version: invalid py_version: ".a:py_version
throw 'jedi#setup_py_version: invalid py_version: '.a:py_version
endif
try
execute cmd_init.' '.s:script_path.'/initialize.py'
catch
throw "jedi#setup_py_version: ".v:exception
throw 'jedi#setup_py_version: '.v:exception
endtry
execute 'command! -nargs=1 PythonJedi '.cmd_exec.' <args>'
return 1
endfunction
function! jedi#debug_info()
function! jedi#debug_info() abort
if s:python_version ==# 'null'
call s:init_python()
endif
@@ -195,34 +195,36 @@ function! jedi#debug_info()
for [k, V] in items(filter(copy(g:), "v:key =~# '\\v^jedi#'"))
let k = substitute(k, '\v^jedi#', '', '')
exe 'let default = '.get(s:default_settings, k, "'-'")
" vint: -ProhibitUsingUndeclaredVariable
if default !=# V
echo printf('g:%s = %s (default: %s)', k, string(V), string(default))
unlet! V " Fix variable type mismatch with Vim 7.3.
endif
" vint: +ProhibitUsingUndeclaredVariable
endfor
echo '```'
endfunction
function! jedi#force_py_version(py_version)
function! jedi#force_py_version(py_version) abort
let g:jedi#force_py_version = a:py_version
return jedi#setup_py_version(a:py_version)
endfunction
function! jedi#force_py_version_switch()
function! jedi#force_py_version_switch() abort
if g:jedi#force_py_version == 2
call jedi#force_py_version(3)
elseif g:jedi#force_py_version == 3
call jedi#force_py_version(2)
else
throw "Don't know how to switch from ".g:jedi#force_py_version."!"
throw "Don't know how to switch from ".g:jedi#force_py_version.'!'
endif
endfunction
" Helper function instead of `python vim.eval()`, and `.command()` because
" these also return error definitions.
function! jedi#_vim_exceptions(str, is_eval)
function! jedi#_vim_exceptions(str, is_eval) abort
let l:result = {}
try
if a:is_eval
@@ -243,55 +245,55 @@ call jedi#init_python() " Might throw an error.
" ------------------------------------------------------------------------
" functions that call python code
" ------------------------------------------------------------------------
function! jedi#goto()
function! jedi#goto() abort
PythonJedi jedi_vim.goto(mode="goto")
endfunction
function! jedi#goto_assignments()
function! jedi#goto_assignments() abort
PythonJedi jedi_vim.goto(mode="assignment")
endfunction
function! jedi#goto_definitions()
function! jedi#goto_definitions() abort
PythonJedi jedi_vim.goto(mode="definition")
endfunction
function! jedi#usages()
function! jedi#usages() abort
PythonJedi jedi_vim.goto(mode="related_name")
endfunction
function! jedi#rename(...)
function! jedi#rename(...) abort
PythonJedi jedi_vim.rename()
endfunction
function! jedi#rename_visual(...)
function! jedi#rename_visual(...) abort
PythonJedi jedi_vim.rename_visual()
endfunction
function! jedi#completions(findstart, base)
function! jedi#completions(findstart, base) abort
PythonJedi jedi_vim.completions()
endfunction
function! jedi#enable_speed_debugging()
function! jedi#enable_speed_debugging() abort
PythonJedi jedi_vim.jedi.set_debug_function(jedi_vim.print_to_stdout, speed=True, warnings=False, notices=False)
endfunction
function! jedi#enable_debugging()
function! jedi#enable_debugging() abort
PythonJedi jedi_vim.jedi.set_debug_function(jedi_vim.print_to_stdout)
endfunction
function! jedi#disable_debugging()
function! jedi#disable_debugging() abort
PythonJedi jedi_vim.jedi.set_debug_function(None)
endfunction
function! jedi#py_import(args)
function! jedi#py_import(args) abort
PythonJedi jedi_vim.py_import()
endfun
function! jedi#py_import_completions(argl, cmdl, pos)
function! jedi#py_import_completions(argl, cmdl, pos) abort
PythonJedi jedi_vim.py_import_completions()
endfun
function! jedi#clear_cache(bang)
function! jedi#clear_cache(bang) abort
PythonJedi jedi_vim.jedi.cache.clear_time_caches(True)
if a:bang
PythonJedi jedi_vim.jedi.parser.utils.ParserPickling.clear_cache()
@@ -302,17 +304,17 @@ endfunction
" ------------------------------------------------------------------------
" show_documentation
" ------------------------------------------------------------------------
function! jedi#show_documentation()
function! jedi#show_documentation() abort
PythonJedi if jedi_vim.show_documentation() is None: vim.command('return')
let bn = bufnr("__doc__")
let bn = bufnr('__doc__')
if bn > 0
let wi=index(tabpagebuflist(tabpagenr()), bn)
if wi >= 0
" If the __doc__ buffer is open in the current tab, jump to it
silent execute (wi+1).'wincmd w'
else
silent execute "sbuffer ".bn
silent execute 'sbuffer '.bn
endif
else
split '__doc__'
@@ -331,11 +333,11 @@ function! jedi#show_documentation()
if l:doc_lines > g:jedi#max_doc_height " max lines for plugin
let l:doc_lines = g:jedi#max_doc_height
endif
execute "resize ".l:doc_lines
execute 'resize '.l:doc_lines
" quit comands
nnoremap <buffer> q ZQ
execute "nnoremap <buffer> ".g:jedi#documentation_command." ZQ"
execute 'nnoremap <buffer> '.g:jedi#documentation_command.' ZQ'
" highlight python code within rst
unlet! b:current_syntax
@@ -344,14 +346,14 @@ function! jedi#show_documentation()
syn region rstPythonRegion start=/^\v {4}/ end=/\v^( {4}|\n)@!/ contains=@rstPythonScript
" >>> python code -> (doctests)
syn region rstPythonRegion matchgroup=pythonDoctest start=/^>>>\s*/ end=/\n/ contains=@rstPythonScript
let b:current_syntax = "rst"
let b:current_syntax = 'rst'
endfunction
" ------------------------------------------------------------------------
" helper functions
" ------------------------------------------------------------------------
function! jedi#add_goto_window(len)
function! jedi#add_goto_window(len) abort
set lazyredraw
cclose
let height = min([a:len, g:jedi#quickfix_window_height])
@@ -360,37 +362,40 @@ function! jedi#add_goto_window(len)
if g:jedi#use_tabs_not_buffers == 1
noremap <buffer> <CR> :call jedi#goto_window_on_enter()<CR>
endif
au WinLeave <buffer> q " automatically leave, if an option is chosen
augroup jedi_goto_window
au!
au WinLeave <buffer> q " automatically leave, if an option is chosen
augroup END
redraw!
endfunction
function! jedi#goto_window_on_enter()
function! jedi#goto_window_on_enter() abort
let l:list = getqflist()
let l:data = l:list[line('.') - 1]
if l:data.bufnr
" close goto_window buffer
normal ZQ
normal! ZQ
PythonJedi jedi_vim.new_buffer(vim.eval('bufname(l:data.bufnr)'))
call cursor(l:data.lnum, l:data.col)
else
echohl WarningMsg | echo "Builtin module cannot be opened." | echohl None
echohl WarningMsg | echo 'Builtin module cannot be opened.' | echohl None
endif
endfunction
function! s:syn_stack()
if !exists("*synstack")
function! s:syn_stack() abort
if !exists('*synstack')
return []
endif
return map(synstack(line('.'), col('.') - 1), 'synIDattr(v:val, "name")')
return map(synstack(line('.'), col('.') - 1), "synIDattr(v:val, 'name')")
endfunc
function! jedi#do_popup_on_dot_in_highlight()
function! jedi#do_popup_on_dot_in_highlight() abort
let highlight_groups = s:syn_stack()
for a in highlight_groups
if a == 'pythonDoctest'
if a ==# 'pythonDoctest'
return 1
endif
endfor
@@ -407,7 +412,7 @@ endfunc
let s:show_call_signatures_last = [0, 0, '']
function! jedi#show_call_signatures()
function! jedi#show_call_signatures() abort
if s:_init_python == 0
return 1
endif
@@ -437,7 +442,7 @@ function! jedi#show_call_signatures()
endfunction
function! jedi#clear_call_signatures()
function! jedi#clear_call_signatures() abort
if s:_init_python == 0
return 1
endif
@@ -447,7 +452,7 @@ function! jedi#clear_call_signatures()
endfunction
function! jedi#configure_call_signatures()
function! jedi#configure_call_signatures() abort
augroup jedi_call_signatures
autocmd! * <buffer>
if g:jedi#show_call_signatures == 2 " Command line call signatures
@@ -472,7 +477,7 @@ endfunction
" Determine where the current window is on the screen for displaying call
" signatures in the correct column.
function! s:save_first_col()
function! s:save_first_col() abort
if bufname('%') ==# '[Command Line]' || winnr('$') == 1
return 0
endif
@@ -514,11 +519,9 @@ function! s:save_first_col()
endfunction
function! jedi#complete_string(is_popup_on_dot)
function! jedi#complete_string(is_popup_on_dot) abort
if a:is_popup_on_dot && !(g:jedi#popup_on_dot && jedi#do_popup_on_dot_in_highlight())
return ''
endif
if pumvisible() && !a:is_popup_on_dot
return "\<C-n>"
@@ -528,7 +531,7 @@ function! jedi#complete_string(is_popup_on_dot)
endfunction
function! jedi#complete_opened(is_popup_on_dot)
function! jedi#complete_opened(is_popup_on_dot) abort
if pumvisible()
" Only go down if it is visible, user-enabled and the longest
" option is set.
@@ -536,17 +539,17 @@ function! jedi#complete_opened(is_popup_on_dot)
return "\<Down>"
endif
if a:is_popup_on_dot
if &completeopt !~ '\(noinsert\|noselect\)'
if &completeopt !~# '\(noinsert\|noselect\)'
" Prevent completion of the first entry with dot completion.
return "\<C-p>"
endif
endif
endif
return ""
return
endfunction
function! jedi#smart_auto_mappings()
function! jedi#smart_auto_mappings() abort
" Auto put import statement after from module.name<space> and complete
if search('\m^\s*from\s\+[A-Za-z0-9._]\{1,50}\%#\s*$', 'bcn', line('.'))
" Enter character and start completion.