The official Elixir Language Server team
The Elixir programming language has formed a Language Server team to enhance code intelligence tools, consolidate existing implementations, and seek community support, with funding from Fly.io and Livebook.
Read original articleThe Elixir programming language has officially announced the formation of its Language Server team, which includes Jonatan Kłosko, Łukasz Samson, Mitch Hanberg, and Steve Cohen. This team will enhance the code intelligence infrastructure for various tools and editors, with partial funding from Fly.io and Livebook. The Language Server Protocol (LSP), initially developed by Microsoft, facilitates communication between IDEs and programming languages, and Elixir's implementation has evolved since its inception in 2017. The team aims to consolidate the existing three language server implementations—ElixirLS, Next LS, and Lexical—leveraging their respective strengths to create a unified project. Challenges such as technical debt and the complexities of the LSP are acknowledged, with plans to improve the integration of the Elixir compiler and language server functionalities. The team is also seeking community support and sponsorships to further their development efforts. A new project website and social media presence will be established to keep the community informed about progress and updates.
- The Elixir Language Server team has been formed to improve code intelligence tools.
- The team will consolidate three existing language server implementations into one.
- Funding for the project comes from Fly.io and Livebook.
- The complexities of the Language Server Protocol present ongoing challenges.
- Community support and sponsorships are encouraged to aid development efforts.
Related
Elixir for Humans Who Know Python
The article explores transitioning from Python to Elixir, emphasizing Elixir's concurrency, Phoenix framework, LiveView feature, immutability, and pattern matching. It compares Elixir's functionalism and control flow to Python, showcasing Elixir's efficiency for web development.
What's Coming Next for ESLint
ESLint is evolving with version 9.0.0 changes like a new config system, rule API, and language plugins for JSON and Markdown. A core rewrite aims to modernize the API and core for better development and integration.
Modern Emacs TypeScript Web Config
Setting up modern Emacs config for TypeScript web dev includes lsp-mode, Treesitter, Tailwind, TSX support, multiple LSP servers, Corfu completion, flycheck linter, eslint, Tailwind LSP, lsp-doctor, and Emacs LSP Booster.
Building a Wow Server in Elixir
A developer documents building a World of Warcraft private server project, Thistle Tea, with Elixir. Challenges included cryptography, packet handling, and optimization. Utilized MaNGOS data, Shadowburn's code, and Elixir documentation. Implemented player features and database integration. Explored Elixir's benefits in MMO development.
Mastering Ruby Code Navigation: Ruby LSP Enhancements in the First Half of 2024
In early 2024, the Ruby Language Server Protocol improved code navigation, enhancing features like hover and go-to-definition. Rails addon updates facilitate navigation in models, views, and controllers, with ongoing experimental features.
I would love for someone to point to another group of diverse people who have so consistently gotten things right, in the right ways at the right times.
For Example:
1. The language is both expressive, performant and approachable
2. Its best in class when you have strong concurrency / realtime needs
3. Since 1.0 they've declared Elixir "finished" and committed to making few breaking changes.
4. They've instead pushed energy into other important areas like Language Servers, Typing support, Data science / ML capabilities, embedded systems, etc...
5. And have done so while maintaining an extremely friendly and welcoming community with nearly no drama.
Again would love to know who else is worth of this same amount of praise, but to me Jose Valim, Chris McCord, the rest of the Elixir/Phoenix Core Teams and the Community as a whole is in a league of their own.
>This is not news to the Elixir team either: almost every Elixir release within the last 3 years has shipped new code analysis APIs, such as Code.Fragment, with the goal of removing duplication across Language Servers, IEx, and Livebook, as well as reduce their reliance on internal Elixir modules. Most recently, Elixir v1.17 shipped with new APIs to help developers emulate the compiler behaviour.
It is crazy how many things MS/Roslyn team got right.
They were like decade ahead about their red-green trees, compiler as a service/library instead of .exe
Exposing compiler level things which enabled IDE makers or 3rd party ppl who wanted to create tools
https://ericlippert.com/2012/06/08/red-green-trees/
https://github.com/rust-lang/rust-analyzer/blob/master/docs/...
https://stackoverflow.com/questions/8921782/what-are-the-ben...
I’m optimistic that LS will finally be done right, and that should help convince those curious about Elixir to stick around and __actually__ use it.
It should also make it easier to sell decision makers on Elixir as a serious language.
I've had some time to use Lexical recently (one of the alternative LS mentioned) and it's considerably snappier compared to ElixirLS, but it didn't have feature-parity, understandably.
This is really great news.
The LSP story is definitely one of Elixirs big weaknesses. Issues with performance, missing autocomplete, not being able to jump to definitions inside macros, are quite annoying to deal with.
Related
Elixir for Humans Who Know Python
The article explores transitioning from Python to Elixir, emphasizing Elixir's concurrency, Phoenix framework, LiveView feature, immutability, and pattern matching. It compares Elixir's functionalism and control flow to Python, showcasing Elixir's efficiency for web development.
What's Coming Next for ESLint
ESLint is evolving with version 9.0.0 changes like a new config system, rule API, and language plugins for JSON and Markdown. A core rewrite aims to modernize the API and core for better development and integration.
Modern Emacs TypeScript Web Config
Setting up modern Emacs config for TypeScript web dev includes lsp-mode, Treesitter, Tailwind, TSX support, multiple LSP servers, Corfu completion, flycheck linter, eslint, Tailwind LSP, lsp-doctor, and Emacs LSP Booster.
Building a Wow Server in Elixir
A developer documents building a World of Warcraft private server project, Thistle Tea, with Elixir. Challenges included cryptography, packet handling, and optimization. Utilized MaNGOS data, Shadowburn's code, and Elixir documentation. Implemented player features and database integration. Explored Elixir's benefits in MMO development.
Mastering Ruby Code Navigation: Ruby LSP Enhancements in the First Half of 2024
In early 2024, the Ruby Language Server Protocol improved code navigation, enhancing features like hover and go-to-definition. Rails addon updates facilitate navigation in models, views, and controllers, with ongoing experimental features.