X-Git-Url: https://git.rmz.io/dotfiles.git/blobdiff_plain/5241d5e70cfb32049a65c30dbdcdf49a130459d7..99ab36799daa2c68e08d737ed7a75ee9214d3635:/vim/ftplugin/cpp.vim diff --git a/vim/ftplugin/cpp.vim b/vim/ftplugin/cpp.vim index 16ffc97..4d54b7b 100644 --- a/vim/ftplugin/cpp.vim +++ b/vim/ftplugin/cpp.vim @@ -1 +1,56 @@ +setlocal textwidth=100 + +" indent 4 spaces +setlocal shiftwidth=4 +setlocal tabstop=4 +setlocal softtabstop=4 +setlocal expandtab + +setlocal nosmartindent +setlocal autoindent +setlocal cinkeys-=0# " don't reindent PP directives +setlocal cinoptions+=:0 " don't indent case labels + +" Load the doxygen syntax +let b:load_doxygen_syntax = 1 + +let g:switch_const_definitions = + \ [ { + \ '\%(const \)\@!\([[:alnum:]_:<>]\{-}\) \%(&\)\@!': 'const \1 ', + \ 'const \([[:alnum:]_:<>]\{-}\) &\@!': 'const \1 &' , + \ 'const \([[:alnum:]_:<>]\{-}\) &': '\1 ' + \ } ] + +nnoremap c :call switch#Switch(g:switch_const_definitions, {}) + +nnoremap gd :YcmCompleter GoTo +nnoremap d :vs:YcmCompleter GoTo + +" format with = +map = (operator-clang-format) +vnoremap = :ClangFormat +" restore = mapping to g= +nnoremap g= = +vnoremap g= = + +setlocal errorformat= +setlocal errorformat+=%f:%l:%c:\ %trror:\ %m +setlocal errorformat+=%f:%l:%c:\ %tarning:\ %m +setlocal errorformat+=%D%*\\a[%*\\d]:\ Entering\ directory\ [`']%f' +setlocal errorformat+=%X%*\\a[%*\\d]:\ Leaving\ directory\ [`']%f' +setlocal errorformat+=%D%*\\a:\ Entering\ directory\ [`']%f' +setlocal errorformat+=%X%*\\a:\ Leaving\ directory\ [`']%f' +setlocal errorformat+=%*[^[]\[%tRROR\]%m\ \[%f:%l\] +setlocal errorformat+=%*[^[]\[%tARNING\]%m\ \[%f:%l\] + setlocal foldmethod=syntax +" set foldlevel according to number of matches of 'namespace' and 'class' not +" containing ';' +function! InitialFoldLevel() + let v:errmsg = "" + keepjumps keeppatterns silent! 1,/}/s/^\(namespace\|class\) \+[^;]*$//n + if v:errmsg == "" + let &foldlevel=str2nr(split(v:statusmsg)[0]) + endif +endf +call InitialFoldLevel()