316 lines
9.4 KiB
VimL
316 lines
9.4 KiB
VimL
" vi: fdl=1
|
|
let g:pymode_version = "0.9.0"
|
|
|
|
com! PymodeVersion echomsg "Current python-mode version: " . g:pymode_version
|
|
com! PymodeTroubleshooting call pymode#troubleshooting#test()
|
|
|
|
" Enable pymode by default :)
|
|
call pymode#default('g:pymode', 1)
|
|
call pymode#default('g:pymode_debug', 0)
|
|
|
|
" DESC: Disable script loading
|
|
if !g:pymode || &cp
|
|
finish
|
|
endif
|
|
|
|
" Pymode needs
|
|
filetype plugin on
|
|
|
|
" OPTIONS: {{{
|
|
|
|
" Vim Python interpreter. Set to 'disable' for remove python features.
|
|
call pymode#default('g:pymode_python', '')
|
|
|
|
" Disable pymode warnings
|
|
call pymode#default('g:pymode_warning', 1)
|
|
|
|
" Additional python paths
|
|
call pymode#default('g:pymode_paths', [])
|
|
|
|
" Python documentation support
|
|
call pymode#default('g:pymode_doc', 1)
|
|
call pymode#default('g:pymode_doc_bind', 'K')
|
|
|
|
" Enable/Disable pymode PEP8 indentation
|
|
call pymode#default("g:pymode_indent", 1)
|
|
|
|
" Enable/disable pymode folding for pyfiles.
|
|
call pymode#default("g:pymode_folding", 1)
|
|
" Maximum file length to check for nested class/def statements
|
|
call pymode#default("g:pymode_folding_nest_limit", 1000)
|
|
" Change for folding customization (by example enable fold for 'if', 'for')
|
|
call pymode#default("g:pymode_folding_regex", '^\s*\%(class\|def\|async\s\+def\) .\+\(:\s\+\w\)\@!')
|
|
|
|
" Enable/disable python motion operators
|
|
call pymode#default("g:pymode_motion", 1)
|
|
|
|
" Auto remove unused whitespaces on save
|
|
call pymode#default("g:pymode_trim_whitespaces", 1)
|
|
|
|
" Set recomended python options
|
|
call pymode#default("g:pymode_options", 1)
|
|
call pymode#default("g:pymode_options_max_line_length", 80)
|
|
call pymode#default("g:pymode_options_colorcolumn", 1)
|
|
|
|
" Enable/disable vertical display of python documentation
|
|
call pymode#default("g:pymode_doc_vertical", 0)
|
|
|
|
" Minimal height of pymode quickfix window
|
|
call pymode#default('g:pymode_quickfix_maxheight', 6)
|
|
|
|
" Maximal height of pymode quickfix window
|
|
call pymode#default('g:pymode_quickfix_minheight', 3)
|
|
|
|
" LOAD VIRTUALENV {{{
|
|
"
|
|
" Enable virtualenv support
|
|
call pymode#default('g:pymode_virtualenv', 1)
|
|
|
|
" Get path to virtualenv (by default take from shell)
|
|
call pymode#default('g:pymode_virtualenv_path', $VIRTUAL_ENV)
|
|
|
|
" Service variable (don't set it manually)
|
|
call pymode#default('g:pymode_virtualenv_enabled', '')
|
|
|
|
" }}}
|
|
|
|
" RUN PYTHON {{{
|
|
"
|
|
" Enable code running support
|
|
call pymode#default('g:pymode_run', 1)
|
|
|
|
" Key's map for run python code
|
|
call pymode#default('g:pymode_run_bind', '<leader>r')
|
|
|
|
" }}}
|
|
|
|
" CHECK CODE {{{
|
|
"
|
|
" Code checking
|
|
call pymode#default('g:pymode_lint', 1)
|
|
|
|
" Check code asynchronously
|
|
call pymode#default('g:pymode_lint_async', 1)
|
|
call pymode#default('g:pymode_lint_async_updatetime', 1000)
|
|
|
|
" Check code every save if file has been modified
|
|
call pymode#default("g:pymode_lint_on_write", 1)
|
|
|
|
" Check code every save (every)
|
|
call pymode#default("g:pymode_lint_unmodified", 0)
|
|
|
|
" Check code on fly
|
|
call pymode#default("g:pymode_lint_on_fly", 0)
|
|
|
|
" Show message about error in command line
|
|
call pymode#default("g:pymode_lint_message", 1)
|
|
|
|
" Choices are: pylint, pyflakes, pep8, mccabe
|
|
call pymode#default("g:pymode_lint_checkers", ['pyflakes', 'pep8', 'mccabe'])
|
|
|
|
" Skip errors and warnings (e.g. E4,W)
|
|
call pymode#default("g:pymode_lint_ignore", "")
|
|
|
|
" Select errors and warnings (e.g. E4,W)
|
|
call pymode#default("g:pymode_lint_select", "")
|
|
|
|
" Auto open cwindow if any errors has been finded
|
|
call pymode#default("g:pymode_lint_cwindow", 1)
|
|
|
|
" If not emply, errors will be sort by defined relevance
|
|
" E.g. let g:pymode_lint_sort = ['E', 'C', 'I'] " Errors first 'E',
|
|
" after them 'C' and ...
|
|
call pymode#default("g:pymode_lint_sort", [])
|
|
|
|
" Place error signs
|
|
call pymode#default("g:pymode_lint_signs", 1)
|
|
|
|
" Symbol's definitions
|
|
call pymode#default("g:pymode_lint_todo_symbol", "WW")
|
|
call pymode#default("g:pymode_lint_docs_symbol", "DD")
|
|
call pymode#default("g:pymode_lint_comment_symbol", "CC")
|
|
call pymode#default("g:pymode_lint_visual_symbol", "RR")
|
|
call pymode#default("g:pymode_lint_error_symbol", "EE")
|
|
call pymode#default("g:pymode_lint_info_symbol", "II")
|
|
call pymode#default("g:pymode_lint_pyflakes_symbol", "FF")
|
|
|
|
" Code checkers options
|
|
call pymode#default("g:pymode_lint_options_pep8",
|
|
\ {'max_line_length': g:pymode_options_max_line_length})
|
|
|
|
call pymode#default("g:pymode_lint_options_pylint",
|
|
\ {'max-line-length': g:pymode_options_max_line_length})
|
|
|
|
call pymode#default("g:pymode_lint_options_mccabe",
|
|
\ {'complexity': 12})
|
|
|
|
call pymode#default("g:pymode_lint_options_pep257", {})
|
|
call pymode#default("g:pymode_lint_options_pyflakes", { 'builtins': '_' })
|
|
|
|
|
|
" }}}
|
|
|
|
" SET/UNSET BREAKPOINTS {{{
|
|
"
|
|
|
|
" Create/remove breakpoints
|
|
call pymode#default('g:pymode_breakpoint', 1)
|
|
|
|
" Key's map for add/remove breakpoint
|
|
call pymode#default('g:pymode_breakpoint_bind', '<leader>b')
|
|
|
|
" Default pattern for making breakpoints. Leave this empty for auto search available debuggers (pdb, ipdb, ...)
|
|
call pymode#default('g:pymode_breakpoint_cmd', '')
|
|
|
|
" }}}
|
|
|
|
" ROPE (refactoring, codeassist) {{{
|
|
"
|
|
" Rope support
|
|
call pymode#default('g:pymode_rope', 1)
|
|
|
|
" System plugin variable
|
|
call pymode#default('g:pymode_rope_current', '')
|
|
|
|
" Configurable rope project root
|
|
call pymode#default('g:pymode_rope_project_root', '')
|
|
|
|
" Configurable rope project folder (always relative to project root)
|
|
call pymode#default('g:pymode_rope_ropefolder', '.ropeproject')
|
|
|
|
" If project hasnt been finded in current working directory, look at parents directory
|
|
call pymode#default('g:pymode_rope_lookup_project', 0)
|
|
|
|
" Enable Rope completion
|
|
call pymode#default('g:pymode_rope_completion', 1)
|
|
|
|
" Complete keywords from not imported modules (could make completion slower)
|
|
" Enable autoimport used modules
|
|
call pymode#default('g:pymode_rope_autoimport', 0)
|
|
|
|
" Offer to import object after complete (if that not be imported before)
|
|
call pymode#default('g:pymode_rope_autoimport_import_after_complete', 0)
|
|
|
|
" Autoimported modules
|
|
call pymode#default('g:pymode_rope_autoimport_modules', ['os', 'shutil', 'datetime'])
|
|
|
|
" Bind keys to autoimport module for object under cursor
|
|
call pymode#default('g:pymode_rope_autoimport_bind', '<C-c>ra')
|
|
|
|
" Automatic completion on dot
|
|
call pymode#default('g:pymode_rope_complete_on_dot', 1)
|
|
|
|
" Bind keys for autocomplete (leave empty for disable)
|
|
call pymode#default('g:pymode_rope_completion_bind', '<C-Space>')
|
|
|
|
" Bind keys for goto definition (leave empty for disable)
|
|
call pymode#default('g:pymode_rope_goto_definition_bind', '<C-c>g')
|
|
|
|
" set command for open definition (e, new, vnew)
|
|
call pymode#default('g:pymode_rope_goto_definition_cmd', 'new')
|
|
|
|
" Bind keys for show documentation (leave empty for disable)
|
|
call pymode#default('g:pymode_rope_show_doc_bind', '<C-c>d')
|
|
|
|
" Bind keys for find occurencies (leave empty for disable)
|
|
call pymode#default('g:pymode_rope_find_it_bind', '<C-c>f')
|
|
|
|
" Bind keys for organize imports (leave empty for disable)
|
|
call pymode#default('g:pymode_rope_organize_imports_bind', '<C-c>ro')
|
|
|
|
" Bind keys for rename variable/method/class in the project (leave empty for disable)
|
|
call pymode#default('g:pymode_rope_rename_bind', '<C-c>rr')
|
|
|
|
" Bind keys for rename module
|
|
call pymode#default('g:pymode_rope_rename_module_bind', '<C-c>r1r')
|
|
|
|
" Bind keys for convert module to package
|
|
call pymode#default('g:pymode_rope_module_to_package_bind', '<C-c>r1p')
|
|
|
|
" Creates a new function or method (depending on the context) from the selected lines
|
|
call pymode#default('g:pymode_rope_extract_method_bind', '<C-c>rm')
|
|
|
|
" Creates a variable from the selected lines
|
|
call pymode#default('g:pymode_rope_extract_variable_bind', '<C-c>rl')
|
|
|
|
" Inline refactoring
|
|
call pymode#default('g:pymode_rope_inline_bind', '<C-c>ri')
|
|
|
|
" Move refactoring
|
|
call pymode#default('g:pymode_rope_move_bind', '<C-c>rv')
|
|
|
|
" Generate function
|
|
call pymode#default('g:pymode_rope_generate_function_bind', '<C-c>rnf')
|
|
|
|
" Generate class
|
|
call pymode#default('g:pymode_rope_generate_class_bind', '<C-c>rnc')
|
|
|
|
" Generate package
|
|
call pymode#default('g:pymode_rope_generate_package_bind', '<C-c>rnp')
|
|
|
|
" Change signature
|
|
call pymode#default('g:pymode_rope_change_signature_bind', '<C-c>rs')
|
|
|
|
" Tries to find the places in which a function can be used and changes the
|
|
" code to call it instead
|
|
call pymode#default('g:pymode_rope_use_function_bind', '<C-c>ru')
|
|
|
|
" Regenerate project cache on every save
|
|
call pymode#default('g:pymode_rope_regenerate_on_write', 1)
|
|
|
|
" }}}
|
|
|
|
" }}}
|
|
|
|
" Prepare to plugin loading
|
|
if &compatible
|
|
set nocompatible
|
|
endif
|
|
filetype plugin on
|
|
|
|
" Disable python-related functionality
|
|
" let g:pymode_python = 'disable'
|
|
" let g:pymode_python = 'python3'
|
|
|
|
" UltiSnips Fixes
|
|
if !len(g:pymode_python)
|
|
if exists('g:_uspy') && g:_uspy == ':py'
|
|
let g:pymode_python = 'python'
|
|
elseif exists('g:_uspy') && g:_uspy == ':py3'
|
|
let g:pymode_python = 'python3'
|
|
elseif has("python")
|
|
let g:pymode_python = 'python'
|
|
elseif has("python3")
|
|
let g:pymode_python = 'python3'
|
|
else
|
|
let g:pymode_python = 'disable'
|
|
endif
|
|
endif
|
|
|
|
if g:pymode_python == 'python'
|
|
|
|
command! -nargs=1 PymodePython python <args>
|
|
let g:UltiSnipsUsePythonVersion = 2
|
|
|
|
elseif g:pymode_python == 'python3'
|
|
|
|
command! -nargs=1 PymodePython python3 <args>
|
|
let g:UltiSnipsUsePythonVersion = 3
|
|
|
|
else
|
|
|
|
let g:pymode_doc = 0
|
|
let g:pymode_lint = 0
|
|
let g:pymode_path = 0
|
|
let g:pymode_rope = 0
|
|
let g:pymode_run = 0
|
|
let g:pymode_virtualenv = 0
|
|
|
|
command! -nargs=1 PymodePython echo <args>
|
|
|
|
endif
|
|
|
|
|
|
command! PymodeVersion echomsg "Pymode version: " . g:pymode_version . " interpreter: " . g:pymode_python . " lint: " . g:pymode_lint . " rope: " . g:pymode_rope
|
|
|
|
augroup pymode
|