]> Cypherpunks repositories - gostls13.git/commitdiff
misc/vim: Add indent script for Vim
authorRoss Light <rlight2@gmail.com>
Tue, 8 Mar 2011 04:42:23 +0000 (15:42 +1100)
committerAndrew Gerrand <adg@golang.org>
Tue, 8 Mar 2011 04:42:23 +0000 (15:42 +1100)
R=adg
CC=golang-dev
https://golang.org/cl/4258041

misc/vim/indent/go.vim [new file with mode: 0644]
misc/vim/readme.txt

diff --git a/misc/vim/indent/go.vim b/misc/vim/indent/go.vim
new file mode 100644 (file)
index 0000000..2e9f191
--- /dev/null
@@ -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
index f836f58f3ea9917759c21c4a3be6d10bd2e6ae3c..3c3255113b389e00a13ab30a46c2f78457950709 100644 (file)
@@ -35,3 +35,16 @@ To install one of the available filetype plugins for Go:
   3. Add the following line to your .vimrc file (normally $HOME/.vimrc):
 
      filetype plugin on
+
+
+Vim indentation plugin for Go
+=============================
+
+To install automatic indentation for Go:
+
+  1. Same as 1 above.
+  2. Copy or link indent/go.vim to the indent directory underneath your vim
+     runtime directory (normally $HOME/.vim/indent).
+  3. Add the following line to your .vimrc file (normally $HOME/.vimrc):
+
+     filetype indent on