Close #1428 Implement LSP hover-like functionality for tsserver too

This commit is contained in:
w0rp
2018-04-26 21:54:11 +01:00
parent e6fe2d86b8
commit d8d09c2048
4 changed files with 80 additions and 3 deletions

View File

@@ -275,3 +275,16 @@ Execute(ale#lsp#tsserver_message#References() should return correct messages):
\ }
\ ],
\ ale#lsp#tsserver_message#References(bufnr(''), 347, 12)
Execute(ale#lsp#tsserver_message#Quickinfo() should return correct messages):
AssertEqual
\ [
\ 0,
\ 'ts@quickinfo',
\ {
\ 'file': ale#path#Simplify(g:dir . '/foo/bar.ts'),
\ 'line': 347,
\ 'offset': 12,
\ }
\ ],
\ ale#lsp#tsserver_message#Quickinfo(bufnr(''), 347, 12)

View File

@@ -70,6 +70,50 @@ Given python(Some Python file):
somelongerline
bazxyzxyzxyz
Execute(Other messages for the tsserver handler should be ignored):
call ale#hover#HandleTSServerResponse(1, {'command': 'foo'})
Execute(Failed hover responses should be handled correctly):
call ale#hover#SetMap({3: {}})
call ale#hover#HandleTSServerResponse(
\ 1,
\ {'command': 'quickinfo', 'request_seq': 3}
\)
AssertEqual {}, ale#hover#GetMap()
Given typescript(Some typescript file):
foo
somelongerline
bazxyzxyzxyz
Execute(tsserver quickinfo responses will null missing bodies should be handled):
call ale#hover#SetMap({3: {}})
call ale#hover#HandleTSServerResponse(
\ 1,
\ {
\ 'command': 'quickinfo',
\ 'request_seq': 3,
\ 'success': v:true,
\ }
\)
AssertEqual {}, ale#hover#GetMap()
Execute(tsserver quickinfo displayString values should be displayed):
call ale#hover#SetMap({3: {}})
call ale#hover#HandleTSServerResponse(
\ 1,
\ {
\ 'command': 'quickinfo',
\ 'request_seq': 3,
\ 'success': v:true,
\ 'body': {'displayString': 'foo bar'},
\ }
\)
AssertEqual ['foo bar'], g:echo_list
AssertEqual {}, ale#hover#GetMap()
Execute(LSP hover responses with just a string should be handled):
call HandleValidLSPResult({'contents': 'foobar'})