From a56a82f2d29d71d6279ffc8b4362e3e7e6b42cce Mon Sep 17 00:00:00 2001 From: Przemek Pokrywka Date: Sun, 7 Dec 2025 19:16:27 +0100 Subject: [PATCH 1/2] Scala language server: stop requiring old coursier You run coursier with "cs" command nowadays. Users of the new coursier no longer have the old "coursier" command around. Yet, the assertion required its presence. That caused the project creation command to break. After this change: - the assertion passes if "cs" or "coursier" is there ("coursier" was only used to install the new "cs" if it was missing) --- src/solidlsp/language_servers/scala_language_server.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/solidlsp/language_servers/scala_language_server.py b/src/solidlsp/language_servers/scala_language_server.py index 79a0e205..91a31a32 100644 --- a/src/solidlsp/language_servers/scala_language_server.py +++ b/src/solidlsp/language_servers/scala_language_server.py @@ -61,8 +61,8 @@ class ScalaLanguageServer(SolidLanguageServer): os.makedirs(metals_home, exist_ok=True) metals_executable = os.path.join(metals_home, "metals") coursier_command_path = shutil.which("coursier") - assert coursier_command_path is not None, "coursier is not installed or not in PATH." cs_command_path = shutil.which("cs") + assert cs_command_path is not None or coursier_command_path is not None, "coursier is not installed or not in PATH." if not os.path.exists(metals_executable): if not cs_command_path: From ecbcaac67d7cb95939fb43fc1e037e53b64f94bf Mon Sep 17 00:00:00 2001 From: Dominik Jain Date: Mon, 8 Dec 2025 15:27:29 +0100 Subject: [PATCH 2/2] Add assertion for mypy --- src/solidlsp/language_servers/scala_language_server.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/solidlsp/language_servers/scala_language_server.py b/src/solidlsp/language_servers/scala_language_server.py index 91a31a32..a274f652 100644 --- a/src/solidlsp/language_servers/scala_language_server.py +++ b/src/solidlsp/language_servers/scala_language_server.py @@ -66,6 +66,7 @@ class ScalaLanguageServer(SolidLanguageServer): if not os.path.exists(metals_executable): if not cs_command_path: + assert coursier_command_path is not None log.info("'cs' command not found. Trying to install it using 'coursier'.") try: log.info("Running 'coursier setup --yes' to install 'cs'...")