summaryrefslogtreecommitdiff
path: root/misc
diff options
context:
space:
mode:
authorShenghou Ma <minux.ma@gmail.com>2013-12-16 20:05:48 -0500
committerShenghou Ma <minux.ma@gmail.com>2013-12-16 20:05:48 -0500
commite8c97fb866cc71adaf26f2868fdaa4fdf415b1bb (patch)
tree7c1ddc8cb4072dd4f75518fff2e71f43c1bf6846 /misc
parent3588e7288052eb28534fb08a702b6acc7706661b (diff)
downloadgo-e8c97fb866cc71adaf26f2868fdaa4fdf415b1bb.tar.gz
misc/vim: use shiftwidth() instead of &sw if available.
Fixes issue 6841. R=golang-dev, dsymonds CC=golang-dev https://codereview.appspot.com/43010044
Diffstat (limited to 'misc')
-rw-r--r--misc/vim/indent/go.vim20
1 files changed, 16 insertions, 4 deletions
diff --git a/misc/vim/indent/go.vim b/misc/vim/indent/go.vim
index faf4d79e2..e3d6e8416 100644
--- a/misc/vim/indent/go.vim
+++ b/misc/vim/indent/go.vim
@@ -24,6 +24,18 @@ if exists("*GoIndent")
finish
endif
+" The shiftwidth() function is relatively new.
+" Don't require it to exist.
+if exists('*shiftwidth')
+ func s:sw()
+ return shiftwidth()
+ endfunc
+else
+ func s:sw()
+ return &shiftwidth
+ endfunc
+endif
+
function! GoIndent(lnum)
let prevlnum = prevnonblank(a:lnum-1)
if prevlnum == 0
@@ -40,17 +52,17 @@ function! GoIndent(lnum)
if prevl =~ '[({]\s*$'
" previous line opened a block
- let ind += &sw
+ let ind += s:sw()
endif
if prevl =~# '^\s*\(case .*\|default\):$'
" previous line is part of a switch statement
- let ind += &sw
+ let ind += s:sw()
endif
" TODO: handle if the previous line is a label.
if thisl =~ '^\s*[)}]'
" this line closed a block
- let ind -= &sw
+ let ind -= s:sw()
endif
" Colons are tricky.
@@ -58,7 +70,7 @@ function! GoIndent(lnum)
" We ignore trying to deal with jump labels because (a) they're rare, and
" (b) they're hard to disambiguate from a composite literal key.
if thisl =~# '^\s*\(case .*\|default\):$'
- let ind -= &sw
+ let ind -= s:sw()
endif
return ind