summaryrefslogtreecommitdiff
path: root/ale_linters/javascript/tsserver.vim
diff options
context:
space:
mode:
authorAlvin Chan <aschan@gmail.com>2018-06-13 17:35:52 -0700
committerAlvin Chan <aschan@gmail.com>2018-06-13 17:37:20 -0700
commitbd4da116eeb2352ce6a97e82c651fc4a65559dac (patch)
tree38c35871078c6a25d1c6e1020244aacd5a2b596f /ale_linters/javascript/tsserver.vim
parent10e1545630943aa98320b62f97f79a6f85340e51 (diff)
downloadale-bd4da116eeb2352ce6a97e82c651fc4a65559dac.zip
Add TSServer support for JavaScript files
Diffstat (limited to 'ale_linters/javascript/tsserver.vim')
-rw-r--r--ale_linters/javascript/tsserver.vim26
1 files changed, 26 insertions, 0 deletions
diff --git a/ale_linters/javascript/tsserver.vim b/ale_linters/javascript/tsserver.vim
new file mode 100644
index 00000000..62dded10
--- /dev/null
+++ b/ale_linters/javascript/tsserver.vim
@@ -0,0 +1,26 @@
+" Author: Chaucerbao, w0rp <devw0rp@gmail.com>
+" Description: tsserver integration for ALE
+
+call ale#Set('javascript_tsserver_executable', 'tsserver')
+call ale#Set('javascript_tsserver_config_path', '')
+call ale#Set('javascript_tsserver_use_global', get(g:, 'ale_use_global_executables', 0))
+
+" These functions need to be defined just to comply with the API for LSP.
+function! ale_linters#javascript#tsserver#GetProjectRoot(buffer) abort
+ return ''
+endfunction
+
+function! ale_linters#javascript#tsserver#GetExecutable(buffer) abort
+ return ale#node#FindExecutable(a:buffer, 'javascript_tsserver', [
+ \ 'node_modules/.bin/tsserver',
+ \])
+endfunction
+
+call ale#linter#Define('javascript', {
+\ 'name': 'tsserver',
+\ 'lsp': 'tsserver',
+\ 'executable_callback': 'ale_linters#javascript#tsserver#GetExecutable',
+\ 'command_callback': 'ale_linters#javascript#tsserver#GetExecutable',
+\ 'project_root_callback': 'ale_linters#javascript#tsserver#GetProjectRoot',
+\ 'language': '',
+\})