diff options
author | w0rp <devw0rp@gmail.com> | 2018-08-16 14:19:12 +0100 |
---|---|---|
committer | w0rp <devw0rp@gmail.com> | 2018-08-16 14:19:12 +0100 |
commit | ad8b26051913c8bcd58e362d45a9781697904bf9 (patch) | |
tree | 4829e633451e1c0102eebaa8f51e1ffffba1acde | |
parent | faaa11567a487c4d9752df24eadf00d314da5d2a (diff) | |
download | ale-ad8b26051913c8bcd58e362d45a9781697904bf9.zip |
Fix #1816 - Fix a type error in the initialize message handler
-rw-r--r-- | autoload/ale/lsp.vim | 3 | ||||
-rw-r--r-- | test/lsp/test_other_initialize_message_handling.vader | 7 |
2 files changed, 9 insertions, 1 deletions
diff --git a/autoload/ale/lsp.vim b/autoload/ale/lsp.vim index cfc89199..98160995 100644 --- a/autoload/ale/lsp.vim +++ b/autoload/ale/lsp.vim @@ -256,7 +256,8 @@ function! ale#lsp#HandleOtherInitializeResponses(conn, response) abort endif if get(a:response, 'method', '') is# '' - if has_key(get(a:response, 'result', {}), 'capabilities') + if type(get(a:response, 'result')) is v:t_dict + \&& has_key(a:response.result, 'capabilities') call s:UpdateCapabilities(a:conn, a:response.result.capabilities) for [l:dir, l:project] in l:uninitialized_projects diff --git a/test/lsp/test_other_initialize_message_handling.vader b/test/lsp/test_other_initialize_message_handling.vader index 45457979..f5e0f1da 100644 --- a/test/lsp/test_other_initialize_message_handling.vader +++ b/test/lsp/test_other_initialize_message_handling.vader @@ -181,3 +181,10 @@ Execute(Disabled capabilities should be recognised correctly): \ }, \ }, \ b:conn + +Execute(Results that are not dictionaries should be handled correctly): + call ale#lsp#HandleOtherInitializeResponses(b:conn, { + \ 'jsonrpc': '2.0', + \ 'id': 1, + \ 'result': v:null, + \}) |