+ let g:vimtex_view_general_viewer = 'okular'
+ let g:vimtex_view_general_options = '--unique file:@pdf\#src:@line@tex'
+ let g:airline#extensions#vimtex#enabled = 1
+
+ au FileType c,cpp,objc,java,python packadd! vimspector
+ let g:vimspector_base_dir = expand('~/.vim/vimspector-config')
+ let g:vimspector_install_gadgets = [ 'debugpy', 'vscode-cpptools' ]
+ "let g:vimspector_enable_mappings = 'VISUAL_STUDIO'
+
+ function VimspectorRestartOrCreateConfig()
+ if !filereadable('.vimspector.json')
+ echo "Missing .vimspector.json, created one."
+ execute 'tabe .vimspector.json'
+ else
+ call vimspector#Restart()
+ endif
+ endfunction
+
+ nmap <leader>dc <Plug>VimspectorContinue
+ nmap <leader>ds <Plug>VimspectorStop
+ nmap <leader>dr :call VimspectorRestartOrCreateConfig()<CR>
+ "nmap <leader>dr :call vimspector#Restart()<CR>
+ nmap <leader>drr :call vimspector#Reset()<CR>
+ nmap <leader>dp <Plug>VimspectorPause
+ nmap <leader>db <Plug>VimspectorToggleBreakpoint
+ nmap <leader>dcb <Plug>VimspectorToggleConditionalBreakpoint
+ nmap <leader>dfb <Plug>VimspectorAddFunctionBreakpoint
+ nmap <leader>dtc <Plug>VimspectorRunToCursor
+ nmap <leader>do <Plug>VimspectorStepOver
+ nmap <leader>di <Plug>VimspectorStepInto
+ nmap <leader>dof <Plug>VimspectorStepOut
+ " for normal mode, the word under the cursor
+ nmap <Leader>de <Plug>VimspectorBalloonEval
+ " for visual mode, the visually selected text
+ xmap <Leader>de <Plug>VimspectorBalloonEval
+
+ au BufNewFile .vimspector.json read ~/.vim/vimspector-config/vimspector.json
+
+ " Do not show diagnostic window of vim-clang
+ let g:clang_diagsopt = ''
+
+ augroup ClangFormatSettings
+ au!
+ au FileType c,cpp,objc,javascript,java,typescript,protobuf,cuda,vala
+ \ vmap <buffer><leader>cf <Plug>(operator-clang-format)
+ au FileType c,cpp,objc,javascript,java,typescript,protobuf,cuda,vala
+ \ nmap <buffer><leader>cf :ClangFormat<CR>
+ augroup END