diff options
Diffstat (limited to 'misc/vim/indent/go.vim')
-rw-r--r-- | misc/vim/indent/go.vim | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/misc/vim/indent/go.vim b/misc/vim/indent/go.vim new file mode 100644 index 000000000..2e9f191f5 --- /dev/null +++ b/misc/vim/indent/go.vim @@ -0,0 +1,30 @@ +" Copyright 2011 The Go Authors. All rights reserved. +" Use of this source code is governed by a BSD-style +" license that can be found in the LICENSE file. +" +" indent/go.vim: Vim indent file for Go. +" + +if exists("b:did_indent") + finish +endif +let b:did_indent = 1 + +" C indentation is mostly correct +setlocal cindent + +" Options set: +" +0 -- Don't indent continuation lines (because Go doesn't use semicolons +" much) +" L0 -- Don't move jump labels (NOTE: this isn't correct when working with +" gofmt, but it does keep struct literals properly indented.) +" :0 -- Align case labels with switch statement +" l1 -- Always align case body relative to case labels +" J1 -- Indent JSON-style objects (properly indents struct-literals) +" (0, Ws -- Indent lines inside of unclosed parentheses by one shiftwidth +" m1 -- Align closing parenthesis line with first non-blank of matching +" parenthesis line +" +" Known issue: Trying to do a multi-line struct literal in a short variable +" declaration will not indent properly. +setlocal cinoptions+=+0,L0,:0,l1,J1,(0,Ws,m1 |