Dokumentacja kodu dla delphi podobna do javadoc lub c# xml doc

Potrzebuję narzędzia do dokumentacji kodu podobnego do javadoc lub C# xml Doc dla kodu delphi. Jakie jest najlepsze narzędzie? Wolę technologię, która w przyszłości będzie kompatybilna z projektem Microsoft sandcastle.

Author: ChaosSpeeder, 2008-10-25

8 answers

Spójrz na SynProject, Narzędzie Open Source napisane w Delphi.

Został zaprojektowany do obsługi pełnego obiegu dokumentacji, od specyfikacji po uwagi do wydania, włącznie z testami, architekturą i projektowaniem; i oczywiście istnieje zintegrowany parser Delphi do generowania dokumentacji architektury z istniejącego kodu źródłowego Delphi.

Dla dokumentu Architektura, kod źródłowy może wyodrębnić komentarze (Ala PasDoc), a następnie osadzić ten tekst w głównej architekturze dokument (z diagramami hierarchii klas i zależnościami jednostek).

Piszesz plik tekstowy używając składni podobnej do wiki w dedykowanym edytorze tekstu, a następnie SynProject tworzy z niego dobrze sformatowane dokumenty Worda. Niektóre kreatory są dostępne, aby uzyskać dostęp do zawartości. Ale ponieważ jest przechowywany jako zwykły plik, wielu programistów może na nim pisać, używając dowolnego narzędzia SCM (SVN, Fossil...).

Na przykład, obecnie używam go do pisania dokumentacji konserwacyjnej dla ogromnego I Starego Delphi aplikacja (około 2 000 000 linii kodu napisanych w Delphi 5 i 6), bez wcześniejszej dostępnej dokumentacji. Opisujesz zmiany wprowadzone w kodzie (cytując jednostkę/klasę / metodę), a następnie narzędzie zaktualizuje wszystkie dokumenty, aby odzwierciedlić i prześledzić te zmiany. SynProject został zaprojektowany tak, aby był zgodny z bardzo "delikatnymi" regułami regulacyjnymi (IEC 62304), ale może być stosowany do każdego projektu ze względu na jego unikalną "płaską" konstrukcję.

notka: zamieszczam to od dawna po pytaniu, bo SynProject nie istniał w tym czasie i może być wart obejrzenia. Ten wątek został zdefiniowany jako odniesienie do tego pytania .

 6
Author: Arnaud Bouchez,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 10:29:40

Delphi + JavaDoc = DelphiCodeToDoc

 5
Author: CMS,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-25 07:49:15

Z tego, co wiem, nie ma narzędzia łatwo kompatybilnego z Microsoft Sandcastle - przynajmniej dopóki ktoś nie przeszkadza napisać, zmodyfikować istniejącego lub utworzyć toolchain, aby odpowiednio przekształcić wyjście.

Osobiście używałem PasDoc z wielkim sukcesem. Polecam zbudować najnowszą wersję SVN, ponieważ obecne wydanie czasami wykrzykuje skomplikowane definicje interfejsu.

 5
Author: Mihai Limbășan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-25 08:14:07
 5
Author: Drejc,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-25 16:44:23

Od Delphi 2005 jest on budowany w kompilatorze Delphi. Używa standardu XMLDoc, który używa komentarzy w stylu XML. Tak jak C#, więc chyba Sandcastle sobie z tym poradzi. Zobacz http://dn.codegear.com/article/32770 i http://tondrej.blogspot.com/2006/03/xml-documentation-in-delphi-2006.html

Zobacz też dokumentowanie Delphi

 2
Author: Lars Truijens,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:02:54

Sandcastle musi uzyskać dostęp do zestawów w celu wygenerowania dokumentacji, co oznacza, że dotyczy tylko języków. NET (chociaż nie jestem pewien, czy jest w stanie Delphi.Net). jednak Delphi 2007 i 2009 posiada wbudowaną dokumentację XML bardzo podobną do C#. Po włączeniu opcji "Generuj dokumentację XML" w opcjach projektu, dokumentacja XML zostanie zbudowana na podstawie tych komentarzy. XSLT może być następnie użyty do wygenerowania dowolnego formatu dokumentacji, jakiego potrzebujesz (ten jest trudnym bitem).

 1
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-27 14:34:27

DelphiCodeToDoc ma również wiersz poleceń, aby używać go z narzędziem do ciągłej integracji (na przykład).

 1
Author: TridenT,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-12-17 22:55:51

Pytanie jest dość stare, ale miałem ten sam problem dzisiaj i znalazłem ten post. Delphi 2007 pozwala na następującą składnię, która wydaje się być równa 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;

Dla <summary> wydaje się, że nie ma możliwości, aby pozwolić linebreaks. Nie działa.

 1
Author: Daniel Marschall,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-18 12:05:23