From: Samir Benmendil Date: Wed, 4 Jun 2014 04:35:47 +0000 (+0100) Subject: vim: google c++ indent style for cpp + syntax foldmethod X-Git-Url: https://git.rmz.io/dotfiles.git/commitdiff_plain/5241d5e70cfb32049a65c30dbdcdf49a130459d7?ds=inline vim: google c++ indent style for cpp + syntax foldmethod --- diff --git a/vim/ftplugin/cpp.vim b/vim/ftplugin/cpp.vim new file mode 100644 index 0000000..16ffc97 --- /dev/null +++ b/vim/ftplugin/cpp.vim @@ -0,0 +1 @@ +setlocal foldmethod=syntax diff --git a/vim/indent/cpp.vim b/vim/indent/cpp.vim new file mode 100644 index 0000000..5484695 --- /dev/null +++ b/vim/indent/cpp.vim @@ -0,0 +1,69 @@ +" +" VIM C++ Indent file. +" Inspired by Google's C++ Style guide: +" http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml +" + +if exists("b:did_indent") + finish +endif +let b:did_indent = 1 + + +function! GoogleCppIndent() + let l:cline_num = line('.') + + let l:orig_indent = cindent(l:cline_num) + + if l:orig_indent == 0 | return 0 | endif + + let l:pline_num = prevnonblank(l:cline_num - 1) + let l:pline = getline(l:pline_num) + if l:pline =~# '^\s*template' | return l:pline_indent | endif + + if l:orig_indent != &shiftwidth | return l:orig_indent | endif + + let l:in_comment = 0 + let l:pline_num = prevnonblank(l:cline_num - 1) + while l:pline_num > -1 + let l:pline = getline(l:pline_num) + let l:pline_indent = indent(l:pline_num) + + if l:in_comment == 0 && l:pline =~ '^.\{-}\(/\*.\{-}\)\@