mirror of
https://github.com/dense-analysis/ale.git
synced 2025-12-27 22:41:10 +08:00
Close #2102 - Add support for the Angular language server
This commit is contained in:
44
test/command_callback/test_angular_command_callback.vader
Normal file
44
test/command_callback/test_angular_command_callback.vader
Normal file
@@ -0,0 +1,44 @@
|
||||
Before:
|
||||
call ale#assert#SetUpLinterTest('html', 'angular')
|
||||
let g:paths = {}
|
||||
|
||||
After:
|
||||
call ale#assert#TearDownLinterTest()
|
||||
unlet g:paths
|
||||
|
||||
Execute(The Angular LSP connection shouldn't be created outside of Angular projects):
|
||||
AssertLSPLanguage 'html'
|
||||
AssertLSPConfig {}
|
||||
AssertLSPProject ''
|
||||
AssertLinterNotExecuted
|
||||
|
||||
Execute(The default command for Angular should be correct):
|
||||
call ale#test#SetFilename('../test-projects/angular/test.html')
|
||||
let g:paths = {
|
||||
\ 'ngserver': ale#test#GetFilename('../test-projects/angular/node_modules/@angular/language-server/bin/ngserver'),
|
||||
\ 'service': ale#test#GetFilename('../test-projects/angular/node_modules/@angular/language-service'),
|
||||
\ 'typescript': ale#test#GetFilename('../test-projects/angular/node_modules/typescript'),
|
||||
\}
|
||||
|
||||
AssertLSPLanguage 'html'
|
||||
AssertLSPProject ale#test#GetFilename('../test-projects/angular')
|
||||
AssertLinter g:paths.ngserver, ale#Escape(g:paths.ngserver)
|
||||
\ . ' --ngProbeLocations ' . ale#Escape(g:paths.service)
|
||||
\ . ' --tsProbeLocations ' . ale#Escape(g:paths.typescript)
|
||||
\ . ' --stdio'
|
||||
|
||||
Execute(It should be possible to use the global ngserver):
|
||||
let b:ale_html_angular_use_global = 1
|
||||
|
||||
call ale#test#SetFilename('../test-projects/angular/test.html')
|
||||
let g:paths = {
|
||||
\ 'service': ale#test#GetFilename('../test-projects/angular/node_modules/@angular/language-service'),
|
||||
\ 'typescript': ale#test#GetFilename('../test-projects/angular/node_modules/typescript'),
|
||||
\}
|
||||
|
||||
AssertLSPLanguage 'html'
|
||||
AssertLSPProject ale#test#GetFilename('../test-projects/angular')
|
||||
AssertLinter 'ngserver', ale#Escape('ngserver')
|
||||
\ . ' --ngProbeLocations ' . ale#Escape(g:paths.service)
|
||||
\ . ' --tsProbeLocations ' . ale#Escape(g:paths.typescript)
|
||||
\ . ' --stdio'
|
||||
0
test/test-projects/angular/node_modules/@angular/language-server/bin/ngserver
generated
vendored
Normal file
0
test/test-projects/angular/node_modules/@angular/language-server/bin/ngserver
generated
vendored
Normal file
0
test/test-projects/angular/node_modules/@angular/language-service/dummy
generated
vendored
Normal file
0
test/test-projects/angular/node_modules/@angular/language-service/dummy
generated
vendored
Normal file
@@ -343,6 +343,29 @@ Execute(Other files should be jumped to for LSP definition responses):
|
||||
AssertEqual [3, 8], getpos('.')[1:2]
|
||||
AssertEqual {}, ale#definition#GetMap()
|
||||
|
||||
Execute(Newer LocationLink items should be supported):
|
||||
call ale#definition#SetMap({3: {'open_in': 'current-buffer'}})
|
||||
call ale#definition#HandleLSPResponse(
|
||||
\ 1,
|
||||
\ {
|
||||
\ 'id': 3,
|
||||
\ 'result': {
|
||||
\ 'targetUri': ale#path#ToURI(ale#path#Simplify(g:dir . '/completion_dummy_file')),
|
||||
\ 'targetRange': {
|
||||
\ 'start': {'line': 2, 'character': 7},
|
||||
\ },
|
||||
\ },
|
||||
\ }
|
||||
\)
|
||||
|
||||
AssertEqual
|
||||
\ [
|
||||
\ 'edit +3 ' . fnameescape(ale#path#Simplify(g:dir . '/completion_dummy_file')),
|
||||
\ ],
|
||||
\ g:expr_list
|
||||
AssertEqual [3, 8], getpos('.')[1:2]
|
||||
AssertEqual {}, ale#definition#GetMap()
|
||||
|
||||
Execute(Locations inside the same file should be jumped to without using :edit):
|
||||
call ale#definition#SetMap({3: {'open_in': 'current-buffer'}})
|
||||
call ale#definition#HandleLSPResponse(
|
||||
|
||||
Reference in New Issue
Block a user