summaryrefslogtreecommitdiff
path: root/plugin/vdebug.vim
diff options
context:
space:
mode:
authorRyu, Han-seok <acoustic80@nate.com>2014-09-08 18:00:26 +0900
committerRyu, Han-seok <acoustic80@nate.com>2014-09-08 18:00:26 +0900
commitf0e40f921c461bbd474f842688f935daaad894a1 (patch)
treebb6071896a95a3b283b36a417bfe78c5cc219c46 /plugin/vdebug.vim
parent16c33e5ec2157541c99202da312514f16f5210cb (diff)
downloadvdebug-f0e40f921c461bbd474f842688f935daaad894a1.zip
first commit
Diffstat (limited to 'plugin/vdebug.vim')
-rw-r--r--plugin/vdebug.vim255
1 files changed, 0 insertions, 255 deletions
diff --git a/plugin/vdebug.vim b/plugin/vdebug.vim
deleted file mode 100644
index 97392b1..0000000
--- a/plugin/vdebug.vim
+++ /dev/null
@@ -1,255 +0,0 @@
-" Vdebug: Powerful, fast, multi-language debugger client for Vim.
-"
-" Script Info {{{
-"=============================================================================
-" Copyright: Copyright (C) 2012 Jon Cairns
-" Licence: The MIT Licence (see LICENCE file)
-" Name Of File: vdebug.vim
-" Description: Multi-language debugger client for Vim (PHP, Ruby, Python,
-" Perl, NodeJS)
-" Maintainer: Jon Cairns <jon at joncairns.com>
-" Version: 1.4.1
-" Inspired by the Xdebug plugin, which was originally written by
-" Seung Woo Shin <segv <at> sayclub.com> and extended by many
-" others.
-" Usage: Use :help Vdebug for information on how to configure and use
-" this script, or visit the Github page http://github.com/joonty/vdebug.
-"
-"=============================================================================
-" }}}
-
-" Do not source this script when python is not compiled in.
-if !has("python")
- finish
-endif
-
-silent doautocmd User VdebugPre
-
-" Load start_vdebug.py either from the runtime directory (usually
-" /usr/local/share/vim/vim71/plugin/ if you're running Vim 7.1) or from the
-" home vim directory (usually ~/.vim/plugin/).
-if filereadable($VIMRUNTIME."/plugin/python/start_vdebug.py")
- pyfile $VIMRUNTIME/plugin/start_vdebug.py
-elseif filereadable($HOME."/.vim/plugin/python/start_vdebug.py")
- pyfile $HOME/.vim/plugin/python/start_vdebug.py
-else
- " when we use pathogen for instance
- let $CUR_DIRECTORY=expand("<sfile>:p:h")
-
- if filereadable($CUR_DIRECTORY."/python/start_vdebug.py")
- pyfile $CUR_DIRECTORY/python/start_vdebug.py
- else
- call confirm('vdebug.vim: Unable to find start_vdebug.py. Place it in either your home vim directory or in the Vim runtime directory.', 'OK')
- endif
-endif
-
-" Nice characters get screwed up on windows
-if !exists('g:vimrc_vdebug_force_ascii')
- if has('win32') || has('win64')
- let g:vdebug_force_ascii = 1
- elseif has('multi_byte') == 0
- let g:vdebug_force_ascii = 1
- else
- let g:vdebug_force_ascii = 0
- end
-else
- if g:vimrc_vdebug_force_ascii == 1
- let g:vdebug_force_ascii = 1
- else
- let g:vdebug_force_ascii = 0
- endif
-endif
-
-if !exists("g:vdebug_options")
- let g:vdebug_options = {}
-endif
-
-if !exists("g:vdebug_keymap")
- let g:vdebug_keymap = {}
-endif
-
-if !exists("g:vdebug_features")
- let g:vdebug_features = {}
-endif
-
-if !exists("g:vdebug_leader_key")
- let g:vdebug_leader_key = ""
-endif
-
-let g:vdebug_keymap_defaults = {
-\ "run" : "<F5>",
-\ "run_to_cursor" : "<F9>",
-\ "step_over" : "<F2>",
-\ "step_into" : "<F3>",
-\ "step_out" : "<F4>",
-\ "close" : "<F6>",
-\ "detach" : "<F7>",
-\ "set_breakpoint" : "<F10>",
-\ "get_context" : "<F11>",
-\ "eval_under_cursor" : "<F12>",
-\ "eval_visual" : "<Leader>e"
-\}
-
-let g:vdebug_options_defaults = {
-\ "port" : 9000,
-\ "timeout" : 20,
-\ "server" : 'localhost',
-\ "on_close" : 'detach',
-\ "break_on_open" : 1,
-\ "ide_key" : '',
-\ "debug_window_level" : 0,
-\ "debug_file_level" : 0,
-\ "debug_file" : "",
-\ "path_maps" : {},
-\ "watch_window_style" : 'expanded',
-\ "marker_default" : '⬦',
-\ "marker_closed_tree" : '▸',
-\ "marker_open_tree" : '▾',
-\ "continuous_mode" : 0
-\}
-
-" Different symbols for non unicode Vims
-if g:vdebug_force_ascii == 1
- let g:vdebug_options_defaults["marker_default"] = '*'
- let g:vdebug_options_defaults["marker_closed_tree"] = '+'
- let g:vdebug_options_defaults["marker_open_tree"] = '-'
-else
- let g:vdebug_options_defaults["marker_default"] = '♪ '
- let g:vdebug_options_defaults["marker_closed_tree"] = '▶ '
- let g:vdebug_options_defaults["marker_open_tree"] = '▽ '
-endif
-
-" Create the top dog
-if exists("g:vdebug_pydbgp_default")
- let g:pydbgp_configured = 1
-else
- let g:pydbgp_configured = 0
-endif
-python << EOF
-import vim
-configured = vim.eval("g:pydbgp_configured")
-if configured is '1':
- pydbgp = vim.eval("g:vdebug_pydbgp_default")
-else:
- pydbgp = None
-
-debugger = DebuggerInterface(pydbgp)
-EOF
-
-" Commands
-command! -nargs=? -complete=customlist,s:BreakpointTypes Breakpoint python debugger.set_breakpoint(<q-args>)
-command! VdebugStart python debugger.run()
-command! -nargs=? BreakpointRemove python debugger.remove_breakpoint(<q-args>)
-command! BreakpointWindow python debugger.toggle_breakpoint_window()
-command! -nargs=? VdebugEval python debugger.handle_eval(<q-args>)
-command! -nargs=? VdebugTrace python debugger.handle_trace(<q-args>)
-command! -nargs=+ -complete=customlist,s:OptionNames VdebugOpt python debugger.handle_opt(<f-args>)
-
-" Signs and highlighted lines for breakpoints, etc.
-sign define current text=-> texthl=DbgCurrentSign linehl=DbgCurrentLine
-sign define breakpt text=B> texthl=DbgBreakptSign linehl=DbgBreakptLine
-
-hi default DbgCurrentLine term=reverse ctermfg=White ctermbg=Red guifg=#ffffff guibg=#ff0000
-hi default DbgCurrentSign term=reverse ctermfg=White ctermbg=Red guifg=#ffffff guibg=#ff0000
-hi default DbgBreakptLine term=reverse ctermfg=White ctermbg=Green guifg=#ffffff guibg=#00ff00
-hi default DbgBreakptSign term=reverse ctermfg=White ctermbg=Green guifg=#ffffff guibg=#00ff00
-
-function! s:BreakpointTypes(A,L,P)
- let arg_to_cursor = strpart(a:L,11,a:P)
- let space_idx = stridx(arg_to_cursor,' ')
- if space_idx == -1
- return filter(['conditional ','exception ','return ','call ','watch '],'v:val =~ "^".a:A.".*"')
- else
- return []
- endif
-endfunction
-
-" Reload options dictionary, by merging with default options.
-"
-" This should be called if you want to update the options after vdebug has
-" been loaded.
-function! Vdebug_load_options(options)
- " Merge options with defaults
- let g:vdebug_options = extend(g:vdebug_options_defaults, a:options)
-endfunction
-
-" Assign keymappings, and merge with defaults.
-"
-" This should be called if you want to update the keymappings after vdebug has
-" been loaded.
-function! Vdebug_load_keymaps(keymaps)
- " Unmap existing keys, if applicable
- if has_key(g:vdebug_keymap, "run")
- exe "silent! nunmap ".g:vdebug_keymap["run"]
- endif
- if has_key(g:vdebug_keymap, "set_breakpoint")
- exe "silent! nunmap ".g:vdebug_keymap["set_breakpoint"]
- endif
- if has_key(g:vdebug_keymap, "eval_visual")
- exe "silent! vunmap ".g:vdebug_keymap["eval_visual"]
- endif
-
- " Merge keymaps with defaults
- let g:vdebug_keymap = extend(g:vdebug_keymap_defaults, a:keymaps)
-
- " Mappings allowed in non-debug mode
- exe "noremap ".g:vdebug_keymap["run"]." :python debugger.run()<cr>"
- exe "noremap ".g:vdebug_keymap["set_breakpoint"]." :python debugger.set_breakpoint()<cr>"
-
- " Exceptional case for visual evaluation
- exe "vnoremap ".g:vdebug_keymap["eval_visual"]." :python debugger.handle_visual_eval()<cr>"
-endfunction
-
-function! s:OptionNames(A,L,P)
- let arg_to_cursor = strpart(a:L,10,a:P)
- let space_idx = stridx(arg_to_cursor,' ')
- if space_idx == -1
- return filter(keys(g:vdebug_options_defaults),'v:val =~ a:A')
- else
- let opt_name = strpart(arg_to_cursor,0,space_idx)
- if has_key(g:vdebug_options,opt_name)
- return [g:vdebug_options[opt_name]]
- else
- return []
- endif
- endif
-endfunction
-
-function! Vdebug_get_visual_selection()
- let [lnum1, col1] = getpos("'<")[1:2]
- let [lnum2, col2] = getpos("'>")[1:2]
- let lines = getline(lnum1, lnum2)
- let lines[-1] = lines[-1][: col2 - 1]
- let lines[0] = lines[0][col1 - 1:]
- return join(lines, "\n")
-endfunction
-
-function! Vdebug_edit(filename)
- try
- execute 'buffer' fnameescape(a:filename)
- catch /^Vim\%((\a\+)\)\=:E94/
- execute 'silent edit' fnameescape(a:filename)
- endtry
-endfunction
-
-function! Vdebug_balloon()
-python << EOF
-import vdebug.ui.vimui
-interest = vim.eval("v:beval_text")
-try:
- var_eval = debugger.runner.api.eval(interest)
- rend = vdebug.ui.vimui.ContextGetResponseRenderer(var_eval)
- rendred = rend.render()
- var_eval = str(rendred)
-except:
- var_eval = "(cannot evaluate)"
-
-vim.command('let l:var = "' + var_eval + '"')
-
-EOF
- return l:var
-endfunction
-
-silent doautocmd User VdebugPost
-call Vdebug_load_options(g:vdebug_options)
-call Vdebug_load_keymaps(g:vdebug_keymap)