Мне нужен инструмент для документирования кода, подобный javadoc или C# xml doc для кода delphi. Какой лучший инструмент? Я предпочитаю технологию, которая в будущем совместима с проектом Microsoft sandcastle.Документация по коду для delphi, аналогичная javadoc или C# xml doc
ответ
Посмотрите на 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 в настоящее время не существует, и его стоит посмотреть. Эта тема has been defined as a reference for that question.
Delphi + JavaDoc = DelphiCodeToDoc
Насколько мне известно, не существует инструмент легко совместим с Microsoft Sandcastle - по крайней мере, пока кто-то на самом деле не мешает, чтобы написать одну, чтобы изменить существующий или создать инструментальная цепочка для правильного преобразования вывода.
Я лично использовал PasDoc с большим успехом. Я рекомендую создать последнюю версию SVN, так как текущая версия иногда скрипит на сложных определениях интерфейса.
Я также использую PasDoc и запускаю его из скрипта сборки Ant, который называется CruiseControl, FWIW. – 2008-10-30 04:25:11
Ричард, это хороший момент, поскольку он показывает, что его можно автоматизировать с помощью сборки. – Pauk 2009-06-06 14:44:08
Sandcastle необходимо получить доступ к сборкам, чтобы генерировать это документация, которая означает, что она применима только для языков .NET (хотя я не уверен, что в состоянии Delphi. Сеть). Тем не менее, Delphi 2007 и 2009 имеет встроенную XML-документацию, очень похожую на C#. Когда вы включаете опцию «генерировать XML-документацию» в параметрах проекта, она будет строить XML-документацию на основе этих комментариев. XSLT затем может использоваться для создания любого необходимого формата документации (это сложный бит).
С Delphi 2005 он построен в компиляторе Delphi. Он использует стандарт XMLDoc, который использует комментарии XML-стиля. Так же, как и C#, поэтому я думаю, что Sandcastle справится с этим. См http://dn.codegear.com/article/32770 и http://tondrej.blogspot.com/2006/03/xml-documentation-in-delphi-2006.html
Также см Documenting Delphi
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 />
не работает.
Я пробовал это, и он разбился, и файл, содержащий анонимную процедуру. – awmross 2013-05-30 04:51:23