diff --git a/guides/plugins/doc_fields.md b/guides/plugins/doc_fields.md index fa2ed2d..9b4c173 100644 --- a/guides/plugins/doc_fields.md +++ b/guides/plugins/doc_fields.md @@ -8,7 +8,7 @@ accessible information. Below is the final code generated by the plugin, which includes comprehensive documentation for the `User` struct: -``` +```elixir defmodule User do @typedoc """ @type t(age) :: %User{age: age | nil, name: String.t() | nil} @@ -33,6 +33,7 @@ end ``` ## Implement + ```elixir defmodule Guides.Plugins.DocFields do @moduledoc """ @@ -115,11 +116,12 @@ defmodule Guides.Plugins.DocFields do fields = Enum.map(definition.fields, fn field -> name = Keyword.fetch!(field, :name) - type = Keyword.fetch!(field, :type) + enforce = Keyword.get(definition.options, :enforce, false) + type = - if Keyword.get(field, :enforce, false) or Keyword.has_key?(field, :default) do + if Keyword.get(field, :enforce, enforce) or Keyword.has_key?(field, :default) do Macro.to_string(type) else # escape `|` @@ -164,6 +166,7 @@ end ``` ## Usage + ```elixir defmodule User do @moduledoc false