ExVenture Updates for October 2018 Getting Started with Ecto Part 2: Migrations, Schemas, and Changeset

IntelliJ Elixir 10.0.0

  • Go To Symbol and completion will only resolve in project source unless non-project sources are turned on.
  • deps are properly marked as Libraries and no longer count as being in the project scope for the Go To tools.
  • In umbrella projects, when in_umbrella is used, the Project Module for each apps/#{APP_NAME} will be marked a dependency,
  • Library and Modules are properly connected as dependencies, so that only declared dependencies will resolve, lessening false completions and declarations when different OTP app share common Module or function names.
  • deps and the _build/#{MIX_ENV}/lib/#{DEP_NAME} will be marked as Excluded, so that Libraries appear in External Libraries at the bottom of the Project Pane.
  • Go To Class action (Cmd+O) to go to modules separately from all functions as would happen with Go To Symbols (Alt+Cmd+O).
  • Add .eex to .ex and .exs for accepted file extensions used to hyperlink files in stacktraces.
  • Resolve unaliased name when using alias __MODULE__, as: Mod
  • Resolve usage of Mod in alias __MODULE__, as Mod
  1. Mod
  2. __MODULE__ in alias __MODULE__
  3. defmodule MyModule that is enclosing __MODULE__.
  • Completion of functions in current module when using Mod. after alias __MODULE__, as: Mod.
  • Show more context for alias calls in presentations, like “Choose Declaration” pop up for Go To Declaration.
  • Show resolved __MODULE__ name (alias MyModule) when using alias __MODULE__.
  • Show full alias MyModule, as: Mod when listing Mod in alias __MODULE__, as Mod.
  • Exclude common directories when importing projects
  • cover for test coverage
  • doc for ex_doc
  • logs for log files
  • assets/node_modules/phoenix for phoenix
  • assets/node_modules/phoenix_html for phoenix_html
  • Setup Libraries and Module dependencies when importing projects from Mix.
  • Canary, pre-release builds (vMAJOR.MINOR.PATCH-pre+YYYYMMDDHHMMSS) from master branch
  • GitHub pre-release releases
  • Release on the canary channel in the JetBrains Plugin Repository
  • Don’t include null useCall as __MODULE__ dependency.
  • Wrap LibraryTable#removeLibrary in write action.
  • Wrap Library#modifiableModule#commit in write action.
  • More closely match ExUnit.CliFormatter output in Test Runner.
  • Don’t inspect ExUnit failure reason as ##teamcity message.
  • Add captured logs to failure
  • Colorize test failures - including diff colorization
  • Map Elixir 1.7 :excluded and :skipped (added in elixir-lang/elixir#7245 to testIgnored teamcity message, thereby restoring ignored test counts and markers from Elixir 1.6.
  • When finding a defmodule, check that it is an ancestor of the entrance of the ResolveState, so that nested sibling modules are not scanned for potential call definition clauses, but only the outer module of the entrance.
  • Remove @2x and @3x SVG icons that render wrong size in 2018.3 EAP.
  • flushBufferBeforeTerminating was deprecated and in newer IntelliJ the call to processStatuses does not occur unless flushBufferOnProcessTermination is also overridden.
  • Treat == Compilation error in STDOUT as ERROR for ExUnit reporter
  • Convert (CompileError) of a test file to test failure. The “Test framework quit unexpectedly” is converted to a failed run with a single test with the compilation error as the failure message.
  • Don’t treat redefinition of defmodule macro as module definition (as occurs in @bitwalker’s distillery’s Mix.Tasks.Release.Init.MixMock
  • Don’t log compilation errors as test failures unless a test has started. Test name being called mix test does not work, so log those compilation errors as normal build messages instead.
  • Don’t interpret :crypto by default: :crypto includes NIFs that can’t be reloaded and so kills the debugger. - @KronicDeth
  • Protect from null containingFile for modular names during completion.
  • Wrap syncPublisher(JDK_TABLE_TOPIC) in invokeLater runWriteAction.
  • Dependencies are now counted as external to the project, so the Go To tools, like Go To Symbol will no longer include matches for both project sources and dependencies sources together, instead they will follow the more JetBrains native behavior

Installation Instructions

Shameless plug: Check out @elixirstatus' other community project:

Credo, a new static code analysis tool that acts as a code linter, but also focusses on teaching coding practices and code consistency.