2008-10-25 9 views

ответ

6

Посмотрите на 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.

5

Delphi + JavaDoc = DelphiCodeToDoc

+1

Я пробовал это, и он разбился, и файл, содержащий анонимную процедуру. – awmross 2013-05-30 04:51:23

5

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

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

+1

Я также использую PasDoc и запускаю его из скрипта сборки Ant, который называется CruiseControl, FWIW. – 2008-10-30 04:25:11

+0

Ричард, это хороший момент, поскольку он показывает, что его можно автоматизировать с помощью сборки. – Pauk 2009-06-06 14:44:08

5
+0

Я использую его успешно в последние пять или около того лет, все еще отличное и простое решение. – mjn 2009-04-06 16:17:02

+0

отлично работает (и выглядит как документация для проекта c и C++, которую мы также используем) – sdu 2009-12-18 08:55:30

1

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

1

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

0

Вопрос довольно старый, но сегодня у меня была та же проблема и нашла этот пост. 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 /> не работает.