Skip to content

Commit

Permalink
Merge pull request #2284 from jqno/master
Browse files Browse the repository at this point in the history
Fixes javalsp linter
  • Loading branch information
w0rp committed Feb 8, 2019
2 parents b32fdfe + 5ce1e9b commit 800d029
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 19 deletions.
4 changes: 1 addition & 3 deletions ale_linters/java/javalsp.vim
Original file line number Diff line number Diff line change
@@ -1,18 +1,16 @@
" 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_jar', 'javacs.jar')
call ale#Set('java_javalsp_executable', 'java')

function! ale_linters#java#javalsp#Executable(buffer) abort
return ale#Var(a:buffer, 'java_javalsp_executable')
endfunction

function! ale_linters#java#javalsp#Command(buffer) abort
let l:jar = ale#Var(a:buffer, 'java_javalsp_jar')
let l:executable = ale_linters#java#javalsp#Executable(a:buffer)

return ale#Escape(l:executable) . ' -cp ' . l:jar . ' -Xverify:none org.javacs.Main'
return ale#Escape(l:executable) . ' -Xverify:none -m javacs/org.javacs.Main'
endfunction

call ale#linter#Define('java', {
Expand Down
25 changes: 11 additions & 14 deletions doc/ale-java.txt
Original file line number Diff line number Diff line change
Expand Up @@ -79,14 +79,19 @@ g:ale_java_pmd_options *g:ale_java_pmd_options*
javalsp *ale-java-javalsp*

To enable Java LSP linter you need to download and build the vscode-javac
language server from https://github.com/georgewfraser/vscode-javac. Simply
download the source code and then build the plugin using maven:
language server from https://github.com/georgewfraser/java-language-server.
Simply download the source code and then build a distribution:

mvn package
scripts/link_mac.sh

This generates a out/fat-jar.jar file that contains the language server. To
let ALE use this language server you need to set the g:ale_java_javalsp_jar
variable to the absolute path of this jar file.
or

scripts/link_windows.sh

This generates a dist/mac or dist/windows directory that contains the
language server. To let ALE use this language server you need to set the
g:ale_java_javalsp_executable variable to the absolute path of the java
executable in this directory.

g:ale_java_javalsp_executable *g:ale_java_javalsp_executable*
*b:ale_java_javalsp_executable*
Expand All @@ -95,14 +100,6 @@ g:ale_java_javalsp_executable *g:ale_java_javalsp_executable*

This variable can be changed to use a different executable for java.

g:ale_java_javalsp_jar *g:ale_java_javalsp_jar*
*b:ale_java_javalsp_jar*

Type: |String|
Default: `'fat-jar.jar'`

Path to the location of the vscode-javac language server plugin.


===============================================================================
uncrustify *ale-java-uncrustify*
Expand Down
4 changes: 2 additions & 2 deletions test/command_callback/test_javalsp_command_callback.vader
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ After:
call ale#assert#TearDownLinterTest()

Execute(The javalsp callback should return the correct default value):
AssertLinter 'java', ale#Escape('java') . ' -cp javacs.jar -Xverify:none org.javacs.Main'
AssertLinter 'java', ale#Escape('java') . ' -Xverify:none -m javacs/org.javacs.Main'

Execute(The javalsp java executable should be configurable):
let b:ale_java_javalsp_executable = '/bin/foobar'

AssertLinter '/bin/foobar', ale#Escape('/bin/foobar') . ' -cp javacs.jar -Xverify:none org.javacs.Main'
AssertLinter '/bin/foobar', ale#Escape('/bin/foobar') . ' -Xverify:none -m javacs/org.javacs.Main'

0 comments on commit 800d029

Please sign in to comment.