私は、呼び出しモジュールに関数を注入する単純なマクロを持っています。エリキシルの引用ブロックの外側の関数を定義します。
defmodule MyModule do
defmacro __using__(_opts) do
quote do
def run do
IO.puts "Hello world"
end
end
end
end
これは意図した通りですが、run関数がquoteブロック内にネストされているため、ExDocを使用してドキュメントを追加できません。私はまた、私はコードがより見栄えが良いと感じるように、実行機能を外部に定義したいと思います。このようなもの:
defmodule MyModule do
def run do
IO.puts "Hello world"
end
defmacro __using__(_opts) do
quote do
# Some code to inject the run function
end
end
end
どうすればよいですか?さらに、ネストされた関数に対してExDocを使用してドキュメントを追加するにはどうすればよいですか?
ドキュメントを 'MyModule.run'に追加するか、' use MyModule'を実行するモジュールに注入する 'run'関数に表示しますか? – Dogbert
@DogbertドキュメントをMyModule.runと 'use MyModule'モジュールに追加したい –
@Dogbertネストされた実行関数用のドキュメントを定義すると、ドキュメントは元のモジュールではなく、目的のモジュールで取得されます。 –