Skip to content

Commit 3d15217

Browse files
committed
Do not naively join arguments; use list instead (fully robust on Windows)
Quoting of arguments containing spaces is now handled centrally Fixes #735
1 parent 1229082 commit 3d15217

File tree

1 file changed

+33
-35
lines changed

1 file changed

+33
-35
lines changed

src/solidlsp/language_servers/eclipse_jdtls.py

Lines changed: 33 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -109,41 +109,39 @@ def __init__(
109109
# TODO: Add "self.runtime_dependency_paths.jre_home_path"/bin to $PATH as well
110110
proc_env = {"syntaxserver": "false", "JAVA_HOME": self.runtime_dependency_paths.jre_home_path}
111111
proc_cwd = repository_root_path
112-
cmd = " ".join(
113-
[
114-
jre_path,
115-
"--add-modules=ALL-SYSTEM",
116-
"--add-opens",
117-
"java.base/java.util=ALL-UNNAMED",
118-
"--add-opens",
119-
"java.base/java.lang=ALL-UNNAMED",
120-
"--add-opens",
121-
"java.base/sun.nio.fs=ALL-UNNAMED",
122-
"-Declipse.application=org.eclipse.jdt.ls.core.id1",
123-
"-Dosgi.bundles.defaultStartLevel=4",
124-
"-Declipse.product=org.eclipse.jdt.ls.core.product",
125-
"-Djava.import.generatesMetadataFilesAtProjectRoot=false",
126-
"-Dfile.encoding=utf8",
127-
"-noverify",
128-
"-XX:+UseParallelGC",
129-
"-XX:GCTimeRatio=4",
130-
"-XX:AdaptiveSizePolicyWeight=90",
131-
"-Dsun.zip.disableMemoryMapping=true",
132-
"-Djava.lsp.joinOnCompletion=true",
133-
"-Xmx3G",
134-
"-Xms100m",
135-
"-Xlog:disable",
136-
"-Dlog.level=ALL",
137-
f'"-javaagent:{lombok_jar_path}"',
138-
f'"-Djdt.core.sharedIndexLocation={shared_cache_location}"',
139-
"-jar",
140-
f'"{jdtls_launcher_jar}"',
141-
"-configuration",
142-
f'"{jdtls_config_path}"',
143-
"-data",
144-
f'"{data_dir}"',
145-
]
146-
)
112+
cmd = [
113+
jre_path,
114+
"--add-modules=ALL-SYSTEM",
115+
"--add-opens",
116+
"java.base/java.util=ALL-UNNAMED",
117+
"--add-opens",
118+
"java.base/java.lang=ALL-UNNAMED",
119+
"--add-opens",
120+
"java.base/sun.nio.fs=ALL-UNNAMED",
121+
"-Declipse.application=org.eclipse.jdt.ls.core.id1",
122+
"-Dosgi.bundles.defaultStartLevel=4",
123+
"-Declipse.product=org.eclipse.jdt.ls.core.product",
124+
"-Djava.import.generatesMetadataFilesAtProjectRoot=false",
125+
"-Dfile.encoding=utf8",
126+
"-noverify",
127+
"-XX:+UseParallelGC",
128+
"-XX:GCTimeRatio=4",
129+
"-XX:AdaptiveSizePolicyWeight=90",
130+
"-Dsun.zip.disableMemoryMapping=true",
131+
"-Djava.lsp.joinOnCompletion=true",
132+
"-Xmx3G",
133+
"-Xms100m",
134+
"-Xlog:disable",
135+
"-Dlog.level=ALL",
136+
f"-javaagent:{lombok_jar_path}",
137+
f"-Djdt.core.sharedIndexLocation={shared_cache_location}",
138+
"-jar",
139+
f"{jdtls_launcher_jar}",
140+
"-configuration",
141+
f"{jdtls_config_path}",
142+
"-data",
143+
f"{data_dir}",
144+
]
147145

148146
self.service_ready_event = threading.Event()
149147
self.intellicode_enable_command_available = threading.Event()

0 commit comments

Comments
 (0)