victorolinasc

victorolinasc

Here I come again about the Language Server Protocol :slight_smile:

I’ve seen support for some core language features in editors lag a bit behind the releases of the language. It seems a given that most recent languages are putting some effort on the language server protocol as a means to unite the “experience” of editing source code in any editor.

Rust, JavaScript, Java just to name a few… Even Erlang has a language server in development in its core Github organization (sourcer). There is a huge list now on langserver.org.

The advantages, in my opinion, are these:

  • If you like Atom, VS Code, Emacs, Vim, IntelliJ and etc… it is easier to plug the language server with the editor frontend than to create your own language analyser, which will probably lag behind new features. Alchemist-server and elixir-sense are awesome projects (which I am really grateful) but they usually lag behind in support because they are not core.
  • You would probably get support for more editors that are not “officially supported”.
  • New language features would “automatically” be supported in the editors (like formatting, new core syntax like, say, “with” and so on).

The obvious disadvantage is that it would make the core team responsible for another piece of source code.

Even though, if we had good core Erlang and Elixir language servers, the experience in any editor that supports it would be awesome.

Anyway, it is just something that is on my mind for a while and I hope on the minds of more people.

Showing Posts 1 to 10

gon782

gon782

https://github.com/JakeBecker/elixir-ls

ElixirLS works well and it’s up to other editors to simply support the language server protocol if they want to tag along. I don’t know that we need it to be part of the core team and I think unless the person/people working on it gets paid specifically for that it doesn’t necessarily make a difference.

dsissitka

dsissitka

ElixirLS is still a little rough around the edges. For example, completion is broken in vim:

https://github.com/JakeBecker/elixir-ls/issues/40

gon782

gon782

It seems vim-lsp is misusing the protocol in that case according to the issue. ElixirLS working fine with VS Code (which uses the protocol correctly, presumably) would indicate that’s true.

dsissitka

dsissitka

Perhaps, but that wouldn’t explain why it doesn’t work with LanguageClient-neovim. :slight_smile:

cs-victor-nascimento

cs-victor-nascimento

Elixir-ls is a really awesome project. The thing is it will never get support on time of release new versions.

I still think that making it a core project would allow the project to evolve along with the language itself. Right now, Elixir-ls is awesome but not perfect and it is based on elixir-sense which is a project of analyzing the core AST. This kind of task feels to me like part of the core language.

Anyway, I think all the work we have here already is really nice. Just hoping for it to become even better.

michalmuskala

michalmuskala

There’s a saying that things go to stdlib to die - it’s very hard to develop or change libraries when they are in standard library, because of the slower release rate. Elixir-ls is still very well into development phase, changes often and implements new features all the time. Even because of this, it’s not a good candidate to include in core. Maybe once it stabilises, this should be revisited, but I’m convinced now it’s not a good time for this.

mbuhot

mbuhot

In the transition from 1.5 → 1.6 was there anything unsupported by ElixirLS? I recall ElixirLS prompting me to update to 1.6 before it was officially released to get formatter support.

gon782

gon782

Indeed that was the case.

edmz

edmz

I agree with you, but I got the impression that @victorolinasc suggested that a LSP server was adopted as a core project, not merged into stdlib. Like how GenStage/Flow are (IIRC).

JakeBecker

JakeBecker

Hi all,

First, thanks for the support on ElixirLS, feels good to see people use and appreciate it :slight_smile: I agree with @michalmuskala that it doesn’t belong as part of Elixir core for the time being. Unless that means someone (not me) is going to start working on it full time, it would probably end up slowing the release cycle without much benefit. Also, it seems to me to be a little too broad to be a “core” library, since it pulls in dependencies like JSON and Elixir Sense which would then need to be core projects too, I think.

The core Elixir team have been supportive of the project, in particular helping me add diagnostic returns to the Mix compilers in Elixir 1.6. So if it really does need support from the core team in the future we can continue to make that happen :slight_smile:

— All posts loaded —

Where Next? Top

Trending in Discussions Top

AstonJ
The obligatory hello world thread! Who are you and where are you from? :stuck_out_tongue:
4663 61218 595
New
cblavier
Hey there, It’s been more than a year since we started using LiveView as our main UI library and building a whole library of UI componen...
515 12931 101
New
wmnnd
Hey folks, I wanted to share with you a project I’ve been working on for a while: It’s an Open Source (AGPLv3) newsletter tool. Think Ma...
New
raa-ziq
Hi everyone :waving_hand: I wanted to share something I’ve been building — NowBlind, a random chat app designed to help people discover ...
New
sntran
In my third year of college, around 2010, I found Erlang. A few years later, I found Elixir. I liked the ideas at once: many small proces...
New
gtcode
I’ve been tinkering with Lynx (by José) via hold_ledger. I used AI to write the code, a separate specification, the tests, and the Lean p...
New
Ganna
Hi everyone, I have 8 years of production experience with Erlang/OTP and I’m just starting to get to know Elixir. What would you learn f...
New

Other Trending Topics Top

dominicletz
Hey there, I haven’t seen a list of useful Elixir specific skills for the popular AI tools yet so I’m starting one here with my first. ...
New
mudasobwa
I fully migrated to my own harness from Anthropic/Gemini and I think it’s time to share it. Welcome DSH, the DeepSeek Harness, fully writ...
New
KristerV
Hey. Is there anyone here who creates agents in their apps? Not talking about using agents, but creating them. I’m finding it pretty diff...
New
OndrejValenta
(I just needed to vent somewhere and LinkedIn is full of hope, or hype, I’m not sure which exactly) AI dream has many faces, but general...
New
kip
Localize is the next generation localisation library for Elixir. Think of it as ex_cldr version 3.0. The first version will be released ...
New
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews