brainlid
Episode 161 of Thinking Elixir. Language Servers underpin the language specific support we rely on in modern code editors. Lately, there have been new efforts in this area in the Elixir community. We talk with Steve Cohen about his project Lexical LS to learn about his new Elixir Language Server, how long he’s been at it, and what it can do today. We learn about some of the technical challenges when creating a tool like this, and why there’s still room for new projects in this area. Steve explains how Lexical LS is architected and that it is a goal to be easy to contribute to and work on the Lexical project itself. Time to give it a try!
Trending in Podcasts
Praia Labs has the numbers on Phoenix version and Bandit adoption, Sobelow 0.15 is out, and there’s a new book, Elixir for Finance. We al...
New
BEAM There, Done That with Mat Trudel on Building Bandit and the Web Server Running Your Phoenix App
New episode covering Bandit’s engineering in more depth than I’ve seen elsewhere.
Stack trace clarity. One process per connection means ...
New
Part one of two with the WhatsApp developer experience team. This episode covers scale and operations; part two covers tooling and types....
New
Peter announces Pushin.eu, a GitHub competitor hosted in the EU, written in Elixir. Other topics include Phoenix ships security patches s...
New
AtomVM supports GenServer, maps, JSON, Erlang distribution, and via Popcorn - Phoenix LiveView on a microcontroller. No OS, a few hundred...
New
Other Trending Topics
I am happy to introduce the very α version of the new programming language compiled to BEAM.
Welcome Cure.
It has literally three kille...
New
Hobbes is a low-level distributed database for the Elixir programming language.
Hobbes provides a simple, safe, and scalable storage lay...
New
Hi there! We created Gust: A task orchestrator inspired by Airflow.
For those who have never heard about Aiflow, it’s a Python-based wor...
New
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge & Solve.
They are GUI (Emerge) and State management (S...
New
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New
Blogs & Podcasts>Podcasts
Latest on Elixir Forum
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #elixirconf
- #channels
- #exunit
- #discussion
- #code-sync
- #podcasts
- #javascript
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #blog-post
- #elixirconf-us
- #elixir-ls
- #ai
- #phoenix_html
- #iex
- #graphql
- #genstage
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #api
- #forms
- #hex
- #security
- #metaprogramming










Showing Posts 1 to 3- Show Best Posts
- Show All (oldest first)
- Show All (newest first)
stevensonmt
This project just popped up on github as a recommendation for me. It looks interesting and I’ll definitely check out the podcast. I’m curious if anyone has used it with vim and if so, how the setup went.
heatmiser
I am currently struggling to get this installed myself. Keeps crashing on initial load on
do_boot.EDIT:
Adhering to the “lowest common denominator” caveats in the README of Elixir and Erlang versions fixed this for me.
soup
I found it simplest to build my own binary like headmiser says, other wise it wouldn’t boot and swapping project versions backwards seemed more fraught than just building it. Building it was no drama, though the readme says
build/...instead of_build/...for the output dir.It does not support
textDocument/hover(ie “show docs under cursor”) which I use quite a lot. I had a look at adding support but it seems you need to do more than add thedefrequest "textDocument/hover"toLexical.Protocol.Requeststo let clients know the server capabilities, then I had to put it down and go back to workThe completions seemed to be about as quick as ElixirLS.
Function picking from the completion menu are a bit different. ELS shows the full argument spec – including pattern matches (eg:
fill(%S{} = s)plus the function@doc, where as LEX only shows the variable names (fill(s), no@doc, no patterns). However when selecting the function, ELS insertsfill(|)while LEX insertsfill(|s|)which is nice.I have nvim setup to only show LSP/etc when I exit insert mode so I dont find the “real time” nature distracting, others might not enjoy it.
I think the formatter seemed to respect
.formatter.exs, meaning it didn’t stick parens around ecto model fields which I think not possible with ELS last time I checked.Inline credo sounds cool but it failed to build (when built by Lexical on start up), possibly because I self built Lexical.
Will probably check back in on it in a few months, though I have no real complaints with ElixirLS beyond the formatting thing, but I just run
!mix format %instead.