elixir-tools / next-ls

The language server for Elixir that just works. Ready for early adopters!
https://www.elixir-tools.dev/next-ls
MIT License
698 stars 40 forks source link
elixir lsp

Next LS

Documentation GitHub release (latest by SemVer including pre-releases) GitHub all releases GitHub Discussions Discord

The language server for Elixir that just works. 😎

Still in heavy development, but early adopters are encouraged!

Please see the docs to get started.

Related Links

Sponsors

Next LS and elixir-tools are sponsored by a ton of amazing people and companies. I urge you to sponsor if you'd like to see the projects reach their maximum potential 🚀.

https://github.com/sponsors/mhanberg

Platinum + Gold Tier

José ValimYolo Group

Remaining tiers

Christopher GraingerMikkel HøghEthan GundersonSebastian HenaoAlexander KoutmosSimon WolfParker SelbertNoah BetzenShannon SelbertDorian KarterAndré Luiz da Fonsêca Paesjackson millsapsBrett WiseDavid BernheiselQdentityNFIBrokerageRudolf ManusadzhianClark Lindsayv1d3rm3Stephen BusseySuperedKeith GautreauxJean-Luc GeeringJonathan YankovichJamie WrightZach NorrisJoe MartinezMarcøsDan DresselhausMarcel FahleMichael KummAmplifiedThibaut BarrèreDave Lucia0x7fMarcelo DominguezAaron GundersonDicky KuangLeandro PereiraJake Demarest-MaysBatteries IncludedMartideMykolas MankeviciusBrad KilshawVasilis SpilkaBrendon McLeanMike ZornekAlan HeywoodHereTaskRecyclaWojtek MachJoe SweeneyYgor G. SenaPeter Ringelmann

Development

Next LS uses just to coordinate command tasks.

# list all tasks
just --list
# show a fzf finder of all tasks
just choose

# default task, runs `deps compile build-local
just

# install deps
just deps

# install compile
just compile

# start the local server for development in TCP mode
# see editor extension docs for information on how to connect to a server in TCP mode
just start

# run the tests
just test

# build a local burrito'd exe
just build-local

# build burrito'd exes for all platforms
just build-all

Production release

Burrito

Burrito is the classic way of building Next LS, it produces a single executable that fully wraps Elixir, OTP, and your application.

Executables are output to ./burrito_out.

# produces executables for all the targets specified in the `mix.exs` file
just build-all

# produce an executable for a single target
just build-local

Traditional

You can also build Next LS as a traditional Mix release.

just build-plain

Contributing

This project follows Conventional Commits and will "Squash and Merge" pull requests.

This means that you don't necessarily need to write your actual commit messages with Conventional Commits, but the Pull Request title needs to, as it is used as the commit title when squashing and merging. There is a CI check to enforce this.

Conventional Commits are required to use Release Please, which is used to automate the changelog, release, and building/publishing executables.