Кодовая документация для delphi, аналогичная javadoc или С# xml doc

Мне нужен инструмент для документирования кода, похожий на javadoc или С# xml doc для кода delphi. Какой лучший инструмент? Я предпочитаю технологию, которая в будущем совместима с проектом Microsoft sandcastle.

Ответы

Ответ 1

Посмотрите SynProject, инструмент с открытым исходным кодом, написанный на Delphi.

Он был разработан для обработки полного документооборота, от спецификаций до выпуска заметок, включая тесты, архитектуру и дизайн; и, конечно же, имеется встроенный анализатор Delphi для создания документации по архитектуре из существующего исходного кода Delphi.

Для документа архитектуры исходный код может извлекать комментарии (ala PasDoc), а затем вставлять этот текст в основной документ архитектуры (с диаграммами иерархии классов и зависимостями блоков).

Вы пишете текстовый файл с использованием википодобного синтаксиса в выделенном текстовом редакторе, затем SynProject создает из него хорошо сформированные документы Word. Некоторые Мастера доступны для доступа к контенту. Но поскольку он хранится в виде простого файла, на нем могут записываться несколько программистов, используя любой инструмент SCM (SVN, Fossil...).

Например, я в настоящее время использую его для написания документации по обслуживанию для огромного и старого приложения Delphi (около 2 000 000 строк кода, написанных на Delphi 5 и 6), без предварительной документации. Вы описываете изменения, внесенные в код (путем цитирования unit/class/method), затем инструмент обновит все документы, чтобы отразить и проследить эти изменения. SynProject был разработан с учетом некоторых очень "деликатных" правил регулирования (IEC 62304), но может использоваться для любого проекта из-за его уникальной "плоской" конструкции.

Примечание. Я отправляю это через некоторое время после вопроса, потому что SynProject в настоящее время не существует, и его стоит посмотреть. Этот поток был определен как ссылка для этого вопроса.

Ответ 3

Насколько мне известно, нет инструмента, легко совместимого с Microsoft Sandcastle - по крайней мере, пока кто-то действительно не захочет написать его, изменить существующий или создать инструментальную цепочку для правильного преобразования вывода.

Я лично использовал PasDoc с большим успехом. Я рекомендую создать последнюю версию SVN, так как текущая версия время от времени скрипит на сложных определениях интерфейсов.

Ответ 4

Попробуйте: - Документация Doxygen - Pas2Dox

Ответ 5

Так как Delphi 2005 он построен в компиляторе Delphi. Он использует стандарт XMLDoc, который использует комментарии XML-стиля. Так же, как и С#, поэтому я думаю, что Sandcastle справится с этим. См. http://dn.codegear.com/article/32770 и http://tondrej.blogspot.com/2006/03/xml-documentation-in-delphi-2006.html

Также см. Документирование Delphi

Ответ 6

Sandcastle должен получить доступ к сборкам, чтобы сгенерировать его документацию, что означает, что он применим только для языков .net(хотя я не уверен, что Delphi.Net). Тем не менее, Delphi 2007 и 2009 имеет встроенную XML-документацию, очень похожую на С#. Когда вы включаете опцию "генерировать XML-документацию" в параметрах проекта, она будет строить XML-документацию на основе этих комментариев. Затем XSLT можно использовать для создания любого формата документации, который вам нужен (это сложный бит).

Ответ 7

DelphiCodeToDoc также имеет командную строку для использования с инструментом непрерывной интеграции (например).

Ответ 8

Вопрос довольно старый, но сегодня у меня была такая же проблема, и я нашел этот пост. Delphi 2007 допускает следующий синтаксис, который, по-видимому, равен документам С#:

/// <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 /> не работает.