1
" LLVM coding guidelines conformance for VIM
4
" Maintainer: The LLVM Team, http://llvm.org
5
" WARNING: Read before you source in all these commands and macros! Some
6
" of them may change VIM behavior that you depend on.
8
" You can run VIM with these settings without changing your current setup with:
9
" $ vim -u /path/to/llvm/utils/vim/vimrc
14
" A tab produces a 2-space indentation
19
" Highlight trailing whitespace and lines longer than 80 columns.
20
highlight LongLine ctermbg=DarkYellow guibg=DarkYellow
21
highlight WhitespaceEOL ctermbg=DarkYellow guibg=DarkYellow
23
" Lines longer than 80 columns.
24
au BufWinEnter * let w:m0=matchadd('LongLine', '\%>80v.\+', -1)
26
" Whitespace at the end of a line. This little dance suppresses
27
" whitespace that has just been typed.
28
au BufWinEnter * let w:m1=matchadd('WhitespaceEOL', '\s\+$', -1)
29
au InsertEnter * call matchdelete(w:m1)
30
au InsertEnter * let w:m2=matchadd('WhitespaceEOL', '\s\+\%#\@<!$', -1)
31
au InsertLeave * call matchdelete(w:m2)
32
au InsertLeave * let w:m1=matchadd('WhitespaceEOL', '\s\+$', -1)
34
au BufRead,BufNewFile * syntax match LongLine /\%>80v.\+/
35
au InsertEnter * syntax match WhitespaceEOL /\s\+\%#\@<!$/
36
au InsertLeave * syntax match WhitespaceEOL /\s\+$/
39
" Enable filetype detection
43
" C/C++ programming helpers
46
autocmd FileType * set nocindent smartindent
47
autocmd FileType c,cpp set cindent
49
" Set a few indentation parameters. See the VIM help for cinoptions-values for
50
" details. These aren't absolute rules; they're just an approximation of
51
" common style in LLVM source.
52
set cinoptions=:0,g0,(0,Ws,l1
53
" Add and delete spaces in increments of `shiftwidth' for tabs
56
" Highlight syntax in programming languages
59
" LLVM Makefiles can have names such as Makefile.rules or TEST.nightly.Makefile,
60
" so it's important to categorize them as such.
62
au! BufRead,BufNewFile *Makefile* set filetype=make
65
" In Makefiles, don't expand tabs to spaces, since we need the actual tabs
66
autocmd FileType make set noexpandtab
68
" Useful macros for cleaning up code to conform to LLVM coding guidelines
70
" Delete trailing whitespace and tabs at the end of each line
71
command! DeleteTrailingWs :%s/\s\+$//
73
" Convert all tab characters to two spaces
74
command! Untab :%s/\t/ /g
76
" Enable syntax highlighting for LLVM files. To use, copy
77
" utils/vim/llvm.vim to ~/.vim/syntax .
79
au! BufRead,BufNewFile *.ll set filetype=llvm
82
" Enable syntax highlighting for tablegen files. To use, copy
83
" utils/vim/tablegen.vim to ~/.vim/syntax .
85
au! BufRead,BufNewFile *.td set filetype=tablegen
88
" Additional vim features to optionally uncomment.