Skip to content

Instantly share code, notes, and snippets.

@Tomboyo
Tomboyo / list_macro.ex
Last active December 7, 2020 07:23
Tersely create long pattern-match expressions for Elixir lists
defmodule ListMacro do
defmacro list(opts) do
free_variable = quote do ; _ end
quote do
unquote(Enum.flat_map(opts, fn
x when is_integer(x) -> List.duplicate(free_variable, x)
x -> [ x ]
end))
end
@Tomboyo
Tomboyo / vscode_elixir_debugger_instructions.md
Last active August 30, 2023 02:55
Interactive Elixir Debugging with VSCode and ElixirLS

In this Gist we will configure VSCode for Elixir debugging. Once done, we will be able to debug any function with any arguments by opening the VSCode Run (a.k.a Debug) view, selecting the "mix run" debug configuration, and entering any invocation such as Example.run(:my_args) into a command palette prompt. This will let us step through the code as it executes and use breakpoints like normal.

This Gist expects you have the ElixirLS: Elixir Support and Debugger extension installed. This Gist is based on version 0.6.2.

1. Create a launch configuration

Create a .vscode/launch.json file at the root of your project if one does not exist already. Modify the file to contain inputs and configurations like the following:

{