ThinkingElixir 104: Exploring Our Data with Chris Grainger Poznań Elixir Meetup #14

IntelliJ Elixir 13.1.1

Changelog

Bug Fixes

  • Fix Project Initialization Failed from New > Project > Elixir
    • Catch and log IOExceptions swallowed by Project Initialization Failed.
    • Recursively delete project directory before running mix new. Previously, the directory was only deleted if empty, but whether the .idea directory is written when setupProject is called differs between IDE versions, so to be safe, recursively delete.
  • Fix Go To Definition for function in compiled modules. When switching over to delayed decompilation, ModuleImpl did not have processDeclaration overloadded, so the PsiScopeProcessor was never called on it and so the CallDefinitionClause scope processor did not check the ModuleImpl#callDefinitons.
  • Implement Deprecated metadata handling for docs from BEAM files.
  • Don’t assume Elixir SDK sdkAdditionalData is non-null.
  • Don’t restrict Run Configurations to Run in Modules to Elixir modules. The docs for ModuleType say the concept is meant to be deprecated, so don’t enforce it and trying to load ElixirModuleType in RubyMine breaks as it tries to load ElixirModuleBuilder and therefore JavaModuleBuilder, which only works in IntelliJ.
  • Add the facet in a write action in addition to setting the SDK.
  • Increase SUSPECT_NAME_SET_SIZE to 20. Increased to cover the 15 impls of String.Chars in the geo hex package.
  • Log if erl binary is not found when trying to run mix format. Log instead of letting it throw up the stack and cause an error report since the SDK not being set will be very common.

Installation Instructions