diff --git a/autoload/ale/balloon.vim b/autoload/ale/balloon.vim index d36dd4f5..d49dcbf9 100644 --- a/autoload/ale/balloon.vim +++ b/autoload/ale/balloon.vim @@ -15,10 +15,18 @@ function! ale#balloon#MessageForPos(bufnr, lnum, col) abort " Show the diagnostics message if found, 'Hover' output otherwise if l:index >= 0 return l:loclist[l:index].text - else + elseif exists('*balloon_show') || getbufvar( + \ a:bufnr, + \ 'ale_set_balloons_legacy_echo', + \ get(g:, 'ale_set_balloons_legacy_echo', 0) + \) + " Request LSP/tsserver hover information, but only if this version of + " Vim supports the balloon_show function, or if we turned a legacy + " setting on. call ale#hover#Show(a:bufnr, a:lnum, a:col, {'called_from_balloonexpr': 1}) - return '' endif + + return '' endfunction function! ale#balloon#Expr() abort diff --git a/doc/ale.txt b/doc/ale.txt index fa5e30de..636ef12a 100644 --- a/doc/ale.txt +++ b/doc/ale.txt @@ -1363,6 +1363,21 @@ g:ale_set_balloons *g:ale_set_balloons* globally. +g:ale_set_balloons_legacy_echo *g:ale_set_balloons_legacy_echo* + *b:ale_set_balloons_legacy_echo* + Type: |Number| + Default: undefined + + If set to `1`, moving your mouse over documents in Vim will make ALE ask + `tsserver` or `LSP` servers for information about the symbol where the mouse + cursor is, and print that information into Vim's echo line. This is an + option for supporting older versions of Vim which do not properly support + balloons in an asynchronous manner. + + If your version of Vim supports the |balloon_show| function, then this + option does nothing meaningful. + + g:ale_set_highlights *g:ale_set_highlights* Type: |Number|