Skip to content

Releases: microsoft/multilspy

v0.1.0-auto: Merge pull request #142 from LakshyAAAgrawal/feat/elixir-support

Choose a tag to compare

@github-actions github-actions released this 16 Apr 01:35
6f4c0b7
Add Elixir support via ElixirLS

v0.1.0

Choose a tag to compare

@LakshyAAAgrawal LakshyAAAgrawal released this 16 Apr 01:25
6f4c0b7

This is a major release with new language support, improved configurability, and significant reliability fixes across the board.

✏ New Languages

⦁ PHP via Intelephense (#140) — go-to-definition, document symbols, completions, hover. Requires Node.js. Based on work by Juan Vargas (@v4rgas) (#107).
⦁ Elixir via ElixirLS (#142) — full LSP support including definitions, references, hover, workspace symbols. Requires Elixir + Erlang/OTP. Based on work by Serg Chernata (@sergchernata) (#118). Note: ElixirLS builds from source on first launch, which takes several minutes. Tests are skipped in CI pending resolution of #145.
⦁ C/C++ via clangd (#84, #102, #123) — contributed by Kaushik (@tomorrowCoder), with Windows/macOS support by SunBK201 (@SunBK201) and a Windows fix by Duncan Ogilvie (@mrexodia).

✏ Configurability

⦁ config.server_binary: Point multilspy at a pre-installed language server binary, skipping the automatic download entirely. Useful when you already have the server installed or need a specific version. (#137, based on the idea from J. Simon Richard (@jsimonrichard) in #125)
⦁ config.server_install_dir: Override where multilspy downloads and installs language server artifacts. Defaults to ~/.multilspy/lsp/<server_name>/ instead of writing into the Python package's site-packages directory. (#137, fixes #136, #109)

config = MultilspyConfig.from_dict({
    "code_language": "rust",
    "server_binary": "/usr/local/bin/rust-analyzer",  # skip download
})

✏ Reliability & Infrastructure

⦁ Fixed language server hangs: Switched from create_subprocess_shell to create_subprocess_exec — the language server is now the direct child process, eliminating orphaned processes when the shell wrapper exits. Added 30s timeout to LSP shutdown() request. (#143)
⦁ Fixed JDTLS initialization failures: Removed fragile assertions in request handlers that caused silent errors and aborted initialization on newer JDTLS versions. IntelliCode enabling and ServiceReady wait are now best-effort with timeouts. (#143)
⦁ Fixed resource leaks on exceptions: All language server start_server() context managers now use try/finally to ensure proper shutdown even when user code raises. (#116, by irreg)
⦁ Fixed interrupted download recovery: Language servers now check for the executable instead of the directory, so a crashed download doesn't leave a broken state. (#135)
⦁ Fixed OmniSharp path escaping: Dynamic paths are now properly escaped with shlex.quote(). (#111, by Martin Mirchev (@Marti2203))
⦁ CI/CD overhaul: Python version matrix (3.10, 3.12, 3.14), per-language runtime setup, concurrency groups, 45-minute timeout. (#133, #143)

✏ Upgrades

⦁ Eclipse JDTLS: vscode-java v1.23.0 -> v1.46.0, bundled JRE 17 -> 21, Gradle 7.3.3 -> 7.6.6, Lombok 1.18.30 -> 1.18.39. Fixes macOS ARM64 completions. (#139, based on work by Tim Vergenz (@vergenzt) #126 and Stephen Rayner (@gruckion) #128)
⦁ OmniSharp: Updated to v1.39.13. (#117, by Tom Longhurst (@thomhurst))
⦁ Dart: Added Windows and macOS platform support. (#105, by Marcelo Mendonça Soares (@marcelomendoncasoares))
⦁ TypeScript/JavaScript: Enabled cross-file go-to-definition and references via useSyntaxServer: "never". (#81, by agoel111)
⦁ Ruby: Fixed Solargraph installation bug. (#83, by Michael Usachenko (@themichaelusa))

✏ Breaking Changes

⦁ Install directory moved: Language server artifacts are now downloaded to ~/.multilspy/lsp/<server_name>/ instead of /static/. Existing downloads in the old location will be re-downloaded on first use.
⦁ ProcessLaunchInfo.cmd is now List[str] instead of str. This only affects users who directly instantiate ProcessLaunchInfo (not the public API).

What's Changed

New Contributors

Full Changelog: v0.0.15...v0.1.0

v0.0.15-auto: Merge pull request #99 from microsoft/LakshyAAAgrawal-patch-18

Choose a tag to compare

@github-actions github-actions released this 03 Apr 07:02
e84fa66
Update pyproject.toml

v0.0.15

Choose a tag to compare

@LakshyAAAgrawal LakshyAAAgrawal released this 03 Apr 06:32
e84fa66

What's Changed

New Contributors

Full Changelog: v0.0.14...v0.0.15

v0.0.14-corrected-auto: Merge pull request #74 from microsoft/LakshyAAAgrawal-patch-16

Choose a tag to compare

@github-actions github-actions released this 03 Mar 06:53
8a87c36
Update pyproject.toml

v0.0.14-corrected

Choose a tag to compare

@LakshyAAAgrawal LakshyAAAgrawal released this 03 Mar 03:55
8a87c36

What's Changed

Full Changelog: v0.0.14...v0.0.14-corrected

v0.0.14

Choose a tag to compare

@LakshyAAAgrawal LakshyAAAgrawal released this 03 Mar 03:41
8d78efb

What's Changed

New Contributors

Full Changelog: v0.0.13...v0.0.14

v0.0.13-auto: Merge pull request #65 from microsoft/LakshyAAAgrawal-patch-14

Choose a tag to compare

@github-actions github-actions released this 25 Feb 23:02
3c258d3
Update pyproject.toml to v0.0.13

v0.0.13

Choose a tag to compare

@LakshyAAAgrawal LakshyAAAgrawal released this 25 Feb 22:57
3c258d3

What's Changed

New Contributors

Full Changelog: v0.0.12...v0.0.13

v0.0.12-auto: Merge pull request #57 from microsoft/LakshyAAAgrawal-patch-13

Choose a tag to compare

@github-actions github-actions released this 29 Jan 09:56
517929b
Update pyproject.toml to add ruby and set v to 0.0.12