diff options
author | Horacio Sanson <horacio@allm.net> | 2019-06-05 00:31:56 +0900 |
---|---|---|
committer | Horacio Sanson <horacio@allm.net> | 2019-06-05 00:50:23 +0900 |
commit | 5ce97f8cdb285b86a4891fde6dcd14283bc2756f (patch) | |
tree | a3096530d1c298c4be7a13beb53df0cf17ebdd8e /ale_linters/java | |
parent | 42a1fc2d29d710687504043dbb746eefb8248781 (diff) | |
download | ale-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')
-rw-r--r-- | ale_linters/java/javalsp.vim | 22 |
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', { |