summaryrefslogtreecommitdiff
path: root/ale_linters/java/javalsp.vim
diff options
context:
space:
mode:
authorHoracio Sanson <horacio@allm.net>2019-06-05 00:31:56 +0900
committerHoracio Sanson <horacio@allm.net>2019-06-05 00:50:23 +0900
commit5ce97f8cdb285b86a4891fde6dcd14283bc2756f (patch)
treea3096530d1c298c4be7a13beb53df0cf17ebdd8e /ale_linters/java/javalsp.vim
parent42a1fc2d29d710687504043dbb746eefb8248781 (diff)
downloadale-5ce97f8cdb285b86a4891fde6dcd14283bc2756f.zip
Fix javalsp command callback.
The command used to invoke the language server is missing some options to include additional java modules. Without these modules the server was not working properly. The correct command can be found in a `launcher` script on the same directory the `java` executable for the language server is found. This commit changes the docs to prefer the launcher script over the java executable. For backward compatibility it also fixes the command invocation in case the java executable is configured.
Diffstat (limited to 'ale_linters/java/javalsp.vim')
-rw-r--r--ale_linters/java/javalsp.vim22
1 files changed, 20 insertions, 2 deletions
diff --git a/ale_linters/java/javalsp.vim b/ale_linters/java/javalsp.vim
index a327363d..eea3f48b 100644
--- a/ale_linters/java/javalsp.vim
+++ b/ale_linters/java/javalsp.vim
@@ -1,7 +1,7 @@
" Author: Horacio Sanson <https://github.com/hsanson>
" Description: Support for the Java language server https://github.com/georgewfraser/vscode-javac
-call ale#Set('java_javalsp_executable', 'java')
+call ale#Set('java_javalsp_executable', 'launcher')
function! ale_linters#java#javalsp#Executable(buffer) abort
return ale#Var(a:buffer, 'java_javalsp_executable')
@@ -10,7 +10,25 @@ endfunction
function! ale_linters#java#javalsp#Command(buffer) abort
let l:executable = ale_linters#java#javalsp#Executable(a:buffer)
- return ale#Escape(l:executable) . ' -Xverify:none -m javacs/org.javacs.Main'
+ if fnamemodify(l:executable, ':t') is# 'java'
+ " For backward compatibility.
+ let l:cmd = [
+ \ ale#Escape(l:executable),
+ \ '--add-exports jdk.compiler/com.sun.tools.javac.api=javacs',
+ \ '--add-exports jdk.compiler/com.sun.tools.javac.code=javacs',
+ \ '--add-exports jdk.compiler/com.sun.tools.javac.comp=javacs',
+ \ '--add-exports jdk.compiler/com.sun.tools.javac.main=javacs',
+ \ '--add-exports jdk.compiler/com.sun.tools.javac.tree=javacs',
+ \ '--add-exports jdk.compiler/com.sun.tools.javac.model=javacs',
+ \ '--add-exports jdk.compiler/com.sun.tools.javac.util=javacs',
+ \ '--add-opens jdk.compiler/com.sun.tools.javac.api=javacs',
+ \ '-m javacs/org.javacs.Main',
+ \]
+
+ return join(l:cmd, ' ')
+ else
+ return ale#Escape(l:executable)
+ endif
endfunction
call ale#linter#Define('java', {