]> git.rmz.io Git - dotfiles.git/blobdiff - vim/ftplugin/cpp.vim
zsh: use pinentry-curses when connected over ssh
[dotfiles.git] / vim / ftplugin / cpp.vim
index cb3d9bd46a0713efbba79a919ed525a25dd18bb9..7dd40e60d9239aa5f98ec1e98a78c22e39cda2df 100644 (file)
@@ -1,5 +1,3 @@
-setlocal foldmethod=syntax
-
 setlocal textwidth=100
 
 " indent 4 spaces
@@ -14,9 +12,23 @@ setlocal cinkeys-=0#     " don't reindent PP directives
 setlocal cinoptions+=:0  " don't indent case labels
 
 " Load the doxygen syntax
-let g:load_doxygen_syntax=1
+let b:load_doxygen_syntax = 1
 
 augroup fswitch
-    au BufEnter *.h let b:fswitchdst  = 'cpp,c'
-    au BufEnter *.h let b:fswitchlocs = 'reg:/include/source/'
+    au BufEnter *.h   let b:fswitchdst  = 'cpp,c'
+    au BufEnter *.h   let b:fswitchlocs = 'reg:/include/source/'
+    au BufEnter *.cpp let b:fswitchdst  = 'h'
+    au BufEnter *.cpp let b:fswitchlocs = 'reg:/\Csource/include/'
 augroup END
+
+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()