【发布时间】:2008-10-25 07:24:19
【问题描述】:
我需要一个类似于 javadoc 或 c# xml doc 的代码文档工具用于 delphi 代码。什么是最好的工具?我更喜欢一种技术,它在未来与微软沙堡项目兼容。
【问题讨论】:
-
RAD Studios XML 文档 评论记录在docwiki.embarcadero.com/RADStudio/Rio/en/…
标签: delphi javadoc sandcastle
我需要一个类似于 javadoc 或 c# xml doc 的代码文档工具用于 delphi 代码。什么是最好的工具?我更喜欢一种技术,它在未来与微软沙堡项目兼容。
【问题讨论】:
标签: delphi javadoc sandcastle
看看SynProject,一个用 Delphi 编写的开源工具。
它旨在处理完整的文档工作流程,从规范到发布说明,包括测试、架构和设计;当然还有一个集成的 Delphi 解析器,可以从现有的 Delphi 源代码生成架构文档。
对于架构文档,源代码可以提取 cmets(ala PasDoc)然后将此文本嵌入到主架构文档中(带有类层次结构图和单元依赖关系)。
您在专用文本编辑器中使用类似于 wiki 的语法编写纯文本文件,然后 SynProject 会从中创建格式良好的 Word 文档。一些向导可用于访问内容。但由于它存储为纯文件,因此多个程序员可以使用任何 SCM 工具(SVN、Fossil...)在其上进行编写。
例如,我目前使用它来为一个庞大而古老的 Delphi 应用程序(大约 2,000,000 行代码用 Delphi 5 和 6 编写)编写维护文档,之前没有可用的文档。您描述对代码所做的更改(通过引用单元/类/方法),然后该工具将更新所有文档以反映和跟踪这些修改。 SynProject 的设计符合一些非常“精细”的法规 (IEC 62304),但由于其独特的“扁平”设计,可用于任何项目。
注意:我在这个问题之后很长时间才发布这个问题,因为 SynProject 此时不存在,值得一看。本帖has been defined as a reference for that question。
【讨论】:
据我所知,没有任何工具可以轻松与 Microsoft Sandcastle 兼容 - 至少在有人真正费心编写一个工具、修改现有工具或创建工具链以正确转换输出之前。
我个人使用PasDoc 取得了巨大成功。我建议构建最新的 SVN 版本,因为当前版本偶尔会出现复杂的接口定义。
【讨论】:
Delphi + JavaDoc = DelphiCodeToDoc
【讨论】:
自 Delphi 2005 以来,它在 Delphi 编译器中构建。它使用使用 XML 样式 cmets 的 XMLDoc 标准。就像 C# 一样,所以我猜 Sandcastle 可以处理它。见http://dn.codegear.com/article/32770和http://tondrej.blogspot.com/2006/03/xml-documentation-in-delphi-2006.html
【讨论】:
Sandcastle 需要访问程序集才能生成它的文档,这意味着它仅适用于 .net 语言(尽管我不确定 Delphi.Net 是否可行)。但是,Delphi 2007 和 2009 具有与 C# 非常相似的内联 XML 文档。当您在项目选项中打开“生成 XML 文档”选项时,它将基于这些 cmets 构建 XML 文档。 然后可以使用 XSLT 生成您需要的任何文档格式(这是困难的一点)。
【讨论】:
DelphiCodeToDoc 也有一个命令行来使用它与持续集成工具(例如)。
【讨论】:
这个问题很老了,但我今天遇到了同样的问题,发现了这篇文章。 Delphi 2007 允许以下语法,这似乎等同于 C# 文档:
/// <summary>
/// Summary of the function / class
/// </summary>
/// <param name="param1">Description of the parameter param1</param>
/// <param name="param2">Description of the parameter param2</param>
/// <param name="param3">Description of the parameter param3</param>
/// <returns>Description of the return value</returns>
function test(param1, param2, param3: string): string;
对于<summary>,似乎不可能允许换行。 <br /> 不起作用。
【讨论】: