" vimspector - A multi-language debugging system for Vim " Copyright 2018 Ben Jackson " " Licensed under the Apache License, Version 2.0 (the "License"); " you may not use this file except in compliance with the License. " You may obtain a copy of the License at " " http://www.apache.org/licenses/LICENSE-2.0 " " Unless required by applicable law or agreed to in writing, software " distributed under the License is distributed on an "AS IS" BASIS, " WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. " See the License for the specific language governing permissions and " limitations under the License. " Boilerplate {{{ let s:save_cpo = &cpoptions set cpoptions&vim function! s:restore_cpo() let &cpoptions=s:save_cpo unlet s:save_cpo endfunction if exists( 'g:loaded_vimpector' ) call s:restore_cpo() finish endif "}}} let g:loaded_vimpector = 1 let g:vimspector_home = expand( ':p:h:h' ) let s:mappings = get( g:, 'vimspector_enable_mappings', '' ) nnoremap VimspectorContinue \ :call vimspector#Continue() nnoremap VimspectorStop \ :call vimspector#Stop() nnoremap VimspectorRestart \ :call vimspector#Restart() nnoremap VimspectorPause \ :call vimspector#Pause() nnoremap VimspectorToggleBreakpoint \ :call vimspector#ToggleBreakpoint() nnoremap VimspectorToggleConditionalBreakpoint \ :call vimspector#ToggleBreakpoint( \ { 'condition': input( 'Enter condition expression: ' ), \ 'hitCondition': input( 'Enter hit count expression: ' ) } \ ) nnoremap VimspectorAddFunctionBreakpoint \ :call vimspector#AddFunctionBreakpoint( expand( '' ) ) nnoremap VimspectorStepOver \ :call vimspector#StepOver() nnoremap VimspectorStepInto \ :call vimspector#StepInto() nnoremap VimspectorStepOut \ :call vimspector#StepOut() nnoremap VimspectorRunToCursor \ :call vimspector#RunToCursor() " Eval for normal mode nnoremap VimspectorBalloonEval \ :call vimspector#ShowEvalBalloon( 0 ) " And for visual modes xnoremap VimspectorBalloonEval \ :call vimspector#ShowEvalBalloon( 1 ) if s:mappings ==# 'VISUAL_STUDIO' nmap VimspectorContinue nmap VimspectorStop nmap VimspectorRestart nmap VimspectorPause nmap VimspectorToggleBreakpoint nmap VimspectorAddFunctionBreakpoint nmap VimspectorStepOver nmap VimspectorStepInto nmap VimspectorStepOut elseif s:mappings ==# 'HUMAN' nmap VimspectorContinue nmap VimspectorStop nmap VimspectorRestart nmap VimspectorPause nmap VimspectorToggleBreakpoint nmap VimspectorToggleConditionalBreakpoint nmap VimspectorAddFunctionBreakpoint nmap VimspectorRunToCursor nmap VimspectorStepOver nmap VimspectorStepInto nmap VimspectorStepOut endif command! -bar -nargs=1 -complete=custom,vimspector#CompleteExpr \ VimspectorWatch \ call vimspector#AddWatch( ) command! -bar -nargs=? -complete=custom,vimspector#CompleteOutput \ VimspectorShowOutput \ call vimspector#ShowOutput( ) command! -bar \ VimspectorToggleLog \ call vimspector#ToggleLog() command! -bar -nargs=1 -complete=custom,vimspector#CompleteExpr \ VimspectorEval \ call vimspector#Evaluate( ) command! -bar \ VimspectorReset \ call vimspector#Reset() " Installer commands command! -bar -bang -nargs=* -complete=custom,vimspector#CompleteInstall \ VimspectorInstall \ call vimspector#Install( , ) command! -bar -bang -nargs=* \ VimspectorUpdate \ call vimspector#Update( , ) command! -bar -nargs=0 \ VimspectorAbortInstall \ call vimspector#AbortInstall() " Dummy autocommands so that we can call this whenever augroup VimspectorUserAutoCmds autocmd! autocmd User VimspectorUICreated silent autocmd User VimspectorTerminalOpened silent autocmd user VimspectorJumpedToFrame silent autocmd user VimspectorDebugEnded silent augroup END augroup Vimspector autocmd! autocmd BufNew * call vimspector#OnBufferCreated( expand( '' ) ) augroup END " boilerplate {{{ call s:restore_cpo() " }}}