snippet do do ${0:${VISUAL}} end snippet put IO.puts IO.puts("${0}") snippet ins IO.inspect IO.inspect(${0}) snippet insl IO.inspect with label IO.inspect(${0}label: "${1:label}") snippet if if .. do .. end if ${1} do ${0:${VISUAL}} end snippet if: if .. do: .. if $1, do: ${0} snippet ife if .. do .. else .. end if $1 do ${2:${VISUAL}} else ${0} end snippet ife: if .. do: .. else: if $1, do: ${2}, else: ${0} snippet unless unless .. do .. end unless ${1} do ${0:${VISUAL}} end snippet unless: unless .. do: .. unless $1, do: ${0} snippet unlesse unless .. do .. else .. end unless $1 do ${2:${VISUAL}} else ${0} end snippet unlesse: unless .. do: .. else: unless $1, do: ${2}, else: ${0} snippet cond cond do ${1} -> ${0:${VISUAL}} end snippet case case ${1} do ${2} -> ${0} end snippet for for ${1:item} <- ${2:items} do ${0} end snippet for: for ${1:item} <- ${2:items}, do: ${0} snippet fori for ${1:item} <- ${2:items}, into: ${3} do ${0} end snippet wi with ${1:item} <- ${2:items} do ${0} end snippet wie with( ${1:item} <- ${2:items} ) do ${3} else ${4} -> ${0} end snippet sp @spec ${1:name}(${2:args}) :: ${3:returns} snippet op @opaque ${1:type_name} :: ${2:type} snippet ty @type ${1:type_name} :: ${2:type} snippet typ @typep ${1:type_name} :: ${2:type} snippet cb @callback ${1:name}(${2:args}) :: ${3:returns} snippet df def ${1:name}, do: ${2} snippet dfw def ${1:name}(${2:args}) when ${3:guard}, do: snippet def def ${1:name} do ${0} end snippet defd @doc """ ${1:doc string} """ def ${2:name} do ${0} end snippet defs @spec ${1:name}(${2:arg types}) :: ${3:no_return} def $1(${4:args}) do ${0} end snippet defsd @doc """ ${1:doc string} """ @spec ${2:name}(${3:arg types}) :: ${4:no_return} def $2(${5:args}) do ${0} end snippet defw def ${1:name}(${2:args}) when ${3:guard} do ${0} end snippet defim defimpl ${1:protocol_name}, for: ${2:data_type} do ${0} end snippet defma defmacro ${1:name} do ${0} end snippet defmo defmodule ${1:`substitute(vim_snippets#Filename(), '\(_\|^\)\(.\)', '\u\2', 'g')`} do ${0} end snippet %M %__MODULE__{ ${1:key_name}: ${2:value} } snippet enfk @enforce_keys [:${1:key_name}] snippet dfp defp ${1:name}, do: ${2} snippet dfpw defp ${1:name}(${2:args}) when ${3:guard}, do: ${4} snippet defp defp ${1:name} do ${0} end snippet defpw defp ${1:name}(${2:args}) when ${3:guard} do ${0} end snippet defpr defprotocol ${1:name}, [${0:function}] snippet defr defrecord ${1:record_name}, ${0:fields} snippet doc @doc """ ${0} """ snippet docs @doc ~S""" ${0} """ snippet docf @doc false snippet im @impl true snippet fn fn ${1:args} -> ${0} end snippet mdoc @moduledoc """ ${0} """ snippet mdocs @moduledoc ~S""" ${0} """ snippet mdocf @moduledoc false snippet rec receive do ${1} -> ${0} end snippet req require ${0:Logger} snippet imp import ${0:module_name} snippet ali alias ${0:module_name} snippet test test "${1:test name}" do ${0} end snippet testc test "${1:test_name}", ctx do ${0} end snippet testa test "${1:test_name}", %{${2:arg: arg}} do ${0} end snippet des describe "${1:test group subject}" do ${0} end snippet destag @describetag :${1:describe tag} snippet mtag @moduletag :${1:module tag} snippet dt doctest ${1:filename} snippet tp @tag :pending snippet exunit defmodule ${1:`substitute(vim_snippets#Filename(), '\(_\|^\)\(.\)', '\u\2', 'g')`} do use ExUnit.Case, async: true ${0} end snippet setup setup do ${1} end snippet setupa setup_all do ${1} end snippet try try .. rescue .. end try do ${1:${VISUAL}} rescue ${2} -> ${0} end snippet pry require IEx; IEx.pry ${0} snippet ppry |> (fn x -> require IEx; IEx.pry; x end).()${0} snippet qu quote do ${1} end snippet beh @behaviour ${1:Mix.Task} ${0} snippet p |> ${0} snippet >e pipe to each |> Enum.each(fn ${1} -> ${0} end) snippet >m pipe to map |> Enum.map(fn ${1} -> ${0} end) snippet >f pipe to filter |> Enum.filter(fn ${1} -> ${0} end) snippet >r pipe to reduce |> Enum.reduce(${1:acc}, fn ${2}, ${3:acc} -> ${0} end) snippet >i pipe to inspect |> IO.inspect() snippet >il pipe to inspect with label |> IO.inspect(label: "${1:label}") snippet cs @doc false def child_spec(${1:_opts}) do %{ id: __MODULE__, start: {__MODULE__, :start_link, ${2:[]}}, restart: ${3::permanent}, shutdown: ${4:5000}, type: ${5::worker} } end snippet genserver basic genserver structure use GenServer @doc false def start_link(init_args) do GenServer.start_link(__MODULE__, init_args, name: __MODULE__) end @impl true def init(state) do {:ok, state} end snippet super basic supervisor structure use Supervisor @doc false def start_link(init_args) do Supervisor.start_link(__MODULE__, init_args, name: __MODULE__) end @impl true def init(_init_args) do children = [${1}] Supervisor.init(children, strategy: :one_for_one) end snippet impl @impl true def ${1:name} do ${0} end snippet wl word list ~w(${0}) snippet al atom list ~w(${0})a