Skip to content

v22.0.0

Latest

Choose a tag to compare

@joshuataylor joshuataylor released this 16 Dec 03:33
· 9 commits to main since this release
7698bdd

v22.0.0

(This changelog is still in progress)

v22.0.0 supports only the newly released (as of December 2025) 2025.3 IDEs (253.xxx), with additional functionality being tested (please help us test!) to better support adding Erlang/Elixir SDKs, Sigil Highlighting, etc.

Thank yous

A lot of people have helped to get us here, submitting bug reports, patches, testing, etc.

I would like to personally thank a couple of contributors (and if I've forgotten someone, let me know :P).

A noteable thank you to the following contributors for their amazing work helping shape this release, and figuring out some tough problems.

  • sh41 (Steve Hall) who helped fix many outstanding compatibility issues blocking us in 2025.1+, especially for figuring out a particularly hairly bug with FindUsages that stumped me hard. Also for modernising CI, converting build.gradle to build.gradle.kts and many more changes. Thank you for carrying the torch.

  • mwnciau (Simon James) for their investigation into language support for HEEx, and figuring out the arcane witchcraft to get it to work. There will be more changes coming (as above) that add to this, but we finally have HEEx support, and Language Injection and more. Phoenix users rejoice! Thank you for staring into the abyss. We to ensure you're correctly attributed in the codebase, we'll work something out.

  • polymorfiq (Cory Finger) for their work on getting Language Injection to work. Language Injection is one of my favourite things about IntelliJ -- you can inject another language within a language to get contextual that languages syntax highlighting, error reporting, etc.

  • [hsz] For pushing to modernise Plugin development, making it way easier. Bit random, but the recent changes have made developing a lot easier.

  • You. Reporting bugs, testing the earlier EAPs. Thank you for being awesome, patient and a part of this community.

Release notes for v22.0.0

  1. This release supports 2025.3+ only, mostly due to the amount of changes to internal APIs only projects like intellij-elixir uses that JetBrains just breaks. See also IntelliJ Platform 2025.3: What Plugin Developers Should Know, I tried to make the plugin work with previous IDEs but it was a mess.
  2. There has been a TON of work to fix EDT issues in this release. Almost every plugin has been buggy/broken since 2025.2 without rework, including many of JetBrains first-party plugins closed sourced plugins, both bundled and installable. See Changes in Threading Framework in IntelliJ Platform 2025.2 Yes, I'm a bit mad, especially when JetBrains employers post things like Keeping plugins compatible when their plugins are a shitshow. If they can't properly port their own plugins, which we pay for, how are opensource developers supposed to cope?

HEEx support

Thanks to the amazing work from mwnciau (Simon James) (PR #3696), we now have HEEx support!

Yes, you can FINALLY get proper syntax highlighting and IDE features in your Phoenix LiveView templates!

If you're not sure what HEEx is, it's the templating language for Phoenix LiveView that replaced EEx. It adds HTML awareness, component support, and compile-time validation.

See https://hexdocs.pm/phoenix_live_view/assigns-eex.html

What's included

  • .heex file type recognition** with custom icons
  • Syntax highlighting** for HEEx-specific constructs like {@assigns} and {expressions}
  • Relative component support** - <.component> tags now work correctly
  • Brace interpolation** - {@user.name} expressions are properly highlighted
  • HTML inspection suppression - no more false-positive "invalid tag name" errors for Phoenix components
  • CSS/JavaScript injection - <style> and <script> tags get their respective language support automatically

Example

<div id={"user_#{@user.id}"}>
  {@user.name}
</div>

Before

h-sigil-html-before

After

h-sigil-html

Literal sigil injection

Once polymorfiq cracked how Language Injection works, we were able to implement Language Injection for literal sigils.

So now, you can see ~H, ~r!

If you don't want the green background, you can turn that off, though note it turns it off for everything else as well that's injected.

Status Bar Widget

To aid in SDK management, there is now a status bar widget that shows the current project's Elixir SDK version.

There is an issue with IntelliJ, where if you:

  1. Create an Erlang SDK.
  2. Do not save.
  3. Add an Elixir SDK that depends on the Erlang SDK.
img

The classpaths are not correctly set up:

img_1

You need to either save BEFORE adding the Elixir SDK, or close settings, and click the new Status Bar Widget to fix the classpaths (below):

img_4

Better SDK management

#3711

If you've accidentally created an Erlang SDK without saving, and then created an Elixir SDK that depends on it, the classpaths are not correctly set up.

I've added some Actions to help fix this, called "Refresh Elixir SDK Classpaths", available from the Elixir SDK settings page:

img_2 ## Elixir SDK Note

Note that Homebrew hasn't been including Erlang/Elixir sources, and won't actually work.

Try using mise, kerl, asdf, etc.

EDT fixes

An absolute monumental amount of work has gone into fixing EDT issues in this release.

Installation steps

Download the Elixir-20.0.1.zip file from below, under Assets.

Tip

Please refer to the Install plugin from disk JetBrains documentation for how to install plugins manually.

  1. Ensure your IDE is 2024.3 or above.
  2. Open Settings -> Plugins.
  3. Click the cog icon and select Install Plugin from Disk.
  4. Select where the plugin .zip was downloaded and install it.
  5. Ensure the plugin is version 20.0.1.
  6. Click OK to close the plugin window and reload the IDE.