plugins: Fix filetype for vimspector
[vimconf.git] / plugins-noroot-nolowendbox.vim
index 602724ec11f19477ea6c69579e2bf9ba02494d8a..443a012727ec23924d7a1516c3e17dc010592ee1 100644 (file)
@@ -13,6 +13,11 @@ endif
 Plug 'artur-shaik/vim-javacomplete2', {'for': 'java'}
 
 Plug 'neomake/neomake'
+Plug 'puremourning/vimspector'
+
+Plug 'kana/vim-operator-user'
+Plug 'rhysd/vim-clang-format'
+Plug 'justmao945/vim-clang', {'for': ['c', 'cpp', 'objc']}
 
 " Prevent slow foling update, e.g., for vimtex
 Plug 'Konfekt/FastFold'
@@ -40,21 +45,21 @@ else
 endif
 
 Plug 'ryanoasis/vim-devicons', Cond(g:enable_plugin_devicons)
-Plug 'joom/latex-unicoder.vim', {'on': '<Plug>Unicoder'}
+Plug 'joom/latex-unicoder.vim'
+Plug 'chrisbra/unicode.vim'
 
 Plug 'sjl/splice.vim', {'on': 'SpliceInit'}
 
 " Costs a second startup time
 Plug 'dbeniamine/cheat.sh-vim', {'on': 'Cheat'}
 
+Plug 'sheerun/vim-polyglot'
+
 if has('nvim-0.5')
     Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'}
     Plug 'nvim-treesitter/nvim-treesitter-refactor', {'do': ':TSUpdate'}
-else
-    Plug 'sheerun/vim-polyglot'
 endif
 
-
 function PluginsNorootNolowendboxConfig()
     let g:neomake_c_enabled_makers = ['clangtidy', 'clangcheck']
     let g:neomake_cpp_enabled_makers = ['clangtidy', 'clangcheck']
@@ -240,4 +245,41 @@ EOF
     let g:vimtex_fold_enabled = 1
     let g:vimtex_fold_levelmarker = '➜'
 
+    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 = ''
+
 endfunction