Skip to content

Add Elixir support via ElixirLS#142

Merged
LakshyAAAgrawal merged 2 commits intomicrosoft:mainfrom
LakshyAAAgrawal:feat/elixir-support
Apr 13, 2026
Merged

Add Elixir support via ElixirLS#142
LakshyAAAgrawal merged 2 commits intomicrosoft:mainfrom
LakshyAAAgrawal:feat/elixir-support

Conversation

@LakshyAAAgrawal
Copy link
Copy Markdown
Collaborator

Summary

Adds Elixir language support to multilspy using ElixirLS.

Based on #118 by @sergchernata -- original commit preserved. This PR builds on top with fixes for integration issues.

What works

  • Go-to-definition
  • Document symbols
  • Hover
  • References
  • Workspace symbols
  • Comprehensive test suite with inline Elixir test projects

Original work by @sergchernata

  • ElixirLS server class with PATH detection + download fallback
  • Initialize params with Elixir-specific settings
  • Async and sync test suites covering symbols, definitions, hover, references, error handling

Fixes applied on top

  • Download URLs: pinned to v0.30.0 release instead of broken latest/download/v0.28.0 pattern
  • Windows platform ID: windows-x64 -> win-x64 (matching multilspy PlatformId enum)
  • Install directory: use MultilspySettings instead of package static/
  • Config support: add server_binary/server_install_dir support
  • Cleanup: try/finally in start_server, use send.initialize() instead of send_request()
  • Tests: remove invalid config keys (request_timeout, completions_timeout)
  • language_server.py: handle None response from request_definition (LSP spec fix), revert whitespace-only changes

Closes #118

@LakshyAAAgrawal LakshyAAAgrawal force-pushed the feat/elixir-support branch 3 times, most recently from 125a6ab to f66de5d Compare April 11, 2026 02:15
@LakshyAAAgrawal LakshyAAAgrawal force-pushed the feat/elixir-support branch 3 times, most recently from 9e1b997 to 7c5e0b0 Compare April 12, 2026 01:45
@LakshyAAAgrawal LakshyAAAgrawal force-pushed the feat/elixir-support branch 3 times, most recently from 1623930 to 6978bb6 Compare April 12, 2026 20:18
- Fix download URLs: pinned to v0.30.0 release instead of broken
  latest/download/v0.28.0 pattern that 404s when latest changes
- Fix Windows platform ID: windows-x64 -> win-x64 (matching multilspy's
  PlatformId enum)
- Use MultilspySettings install dir instead of package static/
- Add server_binary/server_install_dir config support
- Add try/finally for proper cleanup in start_server
- Use send.initialize() instead of send_request("initialize")
- Remove invalid config keys (request_timeout, completions_timeout)
  from tests
- Revert whitespace-only changes to language_server.py
- Keep the None response handler for request_definition (LSP spec fix)
- Add .gitignore entry for elixir_language_server/static/
@LakshyAAAgrawal LakshyAAAgrawal merged commit 6f4c0b7 into microsoft:main Apr 13, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants