Expert: LSP for Elixir

241 pointsposted 5 months ago
by pimienta

46 Comments

sorentwo

5 months ago

The architecture is remarkable. The lengths they’ve gone to for language version compatibility, and protecting app namespaces is especially impressive.

https://github.com/elixir-lang/expert/blob/main/pages/archit...

nesarkvechnep

5 months ago

What are namespaces in Elixir?

jorams

5 months ago

Namespaces aren't so much a concept in Elixir, but this refers to the names used for things like modules. Expert will rewrite the code of its "engine" so that the engine's code and dependencies and those of the application it is embedded into don't overlap.

ashton314

5 months ago

Oo I’m excited for this. The old official language server is fine—it does its job on most of the code bases I’ve worked on, but occasionally I will do something funny that makes the compiler slow down and that pummels the LS performance. I hope this works out some of the kinks that occasionally would make elixir-ls slow.

mtndew4brkfst

5 months ago

Nit: there has never been an official LSP implementation until now, only community-authored. Even now no Dashbit employees or language core members are directly involved in this project in an ongoing basis.

IMO that contributes powerfully to the quality of the experiences of using any of the options.

gonglexin

5 months ago

I’ve been switching between different LSP implementations for Elixir—ElixirLS, Lexical, next-ls—and have been following Expert for a while. Really looking forward to trying it out!

That said, the only thing that feels a bit off to me is the name “Expert.” It comes across slightly arrogant or presumptuous—like it’s implying it’s the only “expert” in the room. Maybe something more neutral would’ve been better?

Still, excited to see what the official tooling brings!

lionkor

5 months ago

It's not an AI tool. It's an LSP. It is the expert in the room, because it's not a random word generator, not smart, it just follows the rules that the language has.

phinnaeus

5 months ago

How did you find out about it in the first place? I remember seeing the Elixir blog post announcing the LSP project ages ago and then nothing since then.

buzzerbetrayed

5 months ago

Do you frequent elixirforum.com? That’s where the elixir community resides. Jose and Chris post frequently there. As well as maintainers of popular libraries.

atonse

5 months ago

I found the name to be perfect. Just a little fun. It also goes with the ex-prefix you see in libs sometimes.

heeton

5 months ago

You're overthinking it. I'd rather have interesting than milquetoast.

SwiftyBug

5 months ago

How about "Fairly Knowledgeable, Always Humbly Ready to Learn from Others"?

FKAHRLO for short.

vendiddy

5 months ago

how about "NotExpert"

NeutralForest

5 months ago

Cool to see there's a long term plan for the language and the ecosystem!

epiccoleman

5 months ago

Oh I'm excited for this. Editor support for elixir has never been quite as good as I'd like. I'm really happy to see they're investing in this - no lang with as consistently great a developer experience as elixir should be without a proper, official, well supported lang server.

Can't wait to try it out!

atonse

5 months ago

Excited to see this after the blog post a year ago – I didn't realize they were working out in the open, because I was wondering how that project was going.

Any news on when we can start to use it in our editors?

Jtsummers

5 months ago

> Any news on when we can start to use it in our editors?

https://github.com/elixir-lang/expert/blob/main/pages/instal...

atonse

5 months ago

I followed the zed instructions and now I don't get any output anywhere. Almost as if it just stopped working.

Jtsummers

5 months ago

I've been using it on Zed since they added support (changed changed my LSP for Elixir to be expert, it autoloaded it). It's been a bit unstable so I'm not surprised you're not seeing anything, you can check the status of running LSPs and restart them manually. I've had to do that too often to like working with it so I plan to switch back and wait a few more weeks to try it again.

st3fan

5 months ago

What does "official" mean? Is it an official elixir-language project? I don't see Jose Valim as one the contributors.

andyleclair

5 months ago

Yes, it is, as you can see by being under the `elixir-lang` github org

DrBenCarson

5 months ago

“Official” means built by the creators of Elixir itself

Elixir has more contributors than just Jose (though he is the OG / creator / leader)

mtndew4brkfst

5 months ago

As with my comment in another tree, no, none of the Elixir core team or Dashbit employees are directly involved with this effort, though they may be advising informally and will likely submit a PR here and there.

https://dashbit.co/#team https://elixir-lang.org/development.html#team https://github.com/elixir-lang/expert/graphs/contributors

st3fan

5 months ago

I'm a bit surprised by that. Isn't an LSP for a language like Elixir a close integration with the runtime, compiler, etc?

mtndew4brkfst

5 months ago

In an ideal world, yes, my belief is that that produces the best results.

user

5 months ago

[deleted]

vittore

5 months ago

Interesting choice to use just

mtndew4brkfst

5 months ago

It has both a justfile and a makefile at the root, even. Most of us seem to want to use it to throw make away entirely.

That said, I consider `just` very language-agnostic and useful because of that, and I consider mix pretty bad at any workflow needs that isn't directly concerned with BEAM.

zamalek

5 months ago

It's not technically a make replacement (make does do things like incremental build management etc.), but it just goes to show how bad the DX of make is.

0x457

5 months ago

IMO 'just' replaces make where make shouldn't be used - generic task runner.

nesarkvechnep

5 months ago

Correct. Make should be used with the filesystem, minimising PHONY.

MangoToupe

5 months ago

I think it's hard for me to name better software than make. TeX, maybe? that seems like an insanely high bar to clear.

mtndew4brkfst

5 months ago

I would say there's an ocean of software with better UX than those two, so it all comes down to what axis you measure on.

keeganpoppen

5 months ago

i'm a pretty big fan of just, personally, but do not consider that to be the world's most well-considered position by any means...

nivertech

5 months ago

No MCP support?

0x696C6961

5 months ago

Wouldn't it make more sense to have a single MCP -> LSP adapter rather than having each LSP implement it?

nivertech

5 months ago

Makes sense, except:

1. too many layers and worse DX

2. harder realtime updates

buzzerbetrayed

5 months ago

Have you tried Todewave? By far the best DX I’ve seen

benjreinhart

5 months ago

Woo super excited for this. Is anyone working on the official vscode extension so we don't have to build and hook that up ourselves, or is that up for grabs still?