ヽ(´・肉・`)ノログ

How do we fighting without fighting?

Elixirでforが複数行に渡る場合のインデント

$ git clone elixir-lang/elixir
$ cd elixir
$ ag 'for ' . | ag '<-' | ag -v do

で調べた.17 個しかなかった.先頭の空白は除去している.特徴的なものをいくつか挙げる.

lib/elixir/lib/kernel/parallel_compiler.ex#L136-L139

available = for {:struct, pid, _, waiting_module} <- waiting,
                module == waiting_module,
                not pid in entries,
                do: pid

lib/elixir/lib/module/locals_tracker.ex#L147-L152

for {name, arity} <- all_defined,
    :digraph.in_neighbours(d, {:import, name, arity}) != [],
    n = :digraph.out_neighbours(d, {:import, name, arity}),
    n != [] do
  {n, name, arity}
end

lib/elixir/lib/protocol.ex#L190-L193

(たぶんインデントが他のものと違っている)

for path <- paths,
   file <- list_dir(path),
   mod = extract_from_file(path, file, prefix, callback),
   do: mod

lib/mix/test/test_helper.exs#L106-L110

for {mod, file} <- :code.all_loaded -- previous,
    file == :in_memory or
    (is_list(file) and :lists.prefix(flag, file)) do
  purge [mod]
end

結論

このエントリーをはてなブックマークに追加