【问题标题】:Documenting ONLY certain code, and ignoring all others?只记录某些代码,而忽略所有其他代码?
【发布时间】:2019-10-24 16:37:59
【问题描述】:

我目前在 C# 项目中使用 doxygen,但如果可以在另一个使用 C# 的文档生成器中找到此功能,那么我很感兴趣。

我希望文档生成器忽略所有 cmets 和代码,除了带有某些注释关键字的那些。我想要的功能与 doxygen \condendcond 关键字相反。例如,类似:

///
/// This comment and variable declaration is ignored by the documentation
/// generator.
///
public double MySecretPublicVar;

/// /doc-this
/// This comment and variable declaration is documented by the documentation
/// generator.
/// /doc-this-end
public double MyDocumentedVar;

【问题讨论】:

  • 我想一种选择是始终在每个文件的顶部放置一个“/cond”,在底部放置一个“/endcond”。然后,当我想要记录某些内容时,我以“/endcond”开始该部分,并以“/cond”结束。但这仍然很丑陋。
  • 您可以尝试使用 FILTER_PATTERN /INPUT_FILTER 进行尝试,当然,您知道没有文档的文件可以从 INPUT 标签中删除或放在EXCLUDE 标签。

标签: c# documentation doxygen documentation-generation


【解决方案1】:

VSdocman 工具(我在制造它的公司工作)可以使用regex filters 灵活地完成它。在您的情况下,您只需为 XML cmets 的签名指定一个“包含”过滤器。如果要匹配其中的任何“key_word1”或“key_word2”,请使用正则表达式,例如: .*my_keyword1|my_keyword2.*

【讨论】:

    【解决方案2】:

    最接近您所需功能的是@internal 命令。它仍然与您想要的相反,但可能比将所有内容包装在条件块中更方便。您需要注意 @internal 是 doc 块中的第一件事。

    此外,您可能需要设置配置HIDE_UNDOC_MEMBERSHIDE_UNDOC_CLASSES 才能真正从文档中删除MySecretPublicVar(因为如果设置为内部,它只会删除文档)。并确保 EXTRACT_ALL 设置为 false。

    即便如此,您也可能需要注意不要让您想要内部的东西意外溜走。所以,是的,doxygen 并不适合/不方便您的用例,或者至少需要一些努力才能做到这一点。

    【讨论】:

      猜你喜欢
      • 2018-12-06
      • 1970-01-01
      • 2013-08-24
      • 2010-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多