X-Git-Url: https://git.rmz.io/dotfiles.git/blobdiff_plain/b5c261362dfe9c254e6a865071689ef6ca8b4589..e48f84d521de72d8f39997054e57ae43f44c0d4b:/vim/ftplugin/cpp.vim?ds=sidebyside diff --git a/vim/ftplugin/cpp.vim b/vim/ftplugin/cpp.vim index 1f9deab..2f545a5 100644 --- a/vim/ftplugin/cpp.vim +++ b/vim/ftplugin/cpp.vim @@ -18,12 +18,10 @@ augroup fswitch_cpp au! au BufEnter *.h let b:fswitchdst = 'c,cpp' au BufEnter *.h let b:fswitchlocs = '.,reg:|include.*|src|' - au BufEnter *.hpp let b:fswitchdst = 'ipp,cpp,c' + au BufEnter *.hpp let b:fswitchdst = 'cpp,c' au BufEnter *.hpp let b:fswitchlocs = '.,reg:|include.*|src|' au BufEnter *.cpp let b:fswitchdst = 'hpp,h' au BufEnter *.cpp let b:fswitchlocs = '.,reg:|src|include/**|' - au BufEnter *.ipp let b:fswitchdst = 'hpp' - au BufEnter *.ipp let b:fswitchlocs = '.' augroup END let g:switch_custom_definitions = @@ -65,6 +63,23 @@ setlocal errorformat+=%X%*\\a:\ Leaving\ directory\ [`']%f' setlocal errorformat+=%*[^[]\[%tRROR\]%m\ \[%f:%l\] setlocal errorformat+=%*[^[]\[%tARNING\]%m\ \[%f:%l\] +packadd termdebug +let g:termdebug_wide = 1 +function! s:Debug(...) + tabedit % + let t:debug_tab=1 + au BufDelete !gdb ++once if exists('t:debug_tab') | tabclose | endif + + "TODO restore mappings + "TODO make mappings local to source buffer + nnoremap :call TermDebugSendCommand('advance -source '.expand('%').' -line '.line(".")) + nnoremap :Step + nnoremap :Over + nnoremap :Finish +endfunction +command! -nargs=* -complete=file -bang Debug call Debug() | Termdebug +command! -nargs=+ -complete=file -bang DebugCommand call Debug() | TermdebugCommand + setlocal foldmethod=syntax " set foldlevel according to number of matches of 'namespace' and 'class' not " containing ';' @@ -72,7 +87,7 @@ function! InitialFoldLevel() let v:errmsg = "" keepjumps keeppatterns silent! 1,/}/s/^\(namespace\|class\) \+[^;]*$//n if v:errmsg == "" - let &foldlevel=str2nr(split(v:statusmsg)[0]) + let &l:foldlevel=str2nr(split(v:statusmsg)[0]) endif endf call InitialFoldLevel()