16

对于 delphi 代码,我需要一个类似于 javadoc 或 c# xml doc 的代码文档工具。什么是最好的工具?我更喜欢一种技术,它在未来与微软沙堡项目兼容。

4

8 回答 8

7

看看SynProject,一个用 Delphi 编写的开源工具。

它旨在处理完整的文档工作流程,从规范到发布说明,包括测试、架构和设计;当然还有一个集成的 Delphi 解析器可以从现有的 Delphi 源代码生成架构文档。

对于架构文档,源代码可以提取注释(ala PasDoc),然后将此文本嵌入到主架构文档中(带有类层次结构图和单元依赖关系)。

您在专用文本编辑器中使用类似于 wiki 的语法编写纯文本文件,然后 SynProject 会从中创建格式良好的 Word 文档。一些向导可用于访问内容。但由于它存储为普通文件,因此多个程序员可以使用任何 SCM 工具(SVN、Fossil ...)在其上进行编写。

例如,我目前使用它来为一个庞大而古老的 Delphi 应用程序(大约 2,000,000 行用 Delphi 5 和 6 编写的代码)编写维护文档,之前没有可用的文档。您描述对代码所做的更改(通过引用单元/类/方法),然后该工具将更新所有文档以反映和跟踪这些修改。SynProject 的设计符合一些非常“精细”的法规(IEC 62304),但由于其独特的“扁平”设计,可用于任何项目。

注意:我在这个问题之后很长时间才发布这个问题,因为 SynProject 此时不存在,值得一看。该线程已被定义为该问题的参考

于 2011-02-09T08:12:37.140 回答
6

据我所知,没有任何工具可以轻松与 Microsoft Sandcastle 兼容 - 至少在有人真正费心编写一个、修改现有的或创建一个工具链来正确转换输出之前。

我个人使用PasDoc取得了巨大成功。我建议构建最新的 SVN 版本,因为当前版本偶尔会出现复杂的接口定义。

于 2008-10-25T08:14:07.577 回答
5

Delphi + JavaDoc = DelphiCodeToDoc

于 2008-10-25T07:49:15.893 回答
5

尝试: - Doxygen文档 - Pas2Dox

于 2008-10-25T16:44:23.357 回答
2

自 Delphi 2005 以来,它在 Delphi 编译器中构建。它使用使用 XML 样式注释的 XMLDoc 标准。就像 C# 一样,所以我猜 Sandcastle 可以处理它。请参阅http://dn.codegear.com/article/32770http://tondrej.blogspot.com/2006/03/xml-documentation-in-delphi-2006.html

另见记录 Delphi

于 2008-10-28T12:32:22.630 回答
1

Sandcastle 需要访问程序集才能生成它的文档,这意味着它仅适用于 .net 语言(尽管我不确定 Delphi.Net 是否可行)。但是,Delphi 2007 和 2009 具有与 C# 非常相似的内联 XML 文档。当您在项目选项中打开“生成 XML 文档”选项时,它将根据这些注释构建 XML 文档。然后可以使用 XSLT 生成您需要的任何文档格式(这是困难的一点)。

于 2008-10-27T14:34:27.720 回答
1

DelphiCodeToDoc也有一个命令行来使用它和持续集成工具(例如)。

于 2009-12-17T22:55:51.790 回答
1

这个问题很老了,但我今天遇到了同样的问题,发现了这篇文章。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 />不起作用。

于 2016-01-18T11:59:09.373 回答