X-Git-Url: https://git.rmz.io/dotfiles.git/blobdiff_plain/1c480d629fe6707a937ea1e0a1c2c83b94433e54..b47ffe60e244c9165f40371736079320ea2d848b:/vim/ftplugin/c.vim?ds=sidebyside diff --git a/vim/ftplugin/c.vim b/vim/ftplugin/c.vim index a003e8f..a2e9e71 100644 --- a/vim/ftplugin/c.vim +++ b/vim/ftplugin/c.vim @@ -7,11 +7,41 @@ augroup fswitch 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,cxx,c' - au BufEnter *.hpp let b:fswitchlocs = 'reg:|include.*|src|' - au BufEnter *.c(pp|xx) let b:fswitchdst = 'hpp,h' - au BufEnter *.c(pp|xx) let b:fswitchlocs = 'reg:|src|include/**|' augroup END -nnoremap gd :YcmCompleter GoTo -nnoremap d :vs:YcmCompleter GoTo +if exists("g:loaded_youcompleteme") + " Disable ale as we use ycm + let b:ale_enabled = 0 + + nnoremap gd :YcmCompleter GoTo + nnoremap d :vs:YcmCompleter GoTo + nnoremap gD :YcmCompleter GoToReferences + + " replaced with ca (code action) in neovim + nnoremap fi :YcmCompleter FixIt + " replaced with cr (code rename) in neovim + nnoremap fr :YcmCompleter RefactorRename + + " format with = + call operator#user#define_ex_command('ycmcompleter-format', 'YcmCompleter Format') + map = (operator-ycmcompleter-format) + vnoremap = :YcmCompleter Format + " restore = mapping to g= + nnoremap g= = + vnoremap g= = + + " hover popup + let g:ycm_auto_hover = '' + let b:ycm_hover = { 'command': 'GetDoc', 'syntax': &filetype } + nmap gh (YCMHover) + nmap gH :YcmCompleter GetDoc +else + " I'm way to used to using = to format than to switch to gq + nnoremap = gq + nnoremap == gqq + vnoremap = gq +endif + +let b:tcomment_options = {'whitespace': 'no'} + +setlocal cinoptions+=l1 " align with case label