IntelliJ Elixir 7.4.0
Enhancements
-
Allow files to skip interpreting in the debugger to be configured in Preferences > Build, Execution, Deployment > Debugger > Stepping. It is recommended to customize these settings instead of using
INTELLIJ_ELIXIR_DEBUG_BLACKLISTenvironment variable.INTELLIJ_ELIXIR_DEBUG_BLACKLISTshould be reserved to additional modules that need to not be interpreted only for specific runs.-
Ship a set of patterns that excludes Elixir standard library by default and most
mix phx.newdependencies, so that debugger boots faster for most users.
-
Ship a set of patterns that excludes Elixir standard library by default and most
-
Support debugging
.eextemplates-
Detect MFAs that refer to template functions in Phoenix view modules derived from
.eextemplate files, to allow stepping through Elixir tags in those templates. -
Allow setting breakpoints in
.eexfiles when a.beamfile using the template’s relative can be found. This means that the Phoenix view module.beamfile must exist in_buildprior to setting a breakpoint. Run the Run Configuration once, before debugging to complete the build if setting a breakpoint does not work.-
.beamfiles are now indexed by theirLinechunkfilenamessubsection to power this feature.
-
-
Detect MFAs that refer to template functions in Phoenix view modules derived from
-
Cache
.beamBeamCacheonVirtualFile. Cache is invalidated and refreshed on modification of theVirtualFile. Cache is used for both BEAM Chunks read-only editors andLinechunk file name index. - Each package manager uses a different root path and which directory to pick above the ebins varies by package manager, so document package manager install paths.
-
Show warnings-as-errors checkbox as original blocker has been fixed for awhile and
ProcessAdapterturns warning text into errors that IDE understands. -
When importing Mix projects, don’t exclude compiler output from indexing because it is needed to resolve Elixir Line Breakpoints in EEx files.
- For pre-existing Elixir modules, they will be converted to not exclude compiler output.
-
Exclude known uninterpretable modules
-
Bcrypt.Base -
:erocksdb -
:lz4 -
:re2
-
Bug Fixes
-
Turn off
debugflag when startingIntelliJElixir.DebugServer, which removes the*DBG*statements that kept printing in the ExUnit output when using the debugger. -
Fix conversion of Elixir module names to Erlang module names for
INTELLIJ_ELIXIR_DEBUG_BLACKLISTenvironment variable. -
Cache
nullSDKRelease, so that when Elixir is configured, but the Erlang path is broken (such as after abrew unlink erlang, theReleasecalculating usingelixir -
Implement
Macro.atomToString -
Properly render improper lists
-
Show improper list with explicit
|for presenation -
Children of improper lists show
headandtailinstead of index.
-
Show improper list with explicit
-
Show Elixir indices (
0-based) instead of Erlang indices (1-based) for lists and tuples. * Loosen check on the path suffix by looking for onlyliband notlib/erlang/lib, so that it works for both Homebrew’sebinpaths and ASDF’sebinpaths. * Harmonize JPS compile server’s invoking ofmixto pattern used in Run Configuration runners. * Usemixpath from SDK * No longer say the build succeeded when there are obviousmixerrors * Parsemix compile` output for compilation errors and warnings When “warnings-as-errors” is enabled in “Elixir compiler” settings, IDE also shows warnings as errors. IDE will know build failed if there are errors (or warnings treated as errors) and properly allow rebuild. * Some modules, like NIF modules, can’t be loaded into the debugger. Individual modules not being debuggable shouldn’t kill the debugger task, so rescue the known error and record it for later debugging of the debugger.
Read next Simple Setup of PostGIS Columns with Phoenix Generators
