| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| intellij-elixir-24.0.1.zip | 2026-08-09 | 8.4 MB | |
| README.md | 2026-08-09 | 5.6 kB | |
| v24.0.1 source code.tar.gz | 2026-08-09 | 17.7 MB | |
| v24.0.1 source code.zip | 2026-08-09 | 21.6 MB | |
| Totals: 4 Items | 47.7 MB | 0 | |
Enhancements
- @sh41
- The plugin's "What's New" now shows the last six releases instead of the whole history. Each version is listed with its release date, so upgrading after skipping a few releases shows what you missed rather than one undifferentiated list.
Bug Fixes
- @sh41
- Adding an Elixir SDK registers it again. #3888 - the SDK list stayed empty and "Elixir Facet SDK is not defined" persisted, because setting up the SDK's paths read the SDK table without a read lock and the resulting error aborted registration before the SDK reached the list.
- A newly added Elixir SDK is paired with the Erlang SDK you picked, rather than whichever one happened to be registered first. The chosen SDK is not committed until the dialog is applied, and the pairing was resolved without consulting the dialog's uncommitted SDKs.
- The "Configure from mise" action no longer goes missing from the SDK banner. The startup scan request could be dropped before its collector was listening, leaving the project with no tool manager scan at all.
- #3901 - @sh41
- Semantic syntax highlighting now appears in decompiled
.beamfiles. Function names, types and the rest were being coloured by the annotators and then discarded before they reached the editor, so decompiled code showed only the plain lexer colours. v24.0.0 announced this as working; it was not. - Opening a decompiled
.beamfile no longer reports "PsiFile's context does not match the context of the editor", which reached users as an IDE error report.
Build / CI
- @sh41
CHANGELOG.mdis now in Keep a Changelog format and is the single source of the plugin change notes, rendered by the Gradle Changelog Plugin.resources/META-INF/changelog.html, which held a separately hand-written copy, is removed - it had gone stale, so 24.0.0 shipped with v23.9.0 as its newest section.-
Every pull request now needs a
CHANGELOG.mdentry, checked bychangelog.yml: it must land under## [Unreleased], be a list item, and use a known group. Apply theno-changeloglabel when thereis genuinely nothing to record.
-
The Tag Release workflow validates the tag shape against the
prereleaseinput, that a release is cut frommain, that the tag is new and increases, and that it matchespluginVersion. - Plugin verifier reports are now uploaded whenever a verification leg fails, including on pull
requests. Previously the upload was gated on an input that is always empty for
pull_request, so the reports were unobtainable on exactly the runs that needed them and the evidence had to be dug out of a raw job log. Green runs still upload nothing unless a caller asks. - Everything scoped to an Elixir/OTP pair is now keyed on the pair:
MIX_HOMEjoinsMIX_ARCHIVES, and the quoter's_build/depsjoin both. Two OTPs for one Elixir previously shared a build tree and overwrote each other, and switching versions re-downloaded hex and rebar. The first build per pair after this change reinstalls and rebuilds once. - CI now covers OTP 25, and runs a decompiler sweep against OTP 28 for the first time. Two
beam.additionalpairs were added,1.13.4 / 25.3.2.21and1.18.4 / 28.4, chosen to cover OTP majors rather than Elixir minors: most of the decompiled surface is Erlang and the BEAM chunk formats track OTP. OTP 25 is now a supported pair - measured locally at 6 560 tests, 0 failures, so its leg is required and any later change that breaks it fails the pipeline. OTP 28 stays informational: its 291 failures are all pre-existing Elixir-keyed quoting cases, with no OTP-28 decompiler failures. - Switching Elixir/OTP versions now re-runs the tests. The versions reach the test JVM as environment
variables, which Gradle could not see, so
mise use erlang@X elixir@Yfollowed bycheckreported the previous pair's results - the task was up to date, and the build cache would even restore those results after acleanTest. Both test tasks now declare the versions as inputs. - A transient 5xx from JetBrains' artifact CDN no longer loses a whole test leg. Gradle already treats
repository server errors as retryable, but its default budget is three attempts over about three
seconds;
gradle.propertiesnow allows eight from a 3-second doubling backoff, roughly six minutes, for every build - CI and local alike. - CI restores the Elixir quoter cache again - it never had.
actions/cacheidentifies an entry by key and by a version hashed from the literalpath:lines, and the restore and save steps listed different paths, so they addressed different entries under one key. Every leg missed, rebuilt its quoter dependencies from Hex, then failed to save against the entry an earlier run had left there - reported asUnable to reserve cache, which reads as a harmless race between legs. Both steps now take the path list from one place. - The test results comment now leads with failures on the required legs, the only figure that
decides whether a pull request can merge, and reports
tests per legin place of a cross-leg union that read 12,913 for a run in which no leg ran more than 6,659.