plugins: Use custom vimspector base dir
[vimconf.git] / plugins-noroot-nolowendbox.vim
index 4c9c4d77506d718c3624d94b0ce9b56c99feb3ee..84828779fe72a4a4e4e9c5db739909c4bff129be 100644 (file)
@@ -13,6 +13,7 @@ endif
 Plug 'artur-shaik/vim-javacomplete2', {'for': 'java'}
 
 Plug 'neomake/neomake'
+Plug 'puremourning/vimspector'
 
 " Prevent slow foling update, e.g., for vimtex
 Plug 'Konfekt/FastFold'
@@ -31,6 +32,14 @@ Plug 'hail2u/vim-css3-syntax', {'for': ['scss', 'css']}
 Plug 'https://gitlab.com/dbeniamine/vim-mail'
 Plug 'Konfekt/vim-DetectSpellLang', {'do': 'spell'}
 
+" Disable devicons on linux terminal
+if $TERM == 'linux'
+    let g:enable_plugin_devicons=0
+    " Enable loading of devicons on all others
+else
+    let g:enable_plugin_devicons=1
+endif
+
 Plug 'ryanoasis/vim-devicons', Cond(g:enable_plugin_devicons)
 Plug 'joom/latex-unicoder.vim', {'on': '<Plug>Unicoder'}
 
@@ -39,15 +48,34 @@ 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']
+    let g:clang_compilation_database = '.'
+
+    " Taken from neomake
+    if OnBattery()
+        call neomake#configure#automake('w')
+    else
+        call neomake#configure#automake('nw', 1000)
+    endif
+
+    " Speedup deoplete startup time, see deoplete FAQ
+    let g:python3_host_prog = '/usr/bin/python3'
+    " deoplete requires huge startuptime. Delay loading upon first InsertEnter.
+    let g:deoplete#enable_at_startup = 0
+    call deoplete#custom#option({
+                \ 'smart_case' : v:true,
+                \ 'auto_refresh_delay' : 100,
+                \ })
+    au InsertEnter * call deoplete#enable()
 
     " The denite settings are largely stolen from spacevim
     let s:denite_options = {
@@ -180,4 +208,70 @@ lua <<EOF
         }
 EOF
     endif
+
+    let g:fastfold_minlines = 0
+
+    let g:detectspelllang_langs = {}
+    let g:detectspelllang_langs.aspell =[ 'en_US', 'de_AT']
+
+    au FileType mail let g:VimMailSpellLangs=['de', 'en']
+    let g:VimMailContactsProvider=['khard']
+    let g:VimMailContactsCommands={
+                \'khard':
+                \{ 'query' : "khard email --parsable --search-in-source-files",
+                \'sync': "/bin/true"}
+                \}
+
+    let g:org_todo_keywords = [['TODO(t)', 'WAITING(w)', '|', 'DONE(d)'],
+                \ ['|', 'OBSOLETE(o)', 'WONT(n)'],
+                \ ['CANCELED(c)']]
+
+    let g:vimwiki_list = [{'path': '~/.vimwiki/',
+                \ 'template_path': '~/.vim/vimwiki/templates',
+                \ 'template_default': 'default',
+                \ 'template_ext': '.html'}]
+    let g:vimwiki_global_ext = 0
+
+
+    " Java completion
+    au FileType java setlocal omnifunc=javacomplete#Complete
+    au FileType java JCEnable
+
+    let g:vimtex_fold_enabled = 1
+    let g:vimtex_fold_levelmarker = '➜'
+
+    au FileType c,cpp,obj,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
+
 endfunction