Erlang eDoc:功能文档注释不会显示在输出中

时间:2011-07-26 19:30:02

标签: erlang

我正在努力攀登Erlang最佳实践的学习曲线;刚刚将eDoc集成到我的工作流程中。

这对我有用:

%%% --------------------------------------------------------------------
%%% @author Lloyd R. Prentice
%%% @copyright 2011 Lloyd R. Prentice
%%% @doc Yada yada
%%%      ...
%%% @end
%%% --------------------------------------------------------------------

正如我所料,所有内容都出现在文档中。

但这不是:

%% Return a list of reserved item types
item_types() ->
        ....

我希望在eDoc输出中看到一系列功能和文档注释。但是,没有表演。

我已经搜索了eDoc文档,在网上查找了示例和教程,但我看不出我做错了什么。

有人可以帮忙吗?

非常感谢,

LRP

3 个答案:

答案 0 :(得分:2)

如果您正确调用了edoc,根据您的示例,我希望看到模块的大纲以及函数名称,而不是每个函数的文档。

在每个导出的功能上方,您需要添加@spec代码和/或-spec代码以及@doc代码。您可以看到这些解释herehere。如果您有(或正在定位)最新版本的erlang(> 14B02?),则edoc会阅读-spec信息,否则您需要使用@spec

例如:

%% @spec item_types() -> list()
%% @doc Return a list of reserved item types.
item_types() ->

-spec item_types() -> list().
%% @doc Return a list of reserved item types.
item_types() ->

请注意.末尾的-spec

答案 1 :(得分:1)

首先,只有导出的函数出现在生成的文档中(除非您将选项'private'传递给EDoc,告诉它也显示所有未导出的函数)。所以,如果你没有像:

这样的声明
  -export([item_types/0]).

在您的模块中,该功能将不会显示。

其次,您必须使用@doc开始使用函数声明上方的注释,如:

  %% @doc Return a list of reserved item types
  item_types() ->

没有@ -tag的评论只是一个评论,EDoc会忽略。

答案 2 :(得分:0)

来自documentation

  

标记必须是注释行中的第一件事,除了前导'%'字符和空格。

这可能是原因吗?