From 91b5963ee184a3ff1205a700824996b4740fbcf0 Mon Sep 17 00:00:00 2001 From: Barak Michener Date: Fri, 26 Jul 2013 17:55:31 -0400 Subject: [PATCH] Add gocomplete --- .gitmodules | 3 ++ .vim/bundle/gocode/autoload/gocomplete.vim | 73 ------------------------------ .vim/bundle/gocode/ftplugin/go.vim | 1 - .vim/bundle/vim-gocode | 1 + 4 files changed, 4 insertions(+), 74 deletions(-) delete mode 100644 .vim/bundle/gocode/autoload/gocomplete.vim delete mode 100644 .vim/bundle/gocode/ftplugin/go.vim create mode 160000 .vim/bundle/vim-gocode diff --git a/.gitmodules b/.gitmodules index d951888..51acc82 100644 --- a/.gitmodules +++ b/.gitmodules @@ -67,3 +67,6 @@ [submodule ".vim/bundle/vim-sparkup"] path = .vim/bundle/vim-sparkup url = git://github.com/tristen/vim-sparkup.git +[submodule ".vim/bundle/vim-gocode"] + path = .vim/bundle/vim-gocode + url = https://github.com/Blackrush/vim-gocode.git diff --git a/.vim/bundle/gocode/autoload/gocomplete.vim b/.vim/bundle/gocode/autoload/gocomplete.vim deleted file mode 100644 index 997b53a..0000000 --- a/.vim/bundle/gocode/autoload/gocomplete.vim +++ /dev/null @@ -1,73 +0,0 @@ -if exists('g:loaded_gocode') - finish -endif -let g:loaded_gocode = 1 - -fu! s:gocodeCurrentBuffer() - let buf = getline(1, '$') - if &l:fileformat == 'dos' - " XXX: line2byte() depend on 'fileformat' option. - " so if fileformat is 'dos', 'buf' must include '\r'. - let buf = map(buf, 'v:val."\r"') - endif - let file = tempname() - call writefile(buf, file) - return file -endf - -fu! s:system(str, ...) - return (a:0 == 0 ? system(a:str) : system(a:str, join(a:000))) -endf - -fu! s:gocodeShellescape(arg) - try - let ssl_save = &shellslash - set noshellslash - return shellescape(a:arg) - finally - let &shellslash = ssl_save - endtry -endf - -fu! s:gocodeCommand(cmd, preargs, args) - for i in range(0, len(a:args) - 1) - let a:args[i] = s:gocodeShellescape(a:args[i]) - endfor - for i in range(0, len(a:preargs) - 1) - let a:preargs[i] = s:gocodeShellescape(a:preargs[i]) - endfor - let result = s:system(printf('gocode %s %s %s', join(a:preargs), a:cmd, join(a:args))) - if v:shell_error != 0 - return "[\"0\", []]" - else - return result - endif -endf - -fu! s:gocodeCurrentBufferOpt(filename) - return '-in=' . a:filename -endf - -fu! s:gocodeCursor() - return printf('%d', line2byte(line('.')) + (col('.')-2)) -endf - -fu! s:gocodeAutocomplete() - let filename = s:gocodeCurrentBuffer() - let result = s:gocodeCommand('autocomplete', - \ [s:gocodeCurrentBufferOpt(filename), '-f=vim'], - \ [expand('%:p'), s:gocodeCursor()]) - call delete(filename) - return result -endf - -fu! gocomplete#Complete(findstart, base) - "findstart = 1 when we need to get the text length - if a:findstart == 1 - execute "silent let g:gocomplete_completions = " . s:gocodeAutocomplete() - return col('.') - g:gocomplete_completions[0] - 1 - "findstart = 0 when we need to return the list of completions - else - return g:gocomplete_completions[1] - endif -endf diff --git a/.vim/bundle/gocode/ftplugin/go.vim b/.vim/bundle/gocode/ftplugin/go.vim deleted file mode 100644 index ffe2b48..0000000 --- a/.vim/bundle/gocode/ftplugin/go.vim +++ /dev/null @@ -1 +0,0 @@ -setlocal omnifunc=gocomplete#Complete diff --git a/.vim/bundle/vim-gocode b/.vim/bundle/vim-gocode new file mode 160000 index 0000000..7b07ccd --- /dev/null +++ b/.vim/bundle/vim-gocode @@ -0,0 +1 @@ +Subproject commit 7b07ccdc64afb8a4eced064901b63dbfca1e4a64