summaryrefslogtreecommitdiffstats
path: root/vim/indent/stap.vim
blob: 16658d6c002f46292b0cf5bba722d5913f17ce2a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
" Vim indent file
" Language:	SystemTap
" Maintainer:	Josh Stone <joshua.i.stone@intel.com>
" Last Change:	2005 Dec 15

" Only load this indent file when no other was loaded.
if exists("b:did_indent")
   finish
endif
let b:did_indent = 1

" SystemTap indenting works *mostly* the same as C, so this gets things pretty
" close.  For 'real' SystemTap indenting, we would have to write a custom
" indentexpr function.

" indenting is similar to C, so start there...
setlocal cindent

" Statements don't require a ';', so don't indent following lines
setlocal cino=+0

" Known issues:
" - need to detect when following lines are a continuation of the previous
"   statement, and indent appropriately.
" - one-liners with control flow try to indent the next line if there's no
"   ';'.  For example:
"       if (my_condition) break
"           do_work()
"   The second line should not be indented.
" - The embedded-C braces do not line up correctly
" - Preprocessor braces don't line up correctly, and internals of the
"   preprocessor aren't getting any special handling.
" - Embedded-C statements across multiple lines don't indent
" - '#' comments don't maintain indenting (they get treated like C
"   preprocessor statements)