X-Git-Url: https://git.rmz.io/dotfiles.git/blobdiff_plain/99ab36799daa2c68e08d737ed7a75ee9214d3635..b47ffe60e244c9165f40371736079320ea2d848b:/vim/ftplugin/c.vim diff --git a/vim/ftplugin/c.vim b/vim/ftplugin/c.vim index a4625ac..a2e9e71 100644 --- a/vim/ftplugin/c.vim +++ b/vim/ftplugin/c.vim @@ -3,15 +3,45 @@ 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 -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