]> git.rmz.io Git - dotfiles.git/blobdiff - vim/ftplugin/cpp.vim
[WIP] Push all of the ultrahaptics changes!
[dotfiles.git] / vim / ftplugin / cpp.vim
index 7fd300c0afa956982faa5e10aa5de17ff342bdfb..82e3170b66070d21d3bdd3917461404886591487 100644 (file)
@@ -1,6 +1,38 @@
-setlocal foldmethod=syntax
+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
 
 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.*|src|'
+    au BufEnter *.cpp let b:fswitchdst  = 'hpp,h'
+    au BufEnter *.cpp let b:fswitchlocs = 'reg:|src|include/**|'
 augroup END
+
+nnoremap <buffer> gd :YcmCompleter GoTo<CR>
+nnoremap <buffer> <C-W>d :vs<CR>:YcmCompleter GoTo<CR>
+
+setlocal foldmethod=syntax
+setlocal foldlevel=99
+" 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()