diff options
author | Horacio Sanson <horacio@allm.net> | 2018-08-30 11:39:03 +0900 |
---|---|---|
committer | Horacio Sanson <horacio@allm.net> | 2018-09-06 13:46:59 +0900 |
commit | a9333c2866ad604ef5b8523af7fb1fce10057833 (patch) | |
tree | 9c8d51ccbd6282d27e503690a02153a1f9969a25 /autoload | |
parent | d476578a402763f2c6e4e0ada2eb345d0ac938d7 (diff) | |
download | ale-a9333c2866ad604ef5b8523af7fb1fce10057833.zip |
Fix #1822 - support go-langserver lsp.
Diffstat (limited to 'autoload')
-rw-r--r-- | autoload/ale/go.vim | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/autoload/ale/go.vim b/autoload/ale/go.vim new file mode 100644 index 00000000..a166480a --- /dev/null +++ b/autoload/ale/go.vim @@ -0,0 +1,27 @@ +" Author: Horacio Sanson https://github.com/hsanson +" Description: Functions for integrating with Go tools + +" Find the nearest dir listed in GOPATH and assume it the root of the go +" project. +function! ale#go#FindProjectRoot(buffer) abort + let l:sep = has('win32') ? ';' : ':' + + let l:filename = ale#path#Simplify(expand('#' . a:buffer . ':p')) + + for l:name in split($GOPATH, l:sep) + let l:path_dir = ale#path#Simplify(l:name) + + " Use the directory from GOPATH if the current filename starts with it. + if l:filename[: len(l:path_dir) - 1] is? l:path_dir + return l:path_dir + endif + endfor + + let l:default_go_path = ale#path#Simplify(expand('~/go')) + + if isdirectory(l:default_go_path) + return l:default_go_path + endif + + return '' +endfunction |