Close list item tag, to conform with the style in this file. It's optional
[oota-llvm.git] / utils / vim / vimrc
index 3c872d986227421e79e2ea452734b9983c15b4a9..7b1fd872b274c9cae5916ece46e5b18997dc873f 100644 (file)
@@ -1,31 +1,51 @@
 " LLVM coding guidelines conformance for VIM
-" Maintainer: LLVM Team, http://llvm.cs.uiuc.edu
-" Updated:    2005-04-24
+"
+" Maintainer: The LLVM Team, http://llvm.org
 " WARNING:    Read before you source in all these commands and macros!  Some
 "             of them may change VIM behavior that you depend on.
+"
+" You can run VIM with these settings without changing your current setup with:
+" $ vim -u /path/to/llvm/utils/vim/vimrc
+
+" It's VIM, not VI
+set nocompatible
 
 " Wrap text at 80 cols
 set textwidth=80
 
 " A tab produces a 2-space indentation
-set tabstop=2
+set softtabstop=2
 set shiftwidth=2
 set expandtab
 
+" Highlight trailing whitespace
+highlight WhitespaceEOL ctermbg=DarkYellow guibg=DarkYellow
+match WhitespaceEOL /\s\+$/
+
+" Enable filetype detection
+filetype on
+
 " Optional
 " C/C++ programming helpers
-set autoindent
-set smartindent
+augroup csrc
+  au!
+  autocmd FileType *      set nocindent smartindent
+  autocmd FileType c,cpp  set cindent
+augroup END
+" Set a few indentation parameters. See the VIM help for cinoptions-values for
+" details.  These aren't absolute rules; they're just an approximation of
+" common style in LLVM source.
+set cinoptions=:0,g0,(0,Ws
 " Add and delete spaces in increments of `shiftwidth' for tabs
 set smarttab
 
-" Enable filetype detection
-filetype on
+" Highlight syntax in programming languages
+syntax on
 
 " LLVM Makefiles can have names such as Makefile.rules or TEST.nightly.Makefile,
 " so it's important to categorize them as such.
 augroup filetype
-  au! BufRead,BufNewFile *Makefile*     set filetype=make
+  au! BufRead,BufNewFile *Makefile* set filetype=make
 augroup END
 
 " In Makefiles, don't expand tabs to spaces, since we need the actual tabs
@@ -34,7 +54,19 @@ autocmd FileType make set noexpandtab
 " Useful macros for cleaning up code to conform to LLVM coding guidelines
 
 " Delete trailing whitespace and tabs at the end of each line
-map :dtws :%s/[\ \t]\+$//
+command! DeleteTrailingWs :%s/\s\+$//
 
 " Convert all tab characters to two spaces
-map :untab :%s/\t/  /g
+command! Untab :%s/\t/  /g
+
+" Enable syntax highlighting for LLVM files. To use, copy
+" utils/vim/llvm.vim to ~/.vim/syntax .
+augroup filetype
+  au! BufRead,BufNewFile *.ll     set filetype=llvm
+augroup END
+
+" Enable syntax highlighting for tablegen files. To use, copy
+" utils/vim/tablegen.vim to ~/.vim/syntax .
+augroup filetype
+  au! BufRead,BufNewFile *.td     set filetype=tablegen
+augroup END