mirror of
https://github.com/golang/go
synced 2024-10-04 19:21:21 -06:00
d2a45dbf08
R=golang-dev, dsymonds, jnwhiteh, n13m3y3r, gustavo CC=golang-dev https://golang.org/cl/4837051
50 lines
1.2 KiB
VimL
50 lines
1.2 KiB
VimL
" 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.
|
|
"
|
|
" This file provides a utility function that performs auto-completion of
|
|
" package names, for use by other commands.
|
|
|
|
let s:goos = $GOOS
|
|
let s:goarch = $GOARCH
|
|
|
|
if len(s:goos) == 0
|
|
if exists('g:golang_goos')
|
|
let s:goos = g:golang_goos
|
|
elseif has('win32') || has('win64')
|
|
let s:goos = 'windows'
|
|
elseif has('macunix')
|
|
let s:goos = 'darwin'
|
|
else
|
|
let s:goos = '*'
|
|
endif
|
|
endif
|
|
|
|
if len(s:goarch) == 0
|
|
if exists('g:golang_goarch')
|
|
let s:goarch = g:golang_goarch
|
|
else
|
|
let s:goarch = '*'
|
|
endif
|
|
endif
|
|
|
|
function! go#complete#Package(ArgLead, CmdLine, CursorPos)
|
|
let goroot = $GOROOT
|
|
if len(goroot) == 0
|
|
" should not occur.
|
|
return []
|
|
endif
|
|
let ret = {}
|
|
let root = expand(goroot.'/pkg/'.s:goos.'_'.s:goarch)
|
|
for i in split(globpath(root, a:ArgLead.'*'), "\n")
|
|
if isdirectory(i)
|
|
let i .= '/'
|
|
elseif i !~ '\.a$'
|
|
continue
|
|
endif
|
|
let i = substitute(substitute(i[len(root)+1:], '[\\]', '/', 'g'), '\.a$', '', 'g')
|
|
let ret[i] = i
|
|
endfor
|
|
return sort(keys(ret))
|
|
endfunction
|