Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ if not configs.jls then
default_config = {
cmd = {
"/path/to/jls/dist/lang_server_{linux|mac|windows}.sh",
"-Dorg.javacs.lombokPath=/path/to/lombok.jar",
"-DlombokPath=/path/to/lombok.jar",
},
filetypes = { "java" },
root_dir = lspconfig.util.root_pattern("pom.xml", "build.gradle", "build.gradle.kts", ".java-version", ".git"),
Expand Down
24 changes: 23 additions & 1 deletion dist/launch_linux.sh
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,16 @@ HOST_JAVA_HOME="${JAVA_LSP_HOST_JAVA:-${JAVA_HOME:-}}"
WORKSPACE_ROOT="${JAVA_LSP_WORKSPACE_ROOT:-${PWD}}"
RUNTIMES_FILE="${JAVA_LSP_RUNTIMES_FILE:-${HOME}/.config/jls/runtimes.json}"
RUNTIME_JAVA=""
LOMBOK_PATH=""
JAVA_AGENT=""

for arg in "$@"; do
case "$arg" in
-DlombokPath=*)
LOMBOK_PATH="${arg#-DlombokPath=}"
;;
esac
done

if [ -n "$WORKSPACE_ROOT" ] && [ -r "$RUNTIMES_FILE" ] && command -v python3 >/dev/null 2>&1; then
RUNTIME_JAVA="$(
Expand Down Expand Up @@ -124,4 +134,16 @@ elif [ -n "$HOST_JAVA_HOME" ] && [ -x "$HOST_JAVA_HOME/bin/java" ]; then
JAVA_EXECUTABLE="$HOST_JAVA_HOME/bin/java"
fi

exec "$JAVA_EXECUTABLE" $JLINK_VM_OPTIONS $CLASSPATH_OPTIONS "$@"
if [ -n "$LOMBOK_PATH" ]; then
if [ -r "$LOMBOK_PATH" ]; then
JAVA_AGENT="-javaagent:$LOMBOK_PATH"
else
echo "Warning: ignoring lombok jar (unreadable): $LOMBOK_PATH" >&2
fi
fi

if [ -n "$JAVA_AGENT" ]; then
exec "$JAVA_EXECUTABLE" $JLINK_VM_OPTIONS $JAVA_AGENT $CLASSPATH_OPTIONS "$@"
else
exec "$JAVA_EXECUTABLE" $JLINK_VM_OPTIONS $CLASSPATH_OPTIONS "$@"
fi
4 changes: 2 additions & 2 deletions dist/launch_mac.sh
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,8 @@ RUNTIMES_FILE="${JAVA_LSP_RUNTIMES_FILE:-${HOME}/.config/jls/runtimes.json}"
RUNTIME_JAVA=""
for arg in "$@"; do
case "$arg" in
-Dorg.javacs.lombokPath=*)
LOMBOK_PATH="${arg#-Dorg.javacs.lombokPath=}"
-DlombokPath=*)
LOMBOK_PATH="${arg#-DlombokPath=}"
JAVA_ARGS+=("$arg")
;;
-D*|-X*|-javaagent:*|-Xbootclasspath*|-J*)
Expand Down
24 changes: 23 additions & 1 deletion dist/launch_windows.cmd
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
@echo off
setlocal EnableDelayedExpansion
set JLINK_VM_OPTIONS=^
--add-exports jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED ^
--add-exports jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED ^
Expand All @@ -10,6 +11,15 @@ set JLINK_VM_OPTIONS=^
--add-opens jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED
set CLASSPATH_OPTIONS=-classpath %~dp0classpath\*
set "JAVA_EXECUTABLE=java"
set "LOMBOK_PATH="
set "JAVA_AGENT="

for %%A in (%*) do (
set "ARG=%%~A"
if /I "!ARG:~0,13!"=="-DlombokPath=" (
set "LOMBOK_PATH=!ARG:~13!"
)
)

where python3 >nul 2>nul
if %errorlevel%==0 if defined JAVA_LSP_RUNTIMES_FILE if defined JAVA_LSP_WORKSPACE_ROOT (
Expand Down Expand Up @@ -81,4 +91,16 @@ sys.exit(0)"') do set "JAVA_EXECUTABLE=%%i"
if not "%JAVA_LSP_HOST_JAVA%"=="" if exist "%JAVA_LSP_HOST_JAVA%\\bin\\java.exe" set "JAVA_EXECUTABLE=%JAVA_LSP_HOST_JAVA%\\bin\\java.exe"
if not "%JAVA_HOME%"=="" if exist "%JAVA_HOME%\\bin\\java.exe" set "JAVA_EXECUTABLE=%JAVA_HOME%\\bin\\java.exe"

%JAVA_EXECUTABLE% %JLINK_VM_OPTIONS% %CLASSPATH_OPTIONS% %*
if defined LOMBOK_PATH (
if exist "!LOMBOK_PATH!" (
set "JAVA_AGENT=-javaagent:!LOMBOK_PATH!"
) else (
echo Warning: ignoring lombok jar (unreadable): !LOMBOK_PATH! 1>&2
)
)

if defined JAVA_AGENT (
%JAVA_EXECUTABLE% %JLINK_VM_OPTIONS% %JAVA_AGENT% %CLASSPATH_OPTIONS% %*
) else (
%JAVA_EXECUTABLE% %JLINK_VM_OPTIONS% %CLASSPATH_OPTIONS% %*
)
2 changes: 1 addition & 1 deletion docs/lazyvim-java-lsp.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ local lspconfig = require("lspconfig")
local configs = require("lspconfig.configs")

local JAVA_LSP_LAUNCHER = "/Users/youruser/projects/jls/dist/lang_server_mac.sh"
local LOMBOK_JAR_PATH_ARG = "-Dorg.javacs.lombokPath=/Users/youruser/downloads/lombok.jar"
local LOMBOK_JAR_PATH_ARG = "-DlombokPath=/Users/youruser/downloads/lombok.jar"

local cmd = {
JAVA_LSP_LAUNCHER,
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/org/javacs/JavaCompilerService.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ class JavaCompilerService implements CompilerProvider {

JavaCompilerService(Set<Path> classPath, Set<Path> docPath, Set<String> addExports) {
var cp = new LinkedHashSet<Path>();
var lombokPath = System.getProperty("org.javacs.lombokPath");
var lombokPath = LombokSupport.lombokPath();
if (lombokPath != null) {
cp.add(Paths.get(lombokPath));
}
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/org/javacs/JavaLanguageServer.java
Original file line number Diff line number Diff line change
Expand Up @@ -200,7 +200,7 @@ private Optional<Path> mavenSettings() {
}

private Optional<Path> lombokDocSources() {
var lombokPath = System.getProperty("org.javacs.lombokPath");
var lombokPath = LombokSupport.lombokPath();
if (lombokPath == null || lombokPath.isBlank()) return Optional.empty();
var jar = Paths.get(lombokPath);
var parent = jar.getParent();
Expand Down
10 changes: 9 additions & 1 deletion src/main/java/org/javacs/LombokSupport.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,15 @@
final class LombokSupport {
private LombokSupport() {}

static String lombokPath() {
var path = System.getProperty("lombokPath");
if (path != null && !path.isBlank()) {
return path;
}
return null;
}

static boolean isEnabled() {
return System.getProperty("org.javacs.lombokPath") != null;
return lombokPath() != null;
}
}