summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--autoload/ale/definition.vim2
-rw-r--r--test/test_go_to_definition.vader13
2 files changed, 14 insertions, 1 deletions
diff --git a/autoload/ale/definition.vim b/autoload/ale/definition.vim
index a3bfcd17..a17eb2e7 100644
--- a/autoload/ale/definition.vim
+++ b/autoload/ale/definition.vim
@@ -22,7 +22,7 @@ function! ale#definition#HandleTSServerResponse(conn_id, response) abort
\&& has_key(s:go_to_definition_map, a:response.request_seq)
let l:options = remove(s:go_to_definition_map, a:response.request_seq)
- if get(a:response, 'success', v:false) is v:true
+ if get(a:response, 'success', v:false) is v:true && !empty(a:response.body)
let l:filename = a:response.body[0].file
let l:line = a:response.body[0].start.line
let l:column = a:response.body[0].start.offset
diff --git a/test/test_go_to_definition.vader b/test/test_go_to_definition.vader
index 5bd75675..6af97099 100644
--- a/test/test_go_to_definition.vader
+++ b/test/test_go_to_definition.vader
@@ -56,6 +56,19 @@ Execute(Failed definition responses should be handled correctly):
\)
AssertEqual {}, ale#definition#GetMap()
+Execute(Failed definition responses with no files should be handled correctly):
+ call ale#definition#SetMap({3: {'open_in_tab': 0}})
+ call ale#definition#HandleTSServerResponse(
+ \ 1,
+ \ {
+ \ 'command': 'definition',
+ \ 'request_seq': 3,
+ \ 'success': v:true,
+ \ 'body': [],
+ \ }
+ \)
+ AssertEqual {}, ale#definition#GetMap()
+
Given typescript(Some typescript file):
foo
somelongerline