summaryrefslogtreecommitdiff
path: root/ale_linters/java
diff options
context:
space:
mode:
authorHoracio Sanson <horacio@allm.net>2019-05-21 13:33:47 +0900
committerHoracio Sanson <horacio@allm.net>2019-05-22 09:23:03 +0900
commit5a8ba7526532f8bd6dde93764cccc5277d568349 (patch)
treec1686b55e2ee666dc3e0226b79aa5cf82a1635d3 /ale_linters/java
parent67d49c75a819aa4e7ded97785a1014ba18f06e5d (diff)
downloadale-5a8ba7526532f8bd6dde93764cccc5277d568349.zip
Fix eclipse.jdt.ls workspace data path.
We were setting the -data parameter to the project root but this caused the language server to fail initialization and synch of gradle dependencies. As consequence ALE failed to work fully on gradle projects. This fix sets the workspace to the parent folder of the project root. Normally this corresponds to the correct Eclipse workspace path. When this is not the case, this fix also allows users to explicitly set the absolute path to the workspace via configuration variable.
Diffstat (limited to 'ale_linters/java')
-rw-r--r--ale_linters/java/eclipselsp.vim17
1 files changed, 14 insertions, 3 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])