mirror of
https://github.com/dense-analysis/ale.git
synced 2026-01-09 13:02:28 +08:00
Add support for generating essential tsserver messages
This commit is contained in:
@@ -1,3 +1,11 @@
|
||||
Before:
|
||||
silent! cd /testplugin/test/lsp
|
||||
let b:dir = getcwd()
|
||||
|
||||
After:
|
||||
silent execute 'cd ' . fnameescape(b:dir)
|
||||
unlet! b:dir
|
||||
|
||||
Execute(ale#lsp#message#Initialize() should return correct messages):
|
||||
AssertEqual
|
||||
\ [
|
||||
@@ -76,3 +84,65 @@ Execute(ale#lsp#message#DidClose() should return correct messages):
|
||||
\ }
|
||||
\ ],
|
||||
\ ale#lsp#message#DidClose('/foo/bar')
|
||||
|
||||
Execute(ale#lsp#tsserver_message#Open() should return correct messages):
|
||||
silent! noautocmd file foo.ts
|
||||
|
||||
AssertEqual
|
||||
\ [
|
||||
\ 1,
|
||||
\ 'ts@open',
|
||||
\ {
|
||||
\ 'file': b:dir . '/foo.ts',
|
||||
\ }
|
||||
\ ],
|
||||
\ ale#lsp#tsserver_message#Open(bufnr(''))
|
||||
|
||||
Execute(ale#lsp#tsserver_message#Close() should return correct messages):
|
||||
silent! noautocmd file foo.ts
|
||||
|
||||
AssertEqual
|
||||
\ [
|
||||
\ 1,
|
||||
\ 'ts@close',
|
||||
\ {
|
||||
\ 'file': b:dir . '/foo.ts',
|
||||
\ }
|
||||
\ ],
|
||||
\ ale#lsp#tsserver_message#Close(bufnr(''))
|
||||
|
||||
Given typescript(A TypeScript file with 3 lines):
|
||||
foo()
|
||||
bar()
|
||||
baz()
|
||||
|
||||
Execute(ale#lsp#tsserver_message#Change() should return correct messages):
|
||||
silent! noautocmd file foo.ts
|
||||
|
||||
AssertEqual
|
||||
\ [
|
||||
\ 1,
|
||||
\ 'ts@change',
|
||||
\ {
|
||||
\ 'file': b:dir . '/foo.ts',
|
||||
\ 'line': 1,
|
||||
\ 'offset': 1,
|
||||
\ 'endLine': 3,
|
||||
\ 'endOffset': 5,
|
||||
\ 'insertString': "foo()\nbar()\nbaz()",
|
||||
\ }
|
||||
\ ],
|
||||
\ ale#lsp#tsserver_message#Change(bufnr(''))
|
||||
|
||||
Execute(ale#lsp#tsserver_message#Geterr() should return correct messages):
|
||||
silent! noautocmd file foo.ts
|
||||
|
||||
AssertEqual
|
||||
\ [
|
||||
\ 1,
|
||||
\ 'ts@geterr',
|
||||
\ {
|
||||
\ 'files': [b:dir . '/foo.ts'],
|
||||
\ }
|
||||
\ ],
|
||||
\ ale#lsp#tsserver_message#Geterr(bufnr(''))
|
||||
|
||||
@@ -105,6 +105,64 @@ Execute(ale#lsp#CreateMessageData() should create notifications):
|
||||
\ ale#lsp#CreateMessageData([1, 'someNotification', {'foo': 'bar'}])
|
||||
endif
|
||||
|
||||
Execute(ale#lsp#CreateMessageData() should create tsserver notification messages):
|
||||
if has('nvim')
|
||||
AssertEqual
|
||||
\ [
|
||||
\ 0,
|
||||
\ '{"seq": null, "type": "request", "command": "someNotification"}',
|
||||
\ ],
|
||||
\ ale#lsp#CreateMessageData([1, 'ts@someNotification'])
|
||||
AssertEqual
|
||||
\ [
|
||||
\ 0,
|
||||
\ '{"seq": null, "arguments": {"foo": "bar"}, "type": "request", "command": "someNotification"}',
|
||||
\ ],
|
||||
\ ale#lsp#CreateMessageData([1, 'ts@someNotification', {'foo': 'bar'}])
|
||||
else
|
||||
AssertEqual
|
||||
\ [
|
||||
\ 0,
|
||||
\ '{"seq":null,"type":"request","command":"someNotification"}',
|
||||
\ ],
|
||||
\ ale#lsp#CreateMessageData([1, 'ts@someNotification'])
|
||||
AssertEqual
|
||||
\ [
|
||||
\ 0,
|
||||
\ '{"seq":null,"arguments":{"foo":"bar"},"type":"request","command":"someNotification"}',
|
||||
\ ],
|
||||
\ ale#lsp#CreateMessageData([1, 'ts@someNotification', {'foo': 'bar'}])
|
||||
endif
|
||||
|
||||
Execute(ale#lsp#CreateMessageData() should create tsserver messages excepting responses):
|
||||
if has('nvim')
|
||||
AssertEqual
|
||||
\ [
|
||||
\ 1,
|
||||
\ '{"seq": 1, "type": "request", "command": "someMessage"}',
|
||||
\ ],
|
||||
\ ale#lsp#CreateMessageData([0, 'ts@someMessage'])
|
||||
AssertEqual
|
||||
\ [
|
||||
\ 2,
|
||||
\ '{"seq": 2, "arguments": {"foo": "bar"}, "type": "request", "command": "someMessage"}',
|
||||
\ ],
|
||||
\ ale#lsp#CreateMessageData([0, 'ts@someMessage', {'foo': 'bar'}])
|
||||
else
|
||||
AssertEqual
|
||||
\ [
|
||||
\ 1,
|
||||
\ '{"seq":1,"type":"request","command":"someMessage"}',
|
||||
\ ],
|
||||
\ ale#lsp#CreateMessageData([0, 'ts@someMessage'])
|
||||
AssertEqual
|
||||
\ [
|
||||
\ 2,
|
||||
\ '{"seq":2,"arguments":{"foo":"bar"},"type":"request","command":"someMessage"}',
|
||||
\ ],
|
||||
\ ale#lsp#CreateMessageData([0, 'ts@someMessage', {'foo': 'bar'}])
|
||||
endif
|
||||
|
||||
Execute(ale#lsp#ReadMessageData() should read single whole messages):
|
||||
AssertEqual
|
||||
\ ['', [{'id': 2, 'jsonrpc': '2.0', 'result': {'foo': 'barÜ'}}]],
|
||||
|
||||
Reference in New Issue
Block a user