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.
1 " Author: w0rp <devw0rp@gmail.com>
2 " Description: tsserver integration for ALE
4 call ale#Set('html_angular_executable', 'ngserver')
5 call ale#Set('html_angular_use_global', get(g:, 'ale_use_global_executables', 0))
7 function! ale_linters#html#angular#GetProjectRoot(buffer) abort
8 return ale#path#Dirname(
9 \ ale#path#FindNearestDirectory(a:buffer, 'node_modules')
13 function! ale_linters#html#angular#GetExecutable(buffer) abort
17 function! ale_linters#html#angular#GetCommand(buffer) abort
18 let l:language_service_dir = ale#path#Simplify(
19 \ ale#path#FindNearestDirectory(
21 \ 'node_modules/@angular/language-service'
25 if empty(l:language_service_dir)
29 let l:language_service_dir = fnamemodify(l:language_service_dir, ':h')
30 let l:typescript_dir = ale#path#Simplify(
31 \ fnamemodify(l:language_service_dir, ':h:h')
34 let l:script = ale#path#FindExecutable(a:buffer, 'html_angular', [
35 \ 'node_modules/@angular/language-server/bin/ngserver',
36 \ 'node_modules/@angular/language-server/index.js',
39 if !filereadable(l:script)
43 return ale#Escape('node') . ' ' . ale#Escape(l:script)
44 \ . ' --ngProbeLocations ' . ale#Escape(l:language_service_dir)
45 \ . ' --tsProbeLocations ' . ale#Escape(l:typescript_dir)
49 call ale#linter#Define('html', {
51 \ 'aliases': ['angular-language-server', 'angularls'],
53 \ 'executable': function('ale_linters#html#angular#GetExecutable'),
54 \ 'command': function('ale_linters#html#angular#GetCommand'),
55 \ 'project_root': function('ale_linters#html#angular#GetProjectRoot'),