]> git.rmz.io Git - dotfiles.git/blobdiff - vim/ftplugin/c.vim
nvim: provide type annotations for LazyPluginSpecs
[dotfiles.git] / vim / ftplugin / c.vim
index a4625ac29a1cb2e989c65594a327dc1c010620c1..dc06376966351aaa376657abe9fffd60eeb945c6 100644 (file)
@@ -3,15 +3,35 @@ let b:load_doxygen_syntax = 1
 
 augroup fswitch
     au!
-    au BufEnter *.h   let b:fswitchdst  = 'c,cpp'
-    au BufEnter *.h   let b:fswitchlocs = '.,reg:|include.*|src|'
-    au BufEnter *.c let b:fswitchdst  = 'h'
-    au BufEnter *.c let b:fswitchlocs = 'reg:|source|include/**|'
-    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 *.h        let b:fswitchdst  = 'c,cpp,cxx'
+    au BufEnter *.h        let b:fswitchlocs = '.,reg:|include.*|src|'
+    au BufEnter *.c        let b:fswitchdst  = 'h'
+    au BufEnter *.c        let b:fswitchlocs = 'reg:|source|include/**|'
 augroup END
 
+" Disable ale as we use ycm
+let b:ale_enabled = 0
+
 nnoremap <buffer> gd :YcmCompleter GoTo<CR>
 nnoremap <buffer> <C-W>d :vs<CR>:YcmCompleter GoTo<CR>
+nnoremap <buffer> gD :YcmCompleter GoToReferences<CR>
+
+nnoremap <buffer> <leader>fi :YcmCompleter FixIt<CR>
+
+" format with =
+call operator#user#define_ex_command('ycmcompleter-format', 'YcmCompleter Format')
+map <buffer> = <Plug>(operator-ycmcompleter-format)
+vnoremap <buffer> = :YcmCompleter Format<CR>
+" restore = mapping to g=
+nnoremap <buffer>g= =
+vnoremap <buffer>g= =
+
+" hover popup
+let g:ycm_auto_hover = ''
+let b:ycm_hover = { 'command': 'GetDoc', 'syntax': &filetype }
+nmap <buffer> gh <plug>(YCMHover)
+nmap <buffer> gH :YcmCompleter GetDoc<CR>
+
+let b:tcomment_options = {'whitespace': 'no'}
+
+setlocal cinoptions+=l1  " align with case label