IntelliJ Elixir v11.8.0

Changelog

Enhancements

  • Quick documentation (F1/Ctrl+Q)
  • Run Icons in gutter next to ExUnit tests. The icon changes to the state of the test: green for passing and red for failing.

Bug Fixes

  • Fix Unchecking Show Method Separator still showing on @doc and @spec.

    Previously, unchecking Show Method Separator would still show the method separator if it was the module attributes (such as @doc and @spec) associated with the call definition (def, defp, defmacro, or defmacrop) and only disabled the ones directly above the call definition. This is fixed by checking if method separators are enabled in getLineMarkerInfo(PsiElement) instead of the specialized getLineMarkerInfo(Call), so that the check happens for both module attributes and call definitions.

  • Remove “Unresolved module attribute” error annotation because module attributes cannot be resolved through use yet, so current annotation is a false positive in those cases.
  • Use SimpleTemplateLanguageFormattingModelBuilder for EEx files, so that the TemplateDataLanguage (i.e. html when the extension is .html.eex) formatter is used instead of the Elixir formatter.

Installation Instructions

Wolf, Goat, Cabbage… and Elixir

Using asynchronous traversal of a branched state graph to find a solution of a Lewis Carroll’s favorite puzzle.

https://rocket-science.ru/hacking/2020/08/04/wolf-goat-cabbage-and-elixir

ecto_psql_extras: PostgreSQL database performance insights

I’ve just released my first Elixir hex package. ecto_psql_extras provides powerful insights into the performance metrics of PostgreSQL database. Locks, index usage, buffer cache hit ratios, vacuum stats and more.

https://github.com/pawurb/ecto_psql_extras

ElixirWeekly: The Elixir Community Newsletter, covering community news you easily miss, shared on ElixirStatus and the web, in one email every Thursday.

ThinkingElixir 007: Background Jobs with Miguel Palhaus

In episode 7 of Thinking Elixir, We talk with Miguel Palhaus about lessons learned while working with background jobs in production systems. He shares some tips he’s learned through experience. We share other mistakes made and what we learn from them. We cover background job options, choosing tech based on the team you have, IEx tips to remind yourself you’re on production, and much more!

Podcast Episode

Deploying Plug to Heroku

Need to deploy an app that just uses Plug? In this episode we’ll deploy a simple Plug.Router app to Heroku.

https://elixircasts.io/deploying-plug-to-heroku

Leveraging Exceptions to handle errors in Elixir

Returning a tagged tuple {:ok, result} | {:error, reason} is the de facto practice to handle errors in Elixir, but that may not be enough for all situations and this article will explore how to leverage Exceptions to enrich errors and the benefits of doing so.

Check out at https://leandrocp.com.br/2020/08/leveraging-exceptions-to-handle-errors-in-elixir/

Building Backdoor: web console for Elixir & Phoenix applications - Part #2

In part 2 we are improving code execution by allowing usage of imports and macros, and also add exception handling and formatting. Check it out!

Building Backdoor: web console for Elixir & Phoenix applications - Part #2

In part 2 we are improving code execution by allowing usage of imports and macros, and also add exception handling and formatting. Check iit out!

Using MJML in Elixir & Phoenix

How to create responsive HTML emails for your Phoenix app with ease.

https://medium.com/p/ca27050ff26f

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.

Elixir bindings to the pHash perceptual hashing library

Initial release of NIF bindings to the pHash library, allowing for perceptual image hashing and comparing.

Hex.pm Github

V2.0.0-rc.0 released for Nerves Raspberry Pi systems

Like using Raspberry Pi’s for your @NervesProject?

v2.0.0-rc.0 system versions released…just for you!😉

https://elixirforum.com/t/nerves-raspberry-pi-systems-v2-0-0-release-candidates/33446

Sasa Juric on Static Typing and BEAM Languages

Check out this excerpt from the upcoming Book Club episode with Saša Jurić and Erik Schön where they explore whether Elixir could be the right tool for your job. In the interview, Erik Schön, managing director at Nordic, also explores key benefits and practices with Elixir, a functional language with over 20k commits on Git Hub. The upcoming interview is based on Saša’s book Elixir in Action. https://gotopia.tech/bookclub/episodes/how-to-start-with-the-elixir-programming-language

How to use Google Maps with Phoenix LiveView

We have been building a platform where using LiveView made a lot of sense, since we wanted some of our features to use an interface that could be updated in real-time. For example, we wanted administrators of the platform to be able to see, on a map, the sightings that the users of the app were reporting on certain places, as they happen. Let’s call it a live map. Full post here.

Elixir Diff: Compare files created by various Elixir generators

Inspired by PhoenixDiff, Elixir Diff helps you compare projects generated using mix new, mix phx.new, etc. You can also compare various CLI flags. https://elixirdiff.com/

Elixir Wizards S4E11 Johanna Larsson on Hex Diff and more

Latest episode of Elixir Wizards is out! Check it out here: https://smartlogic.io/podcast/elixir-wizards/s4e11-larsson/

Building Backdoor: web console for Elixir & Phoenix applications - Part #1

I have started some live-coding on a new project and decided to share with you folks! In the first part we implement the very simple Elixir web console, which is not yet great but a good start! There is a video for those who prefer watching and a blog post for readers!

Check it out on our blog

OTP as the Core of Your Application Part 2

Part 2 of my OTP tutorial series is out https://akoutmos.com/post/actor-model-genserver-app-two! Check it out to get in depth info on GenServers, Registry and DynamicSupervisors and learn how to make Actor Model based systems that are insanely performant. A little sneak peak at the results from the two competing implementations in the post:

Metrics results

A real world use case with Elixir Recursion

I recently implemented a business use case with an Elixir background worker. This blogpost is about what problem I faced & how I solved it using Elixir Recursion. Check out the article

Showing comment counts on the index page

This is part of the Phoenix LiveView series, but nothing in this tutorial is related to LiveView.

It goes over how to get comment counts for each podcast (or blog post, etc) and show them on the listing page.

https://alchemist.camp/episodes/phoenix-comments-counts

The State of Elixir HTTP Clients

Take a deep dive into Elixir HTTP client libraries — Mint and Finch.

https://blog.appsignal.com/2020/07/28/the-state-of-elixir-http-clients.html