From b1ab840f915b19efaf3205a3b83100c1506a93dc Mon Sep 17 00:00:00 2001
From: MURAOKA Taro <koron.kaoriya@gmail.com>
Date: Sat, 16 Jul 2016 23:19:51 +0900
Subject: [PATCH] separate "go env ROOT"

---
 autoload/go/complete.vim |  9 +--------
 autoload/go/env.vim      | 11 +++++++++++
 2 files changed, 12 insertions(+), 8 deletions(-)
 create mode 100644 autoload/go/env.vim

diff --git a/autoload/go/complete.vim b/autoload/go/complete.vim
index a4fa6b6..fc9a56d 100644
--- a/autoload/go/complete.vim
+++ b/autoload/go/complete.vim
@@ -55,14 +55,7 @@ function! go#complete#Package(ArgLead, CmdLine, CursorPos)
     return go#complete#PackageMembers(words[1], words[2])
   endif
 
-  if executable('go')
-    let goroot = substitute(system('go env GOROOT'), '\n', '', 'g')
-    if v:shell_error
-      echomsg '''go env GOROOT'' failed'
-    endif
-  else
-    let goroot = $GOROOT
-  endif
+  let goroot = go#env#root()
 
   if len(goroot) != 0 && isdirectory(goroot)
     let dirs += [goroot]
diff --git a/autoload/go/env.vim b/autoload/go/env.vim
new file mode 100644
index 0000000..ec1fe4b
--- /dev/null
+++ b/autoload/go/env.vim
@@ -0,0 +1,11 @@
+function! go#env#root()
+  if executable('go')
+    let root = substitute(system('go env GOROOT'), '\n', '', 'g')
+    if v:shell_error
+      echomsg '''go env GOROOT'' failed'
+    endif
+  else
+    let root = $GOROOT
+  endif
+  return root
+endfunction