Awesome
Next LS
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
- Introducing Next LS and an elixir-tools update
- The elixir-tools Update Vol. 2
- The elixir-tools Update Vol. 3
- The elixir-tools Update Vol. 4
- The 2023 elixir-tools Update (Vol. 5)
- The elixir-tools Update Vol. 6
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
<!-- gold --><a href="https://github.com/josevalim"><img src="https://avatars.githubusercontent.com/u/9582?u=c00cf4c84840538f31a3a8a46fec9dcc7b0ff132&v=4" width="60px" alt="José Valim" /></a><a href="https://github.com/coingaming"><img src="https://avatars.githubusercontent.com/u/417275?v=4" width="60px" alt="Yolo Group" /></a><!-- gold -->Remaining tiers
<!-- rest --><a href="https://github.com/cigrainger"><img src="https://avatars.githubusercontent.com/u/3984794?u=a5c0dcb824d47065e1175dd6763bfa88a8ebddea&v=4" width="60px" alt="Christopher Grainger" /></a><a href="https://github.com/mikl"><img src="https://avatars.githubusercontent.com/u/10263?v=4" width="60px" alt="Mikkel Høgh" /></a><a href="https://github.com/ethangunderson"><img src="https://avatars.githubusercontent.com/u/101555?v=4" width="60px" alt="Ethan Gunderson" /></a><a href="https://github.com/shenaor"><img src="https://avatars.githubusercontent.com/u/1301504?u=db4b0b5ccafd6637152b3c2df89d120f5730b7a5&v=4" width="60px" alt="Sebastian Henao" /></a><a href="https://github.com/akoutmos"><img src="https://avatars.githubusercontent.com/u/4753634?u=2bfc852e0e6328c4295dfe20cef6abd580907a4d&v=4" width="60px" alt="Alexander Koutmos" /></a><a href="https://github.com/simon-wolf"><img src="https://avatars.githubusercontent.com/u/37507238?u=b0cda69f7276c80f387cd3a225678696fdabab47&v=4" width="60px" alt="Simon Wolf" /></a><a href="https://github.com/sorentwo"><img src="https://avatars.githubusercontent.com/u/270831?u=c67bde0de3da024872fcc25aeb4b26737b0b3b32&v=4" width="60px" alt="Parker Selbert" /></a><a href="https://github.com/chriscrabtree"><img src="https://avatars.githubusercontent.com/u/618489?v=4" width="60px" alt="" /></a><a href="https://github.com/Nezteb"><img src="https://avatars.githubusercontent.com/u/3588798?v=4" width="60px" alt="Noah Betzen" /></a><a href="https://github.com/sorenone"><img src="https://avatars.githubusercontent.com/u/20355819?u=b64646004b2be134b6a50d3b6aa59ebf1439f0db&v=4" width="60px" alt="Shannon Selbert" /></a><a href="https://github.com/dkarter"><img src="https://avatars.githubusercontent.com/u/551858?u=33512b5ebaa7e81bcea0cdd8a15730c622991303&v=4" width="60px" alt="Dorian Karter" /></a><a href="https://github.com/andrepaes"><img src="https://avatars.githubusercontent.com/u/12038420?u=e97378c1322b48d591b54101b590bea284c08423&v=4" width="60px" alt="André Luiz da Fonsêca Paes" /></a><a href="https://github.com/dyackson"><img src="https://avatars.githubusercontent.com/u/6422732?u=29a179b15dbd7a11c130113aa0d480a28984aadf&v=4" width="60px" alt="jackson millsaps" /></a><a href="https://github.com/brettwise"><img src="https://avatars.githubusercontent.com/u/6956600?u=c9a03d111e12545d855163f1888dbc425fafd5b9&v=4" width="60px" alt="Brett Wise" /></a><a href="https://github.com/dbernheisel"><img src="https://avatars.githubusercontent.com/u/643967?u=a8d99b8f74fa44c72f8adbe86c379ae84999fc5c&v=4" width="60px" alt="David Bernheisel" /></a><a href="https://github.com/qdentity"><img src="https://avatars.githubusercontent.com/u/1351994?v=4" width="60px" alt="Qdentity" /></a><a href="https://github.com/NFIBrokerage"><img src="https://avatars.githubusercontent.com/u/20132342?v=4" width="60px" alt="NFIBrokerage" /></a><a href="https://github.com/RudolfMan"><img src="https://avatars.githubusercontent.com/u/53276677?u=90762ca6da7fff3cb7da73366565dd9b38e2a9f5&v=4" width="60px" alt="Rudolf Manusadzhian" /></a><a href="https://github.com/clark-lindsay"><img src="https://avatars.githubusercontent.com/u/47335328?u=12b755dacd158e3d8d15207eed6e5ccd774a5bd3&v=4" width="60px" alt="Clark Lindsay" /></a><a href="https://github.com/v1d3rm3"><img src="https://avatars.githubusercontent.com/u/16581931?u=e703276376052aff67dfa02a4b77bbfd0ec810f4&v=4" width="60px" alt="v1d3rm3" /></a><a href="https://github.com/sb8244"><img src="https://avatars.githubusercontent.com/u/1231659?u=3044396996580f3ce65ec2ff022cb1b210806f65&v=4" width="60px" alt="Stephen Bussey" /></a><a href="https://github.com/getsupered"><img src="https://avatars.githubusercontent.com/u/116007435?v=4" width="60px" alt="Supered" /></a><a href="https://github.com/kgautreaux"><img src="https://avatars.githubusercontent.com/u/39208?v=4" width="60px" alt="Keith Gautreaux" /></a><a href="https://github.com/szTheory"><img src="https://avatars.githubusercontent.com/u/28652?v=4" width="60px" alt="" /></a><a href="https://github.com/jlgeering"><img src="https://avatars.githubusercontent.com/u/388658?u=f3b1f85d7c3ac2b29944b7a762d7cca64336d256&v=4" width="60px" alt="Jean-Luc Geering" /></a><a href="https://github.com/tensiondriven"><img src="https://avatars.githubusercontent.com/u/73313?v=4" width="60px" alt="Jonathan Yankovich" /></a><a href="https://github.com/jwright"><img src="https://avatars.githubusercontent.com/u/35017?u=d22487cb19a9aeee8e0f7d8e39b0a3eaa22566cb&v=4" width="60px" alt="Jamie Wright" /></a><a href="https://github.com/znorris"><img src="https://avatars.githubusercontent.com/u/995047?v=4" width="60px" alt="Zach Norris" /></a><a href="https://github.com/capitalist"><img src="https://avatars.githubusercontent.com/u/1639?v=4" width="60px" alt="Joe Martinez" /></a><a href="https://github.com/ideaMarcos"><img src="https://avatars.githubusercontent.com/u/571086?u=783a2cecfb87b7161b8a6b1a9cf6969b8443eab6&v=4" width="60px" alt="Marcøs" /></a><a href="https://github.com/ddresselhaus"><img src="https://avatars.githubusercontent.com/u/3826669?u=190d6605bce4ccd6f20eb748f2309fd7556a0bce&v=4" width="60px" alt="Dan Dresselhaus" /></a><a href="https://github.com/marcelfahle"><img src="https://avatars.githubusercontent.com/u/181004?u=1aa7274f0026294f11fbad9599409eeb554c4821&v=4" width="60px" alt="Marcel Fahle" /></a><a href="https://github.com/mkumm"><img src="https://avatars.githubusercontent.com/u/158991?u=ead7ed51c9da8018284dadbbb54693d55117e219&v=4" width="60px" alt="Michael Kumm" /></a><a href="https://github.com/amplifiedai"><img src="https://avatars.githubusercontent.com/u/24991093?v=4" width="60px" alt="Amplified" /></a><a href="https://github.com/thbar"><img src="https://avatars.githubusercontent.com/u/10141?u=41c21f0cc2eb57c17dd9533bebad9c4d34bae89d&v=4" width="60px" alt="Thibaut Barrère" /></a><a href="https://github.com/davydog187"><img src="https://avatars.githubusercontent.com/u/1019721?u=66ffce0baadf67e8e8373e29509e0bf3eacb46b5&v=4" width="60px" alt="Dave Lucia" /></a><a href="https://github.com/0x7fdev"><img src="https://avatars.githubusercontent.com/u/109061866?v=4" width="60px" alt="0x7f" /></a><a href="https://github.com/marpo60"><img src="https://avatars.githubusercontent.com/u/952074?u=730be20a88976c3a3a99bdc81fe136991399cd47&v=4" width="60px" alt="Marcelo Dominguez" /></a><a href="https://github.com/jyc"><img src="https://avatars.githubusercontent.com/u/360412?u=15e7b90eb91a3d2b410f7f47461862cb793398ff&v=4" width="60px" alt="" /></a><a href="https://github.com/agundy"><img src="https://avatars.githubusercontent.com/u/2281120?u=281d05e14d23bfc04c31eb84f3651d6598e9a4dc&v=4" width="60px" alt="Aaron Gunderson" /></a><a href="https://github.com/dickykuang"><img src="https://avatars.githubusercontent.com/u/16141983?v=4" width="60px" alt="Dicky Kuang" /></a><a href="https://github.com/leandrocp"><img src="https://avatars.githubusercontent.com/u/36407?v=4" width="60px" alt="Leandro Pereira" /></a><a href="https://github.com/bravely"><img src="https://avatars.githubusercontent.com/u/301293?u=77baebfa40fb5c0327d245f03ad727f155e60e8b&v=4" width="60px" alt="Jake Demarest-Mays" /></a><a href="https://github.com/batteries-included"><img src="https://avatars.githubusercontent.com/u/79177379?v=4" width="60px" alt="Batteries Included" /></a><a href="https://github.com/martide"><img src="https://avatars.githubusercontent.com/u/26238397?v=4" width="60px" alt="Martide" /></a><a href="https://github.com/Neophen"><img src="https://avatars.githubusercontent.com/u/6092928?u=e93fb57e877bf1c1cba76c37b9950e3c4ad66bf3&v=4" width="60px" alt="Mykolas Mankevicius" /></a><a href="https://github.com/bo0tzz"><img src="https://avatars.githubusercontent.com/u/11602424?u=4a175ef1e4ec718b9ddbe5750632631751728214&v=4" width="60px" alt="" /></a><a href="https://github.com/bkilshaw"><img src="https://avatars.githubusercontent.com/u/374054?u=a50465a9eae50cd19a1ee3dee19b54eb8e3b2b70&v=4" width="60px" alt="Brad Kilshaw" /></a><a href="https://github.com/vasspilka"><img src="https://avatars.githubusercontent.com/u/3274419?u=219e349d6cf06c3b9d78e99a0a6275693d8ba480&v=4" width="60px" alt="Vasilis Spilka" /></a><a href="https://github.com/brendon9x"><img src="https://avatars.githubusercontent.com/u/491483?u=0f72389be8c9244c546869695b42a7c014843a2f&v=4" width="60px" alt="Brendon McLean" /></a><a href="https://github.com/zorn"><img src="https://avatars.githubusercontent.com/u/52168?v=4" width="60px" alt="Mike Zornek" /></a><a href="https://github.com/ahey"><img src="https://avatars.githubusercontent.com/u/359225?u=42cb48c4c37b44cca1581775c8013c84427c6a88&v=4" width="60px" alt="Alan Heywood" /></a><a href="https://github.com/heretask"><img src="https://avatars.githubusercontent.com/u/61146639?v=4" width="60px" alt="HereTask" /></a><a href="https://github.com/Recycla"><img src="https://avatars.githubusercontent.com/u/92437397?v=4" width="60px" alt="Recycla" /></a><a href="https://github.com/wojtekmach"><img src="https://avatars.githubusercontent.com/u/76071?v=4" width="60px" alt="Wojtek Mach" /></a><a href="https://github.com/jswny"><img src="https://avatars.githubusercontent.com/u/3282078?u=4c46f91e02019a03afdfadc8c3a9696730452e3b&v=4" width="60px" alt="Joe Sweeney" /></a><a href="https://github.com/ygor-sena"><img src="https://avatars.githubusercontent.com/u/102881479?u=573fdc772e806c579c8a34317d0b52f10595f7cc&v=4" width="60px" alt="Ygor G. Sena" /></a><a href="https://github.com/Pringels"><img src="https://avatars.githubusercontent.com/u/4850521?u=6104c6dff9afc4f23faf6bd630a3c0a941144b5c&v=4" width="60px" alt="Peter Ringelmann" /></a><!-- rest -->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.