summaryrefslogtreecommitdiff
path: root/misc/vim/plugin/godoc.vim
diff options
context:
space:
mode:
Diffstat (limited to 'misc/vim/plugin/godoc.vim')
-rw-r--r--misc/vim/plugin/godoc.vim17
1 files changed, 15 insertions, 2 deletions
diff --git a/misc/vim/plugin/godoc.vim b/misc/vim/plugin/godoc.vim
index a9abb7ae6..a7b84de74 100644
--- a/misc/vim/plugin/godoc.vim
+++ b/misc/vim/plugin/godoc.vim
@@ -70,13 +70,26 @@ endfunction
function! s:Godoc(...)
let word = join(a:000, ' ')
if !len(word)
+ let oldiskeyword = &iskeyword
+ setlocal iskeyword+=.
let word = expand('<cword>')
+ let &iskeyword = oldiskeyword
endif
let word = substitute(word, '[^a-zA-Z0-9\\/._~-]', '', 'g')
- if !len(word)
+ let words = split(word, '\.')
+ if !len(words)
return
endif
- call s:GodocWord(word)
+ call s:GodocWord(words[0])
+ if len(words) > 1
+ if search('^\%(const\|var\|type\|\s\+\) ' . words[1] . '\s\+=\s')
+ return
+ endif
+ if search('^func ' . words[1] . '(')
+ return
+ endif
+ echo 'No documentation found for "' . word . '".'
+ endif
endfunction
command! -nargs=* -range -complete=customlist,go#complete#Package Godoc :call s:Godoc(<q-args>)