summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--autoload/ale/hover.vim21
1 files changed, 16 insertions, 5 deletions
diff --git a/autoload/ale/hover.vim b/autoload/ale/hover.vim
index fe4e5da7..168ff424 100644
--- a/autoload/ale/hover.vim
+++ b/autoload/ale/hover.vim
@@ -303,6 +303,8 @@ function! ale#hover#Show(buffer, line, col, opt) abort
endfor
endfunction
+let s:last_pos = [0, 0, 0]
+
" This function implements the :ALEHover command.
function! ale#hover#ShowAtCursor() abort
let l:buffer = bufnr('')
@@ -313,11 +315,20 @@ endfunction
function! ale#hover#ShowTruncatedMessageAtCursor() abort
let l:buffer = bufnr('')
- let [l:info, l:loc] = ale#util#FindItemAtCursor(l:buffer)
-
- if empty(l:loc)
- let l:pos = getpos('.')
- call ale#hover#Show(l:buffer, l:pos[1], l:pos[2], {'truncated_echo': 1})
+ let l:pos = getpos('.')[0:2]
+
+ if l:pos != s:last_pos
+ let s:last_pos = l:pos
+ let [l:info, l:loc] = ale#util#FindItemAtCursor(l:buffer)
+
+ if empty(l:loc)
+ call ale#hover#Show(
+ \ l:buffer,
+ \ l:pos[1],
+ \ l:pos[2],
+ \ {'truncated_echo': 1},
+ \)
+ endif
endif
endfunction