All patches and comments are welcome. Please squash your changes to logical
commits before using git-format-patch and git-send-email to
patches@git.madduck.net.
If you'd read over the Git project's submission guidelines and adhered to them,
I'd be especially grateful.
2 let g:ale_lsp_next_version_id = 1
4 call ale#test#SetDirectory('/testplugin/test/lsp')
5 call ale#test#SetFilename('foo/bar.ts')
8 call ale#test#RestoreDirectory()
10 Execute(ale#lsp#message#Initialize() should return correct messages):
16 \ 'processId': getpid(),
17 \ 'rootPath': '/foo/bar',
19 \ 'initializationOptions': {'foo': 'bar'},
20 \ 'rootUri': 'file:///foo/bar',
23 \ ale#lsp#message#Initialize('/foo/bar', {'foo': 'bar'}, {})
25 Execute(ale#lsp#message#Initialized() should return correct messages):
26 AssertEqual [1, 'initialized', {}], ale#lsp#message#Initialized()
28 Execute(ale#lsp#message#Shutdown() should return correct messages):
29 AssertEqual [0, 'shutdown'], ale#lsp#message#Shutdown()
31 Execute(ale#lsp#message#Exit() should return correct messages):
32 AssertEqual [1, 'exit'], ale#lsp#message#Exit(),
34 Given typescript(A TypeScript file with 3 lines):
39 Execute(ale#util#GetBufferContents() should return correctly formatted newlines):
40 AssertEqual "Foo()\nBar()\nBaz()\n", ale#util#GetBufferContents(bufnr(''))
42 Execute(ale#lsp#message#DidOpen() should return correct messages):
43 let g:ale_lsp_next_version_id = 12
47 \ 'textDocument/didOpen',
50 \ 'uri': ale#path#ToFileURI(g:dir . '/foo/bar.ts'),
51 \ 'languageId': 'typescript',
53 \ 'text': "Foo()\nBar()\nBaz()\n",
57 \ ale#lsp#message#DidOpen(bufnr(''), 'typescript')
59 Execute(ale#lsp#message#DidChange() should return correct messages):
60 let g:ale_lsp_next_version_id = 34
65 \ 'textDocument/didChange',
68 \ 'uri': ale#path#ToFileURI(g:dir . '/foo/bar.ts'),
71 \ 'contentChanges': [{'text': "Foo()\nBar()\nBaz()\n"}],
74 \ ale#lsp#message#DidChange(bufnr(''))
75 " The version numbers should increment.
78 \ ale#lsp#message#DidChange(bufnr(''))[2].textDocument.version
81 \ ale#lsp#message#DidChange(bufnr(''))[2].textDocument.version
83 Execute(ale#lsp#message#DidSave() should return correct messages):
87 \ 'textDocument/didSave',
90 \ 'uri': ale#path#ToFileURI(g:dir . '/foo/bar.ts'),
94 \ ale#lsp#message#DidSave(bufnr(''), v:false)
96 Execute(ale#lsp#message#DidSave() should return correct message with includeText capability):
100 \ 'textDocument/didSave',
103 \ 'uri': ale#path#ToFileURI(g:dir . '/foo/bar.ts'),
106 \ 'text': ale#util#GetBufferContents(bufnr('')),
109 \ ale#lsp#message#DidSave(bufnr(''), v:true)
111 Execute(ale#lsp#message#DidClose() should return correct messages):
115 \ 'textDocument/didClose',
118 \ 'uri': ale#path#ToFileURI(g:dir . '/foo/bar.ts'),
122 \ ale#lsp#message#DidClose(bufnr(''))
124 Execute(ale#lsp#message#Completion() should return correct messages):
128 \ 'textDocument/completion',
131 \ 'uri': ale#path#ToFileURI(g:dir . '/foo/bar.ts'),
133 \ 'position': {'line': 11, 'character': 33},
136 \ ale#lsp#message#Completion(bufnr(''), 12, 34, '')
138 Execute(ale#lsp#message#Completion() should return correct messages with a trigger charaacter):
142 \ 'textDocument/completion',
145 \ 'uri': ale#path#ToFileURI(g:dir . '/foo/bar.ts'),
147 \ 'position': {'line': 11, 'character': 33},
148 \ 'context': {'triggerKind': 2, 'triggerCharacter': '.'},
151 \ ale#lsp#message#Completion(bufnr(''), 12, 34, '.')
153 Execute(ale#lsp#message#Definition() should return correct messages):
157 \ 'textDocument/definition',
160 \ 'uri': ale#path#ToFileURI(g:dir . '/foo/bar.ts'),
162 \ 'position': {'line': 11, 'character': 33},
165 \ ale#lsp#message#Definition(bufnr(''), 12, 34)
167 Execute(ale#lsp#message#TypeDefinition() should return correct messages):
171 \ 'textDocument/typeDefinition',
174 \ 'uri': ale#path#ToFileURI(g:dir . '/foo/bar.ts'),
176 \ 'position': {'line': 11, 'character': 33},
179 \ ale#lsp#message#TypeDefinition(bufnr(''), 12, 34)
181 Execute(ale#lsp#message#Implementation() should return correct messages):
185 \ 'textDocument/implementation',
188 \ 'uri': ale#path#ToFileURI(g:dir . '/foo/bar.ts'),
190 \ 'position': {'line': 11, 'character': 33},
193 \ ale#lsp#message#Implementation(bufnr(''), 12, 34)
195 Execute(ale#lsp#message#References() should return correct messages):
199 \ 'textDocument/references',
202 \ 'uri': ale#path#ToFileURI(g:dir . '/foo/bar.ts'),
204 \ 'position': {'line': 11, 'character': 33},
205 \ 'context': {'includeDeclaration': v:false},
208 \ ale#lsp#message#References(bufnr(''), 12, 34)
210 Execute(ale#lsp#message#Symbol() should return correct messages):
214 \ 'workspace/symbol',
219 \ ale#lsp#message#Symbol('foobar')
221 Execute(ale#lsp#message#Hover() should return correct messages):
225 \ 'textDocument/hover',
228 \ 'uri': ale#path#ToFileURI(g:dir . '/foo/bar.ts'),
230 \ 'position': {'line': 11, 'character': 33},
233 \ ale#lsp#message#Hover(bufnr(''), 12, 34)
235 Execute(ale#lsp#message#DidChangeConfiguration() should return correct messages):
236 let g:ale_lsp_configuration = {
242 \ 'workspace/didChangeConfiguration',
249 \ ale#lsp#message#DidChangeConfiguration(bufnr(''), g:ale_lsp_configuration)
251 Execute(ale#lsp#message#Diagnostic() should return correct messages):
255 \ 'textDocument/diagnostic',
258 \ 'uri': ale#path#ToFileURI(g:dir . '/foo/bar.ts'),
262 \ ale#lsp#message#Diagnostic(bufnr(''))
264 Execute(ale#lsp#tsserver_message#Open() should return correct messages):
270 \ 'file': ale#path#Simplify(g:dir . '/foo/bar.ts'),
273 \ ale#lsp#tsserver_message#Open(bufnr(''))
275 Execute(ale#lsp#tsserver_message#Close() should return correct messages):
281 \ 'file': ale#path#Simplify(g:dir . '/foo/bar.ts'),
284 \ ale#lsp#tsserver_message#Close(bufnr(''))
286 Execute(ale#lsp#tsserver_message#Change() should return correct messages):
292 \ 'file': ale#path#Simplify(g:dir . '/foo/bar.ts'),
295 \ 'endLine': 1073741824,
297 \ 'insertString': "Foo()\nBar()\nBaz()\n",
300 \ ale#lsp#tsserver_message#Change(bufnr(''))
302 Execute(ale#lsp#tsserver_message#Geterr() should return correct messages):
308 \ 'files': [ale#path#Simplify(g:dir . '/foo/bar.ts')],
311 \ ale#lsp#tsserver_message#Geterr(bufnr(''))
313 Execute(ale#lsp#tsserver_message#Completions() should return correct messages):
319 \ 'file': ale#path#Simplify(g:dir . '/foo/bar.ts'),
323 \ 'includeExternalModuleExports': 1,
326 \ ale#lsp#tsserver_message#Completions(bufnr(''), 347, 12, 'abc', 1)
328 Execute(ale#lsp#tsserver_message#CompletionEntryDetails() should return correct messages):
332 \ 'ts@completionEntryDetails',
334 \ 'file': ale#path#Simplify(g:dir . '/foo/bar.ts'),
337 \ 'entryNames': ['foo', 'bar'],
340 \ ale#lsp#tsserver_message#CompletionEntryDetails(bufnr(''), 347, 12, ['foo', 'bar'])
342 Execute(ale#lsp#tsserver_message#Definition() should return correct messages):
348 \ 'file': ale#path#Simplify(g:dir . '/foo/bar.ts'),
353 \ ale#lsp#tsserver_message#Definition(bufnr(''), 347, 12)
355 Execute(ale#lsp#tsserver_message#TypeDefinition() should return correct messages):
359 \ 'ts@typeDefinition',
361 \ 'file': ale#path#Simplify(g:dir . '/foo/bar.ts'),
366 \ ale#lsp#tsserver_message#TypeDefinition(bufnr(''), 347, 12)
368 Execute(ale#lsp#tsserver_message#Implementation() should return correct messages):
372 \ 'ts@implementation',
374 \ 'file': ale#path#Simplify(g:dir . '/foo/bar.ts'),
379 \ ale#lsp#tsserver_message#Implementation(bufnr(''), 347, 12)
381 Execute(ale#lsp#tsserver_message#References() should return correct messages):
387 \ 'file': ale#path#Simplify(g:dir . '/foo/bar.ts'),
392 \ ale#lsp#tsserver_message#References(bufnr(''), 347, 12)
394 Execute(ale#lsp#tsserver_message#Quickinfo() should return correct messages):
400 \ 'file': ale#path#Simplify(g:dir . '/foo/bar.ts'),
405 \ ale#lsp#tsserver_message#Quickinfo(bufnr(''), 347, 12)