" 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