summaryrefslogtreecommitdiffstats
path: root/vim/indent
diff options
context:
space:
mode:
authorjistone <jistone>2005-12-21 00:44:16 +0000
committerjistone <jistone>2005-12-21 00:44:16 +0000
commit0dd17aeffbbe7e704cfb297a35a569bbe74aff2d (patch)
treebc191167d4b4ed14b7403506b59841b12ad30f9b /vim/indent
parent0b2cecb78ce5c0dcef980124d7155263f39edd10 (diff)
downloadsystemtap-steved-0dd17aeffbbe7e704cfb297a35a569bbe74aff2d.tar.gz
systemtap-steved-0dd17aeffbbe7e704cfb297a35a569bbe74aff2d.tar.xz
systemtap-steved-0dd17aeffbbe7e704cfb297a35a569bbe74aff2d.zip
2005-12-20 Josh Stone <joshua.i.stone@intel.com>
* vim/filetype.vim: defines *.stp files as SystemTap scripts * vim/ftplugin/stap.vim: sets the comment styles * vim/indent/stap.vim: enables simple auto-indenting * vim/syntax/stap.vim: defines syntax highlighting
Diffstat (limited to 'vim/indent')
-rw-r--r--vim/indent/stap.vim35
1 files changed, 35 insertions, 0 deletions
diff --git a/vim/indent/stap.vim b/vim/indent/stap.vim
new file mode 100644
index 00000000..16658d6c
--- /dev/null
+++ b/vim/indent/stap.vim
@@ -0,0 +1,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)