IntelliJ Elixir v13.1.0
Changelog
v13.1.0
Enhancements
-
New Project > Language > Elixir includes all mix options
-
–app
-
–module
-
–sup
-
–umbrella
-
-
Add
mix format
external formatter. Requires project or module SDK be set in order to run. If the SDK is not available, only the internal formatter will be used. The internal formatter is still used for file subsection formatting and new line indenting asmix format
works at the file-level.-
Allow
mix format
external formatter to be disabled.- Preferences
- Editor > Code Style > Elixir
-
Click the
mix format
tab - Expand the General group
-
Uncheck “Format files with
mix format
“.
-
Allow
-
Support Elixir 1.13.0 in debugger.
Bug Fixes
-
Look above
CallDefinitionImpl
forType
scope processing It should go up to theModuleImpl
to find theTypeDefinitionImpl
. -
Have Credo Global Inspection use standard
Mix.commandLine
used for Run Configurations.- Allow environment variables to be set similar to Run Configurations for projects that require environment variables to be set for Mix tasks due to checks in their config.
- No longer support Include Explanations as it takes too long to run.
- Remove annotator until it can be re-implemented in performant manner using corrected environment and SDK from Global Inspection.
-
Fix Find Usages that resolve to compiled types.
-
Add element description for
TypeDefinitionImpl
-
Node Text is
@<module_attribte> <name>(<parameters>) :: …
-
Long Name and Short Name are just the
name
-
Type is
type
-
Node Text is
-
Mirror
TypeDefinitionImpls
to types in decompiled source. AllowTypeDefinitionImpl.getNavigation
to go to decompiled types.
-
Add element description for
- Allow types with atom keyword names to be highlight even though they are invalid names.
-
Restore Project configuration for Small IDEs.
I dropped an
!
when converting fromequals
to==
when fixing the deprecation warnings, which made the Project SDK selection only be HIDDEN where it needed to be SHOWN. -
Catch
StackOverflowError
infind_usages.Provider.getType()
. -
Element descriptions for
CallDefinitionImpl
-
Highlight
CallDefinitionImpl
references as predefined if resolvedCallDefinitionImpl
is inKernel
orKernel.SpecialForms
. Fixes highlightingdef
and other defined when using SDKs without source like Homebrew after the delayed-decompilation fixes from 12.2.1. Now source-less (Homebrew) and SDKs with sources (ASDF) will both be able to highlight predefineds. -
No longer record the SDK name as an attribute of the Facet configuration, as it didn’t write back changes.
- Instead detect the Elixir SDK by finding any of the libraries that have an Elixir SDK name in the module. (The Elixir SDK was already being added as a library to allow indexing the SDK.)
- Clear out any existing Elixir SDKs listed as module libraries before setting a new SDK. This eliminates the duplicates that happened before. (It turns out the JetBrains API doesn’t prevent duplicates. Oopsie.) It also ensures that no SDK is recorded if the SDK is deselected in the UI, which wouldn’t happen before.
-
In IntelliJ 2022, the New Project dialog changed and it no longer automatically listed
ModuleType.getBuilder
ModuleBuilder
s as potential project builders, so it looked like Elixir New Project support disappeared. Fix this by implementing thenewProjectWizard.language
extension that was added to control the Language switching in the new New Project dialog. -
Remove references to
ElementClassHint
in BeamFileImpl that only work in IntelliJ.ElementClassHint
is part of theprocessDeclaration
system used in Java and so was in the code becauseBeamFileImpl
was original based onClassFileImpl
, but since the Elixir resolvers don’t use the hint system at all, it can just be removed. -
Fix environment not being passed to debug runs of ESpec and ExUnit Run Configurations.
The
env
from theConfiguration
was dropped because a localenv
was created to setMIX_ENV
true
.