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_BLACKLIST
environment variable.INTELLIJ_ELIXIR_DEBUG_BLACKLIST
should 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.new
dependencies, so that debugger boots faster for most users.
-
Ship a set of patterns that excludes Elixir standard library by default and most
-
Support debugging
.eex
templates-
Detect MFAs that refer to template functions in Phoenix view modules derived from
.eex
template files, to allow stepping through Elixir tags in those templates. -
Allow setting breakpoints in
.eex
files when a.beam
file using the template’s relative can be found. This means that the Phoenix view module.beam
file must exist in_build
prior to setting a breakpoint. Run the Run Configuration once, before debugging to complete the build if setting a breakpoint does not work.-
.beam
files are now indexed by theirLine
chunkfilenames
subsection to power this feature.
-
-
Detect MFAs that refer to template functions in Phoenix view modules derived from
-
Cache
.beam
Beam
Cache
onVirtualFile
. Cache is invalidated and refreshed on modification of theVirtualFile
. Cache is used for both BEAM Chunks read-only editors andLine
chunk 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
ProcessAdapter
turns 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
debug
flag 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_BLACKLIST
environment variable. -
Cache
null
SDKRelease
, so that when Elixir is configured, but the Erlang path is broken (such as after abrew unlink erlang
, theRelease
calculating usingelixir
-
Implement
Macro.atomToString
-
Properly render improper lists
-
Show improper list with explicit
|
for presenation -
Children of improper lists show
head
andtail
instead 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 only
liband not
lib/erlang/lib, so that it works for both Homebrew’s
ebinpaths and ASDF’s
ebinpaths. * Harmonize JPS compile server’s invoking of
mixto pattern used in Run Configuration runners. * Use
mixpath from SDK * No longer say the build succeeded when there are obvious
mixerrors * Parse
mix 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