if pymode#Default('g:pymode_init', 1)
finish
endif
call pymode#Default('g:pymode_test', 0)
let g:pymode_version = "0.6.18"
com! PymodeVersion echomsg "Current python-mode version: " . g:pymode_version
" OPTION: g:pymode -- bool. Run pymode.
if pymode#Default('g:pymode', 1) || !g:pymode
" DESC: Disable script loading
finish
endif
" DESC: Check python support
if !has('python') && !has('python3')
let g:pymode_virtualenv = 0
let g:pymode_path = 0
let g:pymode_lint = 0
let g:pymode_doc = 0
let g:pymode_breakpoint = 0
let g:pymode_rope = 0
let g:pymode_run = 0
endif
if has('python')
command! -nargs=1 Python python
elseif has('python3')
command! -nargs=1 Python python3
end
" Virtualenv {{{
if !pymode#Default("g:pymode_virtualenv", 1) || g:pymode_virtualenv
call pymode#Default("g:pymode_virtualenv_enabled", [])
" Add virtualenv paths
call pymode#virtualenv#Activate()
endif
" }}}
" DESC: Add pymode's pylibs to sys.path {{{
if !pymode#Default('g:pymode_path', 1) || g:pymode_path
call pymode#Default('g:pymode_paths', [])
call pymode#path#Activate(expand(":p:h:h:h"))
endif " }}}
" Lint {{{
if !pymode#Default("g:pymode_lint", 1) || g:pymode_lint
let g:qf_list = []
let g:pymode_lint_buffer = 0
" OPTION: g:pymode_lint_write -- bool. Check code every save.
call pymode#Default("g:pymode_lint_write", 1)
" OPTION: g:pymode_lint_async -- bool. Run a checkers asynchronously
call pymode#Default("g:pymode_lint_async", 1)
" OPTION: g:pymode_lint_onfly -- bool. Check code every save.
call pymode#Default("g:pymode_lint_onfly", 0)
" OPTION: g:pymode_lint_message -- bool. Show current line error message
call pymode#Default("g:pymode_lint_message", 1)
" OPTION: g:pymode_lint_checker -- str. Choices are: pylint, pyflakes, pep8, mccabe
call pymode#Default("g:pymode_lint_checker", "pyflakes,pep8,mccabe")
" OPTION: g:pymode_lint_config -- str. Path to pylint config file
call pymode#Default("g:pymode_lint_config", $HOME . "/.pylintrc")
" OPTION: g:pymode_lint_cwindow -- bool. Auto open cwindow if errors find
call pymode#Default("g:pymode_lint_cwindow", 1)
" OPTION: g:pymode_lint_jump -- int. Jump on first error.
call pymode#Default("g:pymode_lint_jump", 0)
" OPTION: g:pymode_lint_hold -- int. Hold cursor on current window when
" quickfix open
call pymode#Default("g:pymode_lint_hold", 0)
" OPTION: g:pymode_lint_minheight -- int. Minimal height of pymode lint window
call pymode#Default("g:pymode_lint_minheight", 3)
" OPTION: g:pymode_lint_maxheight -- int. Maximal height of pymode lint window
call pymode#Default("g:pymode_lint_maxheight", 6)
" OPTION: g:pymode_lint_ignore -- string. Skip errors and warnings (e.g. E4,W)
call pymode#Default("g:pymode_lint_ignore", "")
" OPTION: g:pymode_lint_select -- string. Select errors and warnings (e.g. E4,W)
call pymode#Default("g:pymode_lint_select", "")
" OPTION: g:pymode_lint_mccabe_complexity -- int. Maximum allowed complexity
call pymode#Default("g:pymode_lint_mccabe_complexity", 8)
" OPTION: g:pymode_lint_signs_always_visible -- bool. Always show the
" errors ruller, even if there's no errors.
call pymode#Default("g:pymode_lint_signs_always_visible", 0)
" OPTION: g:pymode_lint_signs -- bool. Place error signs
if (!pymode#Default("g:pymode_lint_signs", 1) || g:pymode_lint_signs) && has('signs')
" DESC: Signs definition
sign define PymodeW text=WW texthl=Todo
sign define PymodeC text=CC texthl=Comment
sign define PymodeR text=RR texthl=Visual
sign define PymodeE text=EE texthl=Error
sign define PymodeI text=II texthl=Info
sign define PymodeF text=FF texthl=Info
if !pymode#Default("g:pymode_lint_signs_always_visible", 0) || g:pymode_lint_signs_always_visible
" Show the sign's ruller if asked for, even it there's no error to show
sign define __dummy__
autocmd BufRead,BufNew * call RopeShowSignsRulerIfNeeded()
endif
endif
" DESC: Set default pylint configuration
if !filereadable(g:pymode_lint_config)
let g:pymode_lint_config = expand(":p:h:h:h") . "/pylint.ini"
endif
Python from pymode import queue
au VimLeavePre * Python queue.stop_queue()
endif
" }}}
" Documentation {{{
if !pymode#Default("g:pymode_doc", 1) || g:pymode_doc
" OPTION: g:pymode_doc_key -- string. Key for show python documantation.
call pymode#Default("g:pymode_doc_key", "K")
endif
" }}}
" Breakpoints {{{
if !pymode#Default("g:pymode_breakpoint", 1) || g:pymode_breakpoint
if !pymode#Default("g:pymode_breakpoint_cmd", "import pdb; pdb.set_trace() # XXX BREAKPOINT") && has("python")
call pymode#breakpoint#SearchDebuger()
endif
" OPTION: g:pymode_breakpoint_key -- string. Key for set/unset breakpoint.
call pymode#Default("g:pymode_breakpoint_key", "b")
endif
" }}}
" Execution {{{
if !pymode#Default("g:pymode_run", 1) || g:pymode_run
" OPTION: g:pymode_doc_key -- string. Key for show python documentation.
call pymode#Default("g:pymode_run_key", "r")
endif
" }}}
" Rope {{{
if !pymode#Default("g:pymode_rope", 1) || g:pymode_rope
" OPTION: g:pymode_rope_autocomplete_key -- str. Key for the rope
" autocompletion.
call pymode#Default("g:pymode_rope_autocomplete_map", "")
" OPTION: g:pymode_rope_auto_project -- bool. Auto create ropeproject
call pymode#Default("g:pymode_rope_auto_project", 1)
" OPTION: g:pymode_rope_auto_project_open -- bool.
" Auto open existing projects, ie, if the current directory has a
" `.ropeproject` subdirectory.
call pymode#Default("g:pymode_rope_auto_project_open", 1)
" OPTION: g:pymode_rope_enable_autoimport -- bool. Enable autoimport
call pymode#Default("g:pymode_rope_enable_autoimport", 1)
" OPTION: g:pymode_rope_autoimport_generate -- bool.
call pymode#Default("g:pymode_rope_autoimport_generate", 1)
" OPTION: g:pymode_rope_autoimport_underlines -- bool.
call pymode#Default("g:pymode_rope_autoimport_underlineds", 0)
" OPTION: g:pymode_rope_codeassist_maxfiles -- bool.
call pymode#Default("g:pymode_rope_codeassist_maxfixes", 10)
" OPTION: g:pymode_rope_sorted_completions -- bool.
call pymode#Default("g:pymode_rope_sorted_completions", 1)
" OPTION: g:pymode_rope_extended_complete -- bool.
call pymode#Default("g:pymode_rope_extended_complete", 1)
" OPTION: g:pymode_rope_autoimport_modules -- array.
call pymode#Default("g:pymode_rope_autoimport_modules", ["os","shutil","datetime"])
" OPTION: g:pymode_rope_confirm_saving -- bool.
call pymode#Default("g:pymode_rope_confirm_saving", 1)
" OPTION: g:pymode_rope_global_prefix -- string.
call pymode#Default("g:pymode_rope_global_prefix", "p")
" OPTION: g:pymode_rope_local_prefix -- string.
call pymode#Default("g:pymode_rope_local_prefix", "r")
" OPTION: g:pymode_rope_short_prefix -- string.
call pymode#Default("g:pymode_rope_short_prefix", "")
" OPTION: g:pymode_rope_vim_completion -- bool.
call pymode#Default("g:pymode_rope_vim_completion", 1)
" OPTION: g:pymode_rope_guess_project -- bool.
call pymode#Default("g:pymode_rope_guess_project", 1)
" OPTION: g:pymode_rope_goto_def_newwin -- str ('new', 'vnew', '').
call pymode#Default("g:pymode_rope_goto_def_newwin", "")
" OPTION: g:pymode_rope_always_show_complete_menu -- bool.
call pymode#Default("g:pymode_rope_always_show_complete_menu", 0)
" DESC: Init Rope
Python import ropevim
fun! RopeCodeAssistInsertMode() "{{{
call RopeCodeAssist()
return ""
endfunction "}}}
fun! RopeOpenExistingProject() "{{{
if isdirectory(getcwd() . '/.ropeproject')
" In order to pass it the quiet kwarg I need to open the project
" using python and not vim, which should be no major issue
Python ropevim._interface.open_project(quiet=True)
return ""
endif
endfunction "}}}
fun! RopeLuckyAssistInsertMode() "{{{
call RopeLuckyAssist()
return ""
endfunction "}}}
fun! RopeOmni(findstart, base) "{{{
if a:findstart
Python ropevim._interface._find_start()
return g:pymode_offset
else
call RopeOmniComplete()
return g:pythoncomplete_completions
endif
endfunction "}}}
fun! RopeShowSignsRulerIfNeeded() "{{{
if &ft == 'python'
execute printf('silent! sign place 1 line=1 name=__dummy__ file=%s', expand("%:p"))
endif
endfunction "}}}
" Rope menu
menu Rope.Autoimport :RopeAutoImport
menu Rope.ChangeSignature :RopeChangeSignature
menu Rope.CloseProject :RopeCloseProject
menu Rope.GenerateAutoImportCache :RopeGenerateAutoimportCache
menu Rope.ExtractVariable :RopeExtractVariable
menu Rope.ExtractMethod :RopeExtractMethod
menu Rope.Inline :RopeInline
menu Rope.IntroduceFactory :RopeIntroduceFactory
menu Rope.FindFile :RopeFindFile
menu Rope.OpenProject :RopeOpenProject
menu Rope.Move :RopeMove
menu Rope.MoveCurrentModule :RopeMoveCurrentModule
menu Rope.ModuleToPackage :RopeModuleToPackage
menu Rope.Redo :RopeRedo
menu Rope.Rename :RopeRename
menu Rope.RenameCurrentModule :RopeRenameCurrentModule
menu Rope.Restructure :RopeRestructure
menu Rope.Undo :RopeUndo
menu Rope.UseFunction :RopeUseFunction
if !pymode#Default("g:pymode_rope_auto_project_open", 1) || g:pymode_rope_auto_project_open
call RopeOpenExistingProject()
endif
endif
" }}}
" OPTION: g:pymode_folding -- bool. Enable python-mode folding for pyfiles.
call pymode#Default("g:pymode_folding", 1)
" OPTION: g:pymode_syntax -- bool. Enable python-mode syntax for pyfiles.
call pymode#Default("g:pymode_syntax", 1)
" OPTION: g:pymode_indent -- bool. Enable/Disable pymode PEP8 indentation
call pymode#Default("g:pymode_indent", 1)
" OPTION: g:pymode_utils_whitespaces -- bool. Remove unused whitespaces on save
call pymode#Default("g:pymode_utils_whitespaces", 1)
" OPTION: g:pymode_options -- bool. To set some python options.
call pymode#Default("g:pymode_options", 1)
" OPTION: g:pymode_updatetime -- int. Set updatetime for async pymode's operation
call pymode#Default("g:pymode_updatetime", 1000)
" vim: fdm=marker:fdl=0