blob: 43038399ea8d09cfc74b1ed12a2c9ae82c82ccf5 [file] [log] [blame]
Dan Gohmanf17a25c2007-07-18 16:29:46 +00001" LLVM coding guidelines conformance for VIM
Misha Brukmanb701a472009-01-02 16:26:14 +00002"
3" Maintainer: The LLVM Team, http://llvm.org
Dan Gohmanf17a25c2007-07-18 16:29:46 +00004" WARNING: Read before you source in all these commands and macros! Some
5" of them may change VIM behavior that you depend on.
Misha Brukmanb701a472009-01-02 16:26:14 +00006"
7" You can run VIM with these settings without changing your current setup with:
8" $ vim -u /path/to/llvm/utils/vim/vimrc
9
10" It's VIM, not VI
11set nocompatible
Dan Gohmanf17a25c2007-07-18 16:29:46 +000012
13" Wrap text at 80 cols
14set textwidth=80
15
16" A tab produces a 2-space indentation
Dan Gohmancdf33642009-01-04 00:05:43 +000017set softtabstop=2
Dan Gohmanf17a25c2007-07-18 16:29:46 +000018set shiftwidth=2
19set expandtab
20
Misha Brukmanb701a472009-01-02 16:26:14 +000021" Highlight trailing whitespace
22highlight WhitespaceEOL ctermbg=DarkYellow guibg=DarkYellow
23match WhitespaceEOL /\s\+$/
24
Dan Gohmanf17a25c2007-07-18 16:29:46 +000025" Optional
26" C/C++ programming helpers
Dan Gohman5adb6032009-01-04 00:03:54 +000027set cindent
Dan Gohman07aba402009-01-04 18:59:55 +000028" Set a few indentation parameters. See the VIM help for cinoptions-values for
29" details. These aren't absolute rules; they're just an approximation of
30" common style in LLVM source.
31set cinoptions=:0,g0,(0,Ws
Dan Gohmanf17a25c2007-07-18 16:29:46 +000032" Add and delete spaces in increments of `shiftwidth' for tabs
33set smarttab
34
Misha Brukmanb701a472009-01-02 16:26:14 +000035" Highlight syntax in programming languages
36syntax on
37
Dan Gohmanf17a25c2007-07-18 16:29:46 +000038" Enable filetype detection
39filetype on
40
41" LLVM Makefiles can have names such as Makefile.rules or TEST.nightly.Makefile,
42" so it's important to categorize them as such.
43augroup filetype
Misha Brukmanb701a472009-01-02 16:26:14 +000044 au! BufRead,BufNewFile *Makefile* set filetype=make
Dan Gohmanf17a25c2007-07-18 16:29:46 +000045augroup END
46
47" In Makefiles, don't expand tabs to spaces, since we need the actual tabs
48autocmd FileType make set noexpandtab
49
50" Useful macros for cleaning up code to conform to LLVM coding guidelines
51
52" Delete trailing whitespace and tabs at the end of each line
Misha Brukman417b3112009-01-08 02:17:30 +000053command! DeleteTrailingWs :%s/\s\+$//
Dan Gohmanf17a25c2007-07-18 16:29:46 +000054
55" Convert all tab characters to two spaces
Misha Brukmanb701a472009-01-02 16:26:14 +000056command! Untab :%s/\t/ /g