Ссылка на внешние типы в ExDoc

#documentation #elixir #ex-doc

#Документация #эликсир #ex-doc

Вопрос:

Недавно я создал свой первый шестнадцатеричный пакет; Ecto.Rut и я сейчас работаем над его документацией. Поскольку он использует Ecto.Repo в конце и возвращает Ecto.Schema и Ecto.Changeset вводит, я хотел связать их в @specs .

Внутренние и базовые типы Elixir (такие как Keyword.t ) автоматически связываются, но ex_doc не связывает внешние типы, определенные в модулях Ecto. Как мне это сделать?

В настоящее время я пытался указать полное имя модуля в @spec , но это не работает:

 @callback all(opts :: Keyword.t) :: [Ecto.Schema.t] | no_return
  

Комментарии:

1. Возможно, это не поддерживается. Вы можете написать вручную @doc или @moduledoc следующим образом: github.com/phoenixframework/phoenix/blob /…

2. @ma2gedev На сегодняшний день он официально поддерживается.

3. @pdimitar вау! приятно!

Ответ №1:

После некоторого обсуждения на ElixirForum Хосе добавил эту функцию. Начиная с ExDoc v0.14.2 и далее, он поддерживает автоматическое связывание для внешних модулей зависимостей.

Со страницы Github:

При обращении к модулю, функции, типу или обратному вызову из любой из ваших зависимостей, например MyDep , ExDoc автоматически свяжет документацию по этой зависимости с hexdocs.pm (ссылка может быть настроена с помощью опции :deps в вашем mix.exs)


Это означает, что простое упоминание полного имени модуля приведет к автоматической ссылке типов, обратных вызовов, модулей и методов. Итак, при обновлении до последней версии ExDoc мой существующий код теперь автоматически связывается:

 @callback all(opts :: Keyword.t) :: [Ecto.Schema.t] | no_return