summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ale_linters/java/eclipselsp.vim17
-rw-r--r--doc/ale-java.txt14
-rw-r--r--test/command_callback/test_eclipselsp_command_callback.vader18
3 files changed, 36 insertions, 13 deletions
diff --git a/ale_linters/java/eclipselsp.vim b/ale_linters/java/eclipselsp.vim
index c0b476a3..2648893b 100644
--- a/ale_linters/java/eclipselsp.vim
+++ b/ale_linters/java/eclipselsp.vim
@@ -5,6 +5,7 @@ let s:version_cache = {}
call ale#Set('java_eclipselsp_path', ale#path#Simplify($HOME . '/eclipse.jdt.ls'))
call ale#Set('java_eclipselsp_config_path', '')
+call ale#Set('java_eclipselsp_workspace_path', '')
call ale#Set('java_eclipselsp_executable', 'java')
function! ale_linters#java#eclipselsp#Executable(buffer) abort
@@ -89,6 +90,16 @@ function! ale_linters#java#eclipselsp#CommandWithVersion(buffer, version_lines,
return ale_linters#java#eclipselsp#Command(a:buffer, l:version)
endfunction
+function! ale_linters#java#eclipselsp#WorkspacePath(buffer) abort
+ let l:wspath = ale#Var(a:buffer, 'java_eclipselsp_workspace_path')
+
+ if !empty(l:wspath)
+ return l:wspath
+ endif
+
+ return ale#path#Dirname(ale#java#FindProjectRoot(a:buffer))
+endfunction
+
function! ale_linters#java#eclipselsp#Command(buffer, version) abort
let l:path = ale#Var(a:buffer, 'java_eclipselsp_path')
@@ -102,11 +113,11 @@ function! ale_linters#java#eclipselsp#Command(buffer, version) abort
\ '-noverify',
\ '-Xmx1G',
\ '-jar',
- \ ale_linters#java#eclipselsp#JarPath(a:buffer),
+ \ ale#Escape(ale_linters#java#eclipselsp#JarPath(a:buffer)),
\ '-configuration',
- \ ale_linters#java#eclipselsp#ConfigurationPath(a:buffer),
+ \ ale#Escape(ale_linters#java#eclipselsp#ConfigurationPath(a:buffer)),
\ '-data',
- \ ale#java#FindProjectRoot(a:buffer)
+ \ ale#Escape(ale_linters#java#eclipselsp#WorkspacePath(a:buffer))
\ ]
if ale#semver#GTE(a:version, [1, 9])
diff --git a/doc/ale-java.txt b/doc/ale-java.txt
index b61a90a0..4a71d9ef 100644
--- a/doc/ale-java.txt
+++ b/doc/ale-java.txt
@@ -130,7 +130,7 @@ g:ale_java_eclipselsp_path *g:ale_java_eclipselsp_path*
Absolute path to the location of the eclipse.jdt.ls repository folder. Or if
you have VSCode extension installed the absolute path to the VSCode extensions
- folder (e.g. $HOME/.vscode/extensions in Linux).
+ folder (e.g. $HOME/.vscode/extensions/redhat.java-0.4x.0 in Linux).
g:ale_java_eclipselsp_executable *g:ale_java_eclipse_executable*
@@ -154,6 +154,18 @@ g:ale_java_eclipselsp_config_path *g:ale_java_eclipse_config_path
non-writable directory like `/usr/share/java/jdtls`, as is the case when
installed via system package.
+
+g:ale_java_eclipselsp_workspace_path *g:ale_java_eclipselsp_workspace_path*
+ *b:ale_java_eclipselsp_workspace_path*
+
+ Type: |String|
+ Default: `''`
+
+ If you have Eclipse installed is good idea to set this variable to the
+ absolute path of the Eclipse workspace. If not set this value will be set to
+ the parent folder of the project root.
+
+
===============================================================================
uncrustify *ale-java-uncrustify*
diff --git a/test/command_callback/test_eclipselsp_command_callback.vader b/test/command_callback/test_eclipselsp_command_callback.vader
index 2d2b4613..f25ed5fc 100644
--- a/test/command_callback/test_eclipselsp_command_callback.vader
+++ b/test/command_callback/test_eclipselsp_command_callback.vader
@@ -61,11 +61,11 @@ Execute(The eclipselsp callback should return the correct default value):
\ '-noverify',
\ '-Xmx1G',
\ '-jar',
- \ '',
+ \ ale#Escape(''),
\ '-configuration',
- \ b:cfg,
+ \ ale#Escape(b:cfg),
\ '-data',
- \ ''
+ \ ale#Escape(ale#path#Simplify(''))
\]
AssertLinter 'java', join(cmd, ' ')
@@ -79,11 +79,11 @@ Execute(The eclipselsp callback should allow custom executable):
\ '-noverify',
\ '-Xmx1G',
\ '-jar',
- \ '',
+ \ ale#Escape(''),
\ '-configuration',
- \ b:cfg,
+ \ ale#Escape(b:cfg),
\ '-data',
- \ ''
+ \ ale#Escape(ale#path#Simplify(''))
\]
AssertLinter '/bin/foobar', join(cmd, ' ')
@@ -97,10 +97,10 @@ Execute(The eclipselsp callback should allow custom configuration path):
\ '-noverify',
\ '-Xmx1G',
\ '-jar',
- \ '',
+ \ ale#Escape(''),
\ '-configuration',
- \ ale#path#Simplify('/home/config'),
+ \ ale#Escape(ale#path#Simplify('/home/config')),
\ '-data',
- \ ''
+ \ ale#Escape(ale#path#Simplify(''))
\]
AssertLinter 'java', join(cmd, ' ')