Thread overview | |||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
March 08, 2005 Doxygen and D | ||||
---|---|---|---|---|
| ||||
Found out why doxygen didn't seem to support D, the file suffix check in Doxygen 1.4.1 was flawed... http://bugzilla.gnome.org/show_bug.cgi?id=169640 > Thanks, apparently you're the first D user that tries doxygen ;-) With a little more effort, it shouldn't be at all hard to make Doxygen support most of the D files. (natively, without filtering into C++/Java first) If you feel that you could help, then please do ? (if nothing else, then just by running it with your code and noting the areas that needs improvement?) http://www.doxygen.org/ --anders |
March 08, 2005 Re: Doxygen and D | ||||
---|---|---|---|---|
| ||||
Posted in reply to Anders F Björklund | FWIW: Mango still uses a custom filter, and some specific Doxygen/cpp settings (for handling version() etc), to produce its documentation. Both are available via the \trunk\mango\doc folder over at dsource.org In article <d0l0nr$6re$1@digitaldaemon.com>, =?ISO-8859-1?Q?Anders_F_Bj=F6rklund?= says... > >Found out why doxygen didn't seem to support D, >the file suffix check in Doxygen 1.4.1 was flawed... > >http://bugzilla.gnome.org/show_bug.cgi?id=169640 >> Thanks, apparently you're the first D user that tries doxygen ;-) > > >With a little more effort, it shouldn't be at all >hard to make Doxygen support most of the D files. >(natively, without filtering into C++/Java first) > >If you feel that you could help, then please do ? >(if nothing else, then just by running it with your >code and noting the areas that needs improvement?) > >http://www.doxygen.org/ > >--anders |
March 08, 2005 Re: Doxygen and D | ||||
---|---|---|---|---|
| ||||
Posted in reply to Kris | Kris wrote:
> FWIW: Mango still uses a custom filter, and some specific Doxygen/cpp settings
> (for handling version() etc), to produce its documentation. Both are available
> via the \trunk\mango\doc folder over at dsource.org
Which dfilter are you using ? I could only find a "dfilter.exe" binary ?
Is there any source code available for it, like in D as the others... ?
--anders
|
March 08, 2005 Re: Doxygen and D | ||||
---|---|---|---|---|
| ||||
Posted in reply to Anders F Björklund | Sure ~ I'll check it in later. The filter just handles additional comment-styles .. but it's the config file that does the version() stuff and so on. It does that by defining certain CPP macros to rename some D keywords. In article <d0l3d5$ab7$1@digitaldaemon.com>, =?ISO-8859-1?Q?Anders_F_Bj=F6rklund?= says... > >Kris wrote: > >> FWIW: Mango still uses a custom filter, and some specific Doxygen/cpp settings (for handling version() etc), to produce its documentation. Both are available via the \trunk\mango\doc folder over at dsource.org > >Which dfilter are you using ? I could only find a "dfilter.exe" binary ? > >Is there any source code available for it, like in D as the others... ? > >--anders |
March 08, 2005 Re: Doxygen and D | ||||
---|---|---|---|---|
| ||||
Posted in reply to Kris | Kris wrote: > Sure ~ I'll check it in later. The filter just handles additional comment-styles > .. but it's the config file that does the version() stuff and so on. It does > that by defining certain CPP macros to rename some D keywords. That part I saw. I tried upgrading your Doxyfile to 1.4.1 and then running without any filter, to see what kind of trouble we're in... > Searching for friends... > Searching for documented defines... > Computing template instances... > zsh: segmentation fault doxygen Oops! Seems like there are a few bug reports left to write yet :-) For now, I think you'd do best in sticking with Doxygen 1.3.x ? > Doxygen Release 1.3.6 > > New features > Include a patch by Hauke Duden which adds preliminary support > for the D programming language (see http://www.digitalmars.com/d). Constructors were simple, but debug() and version() are gonna be fun. We probably also want to rename namespaces to modules, at some point? And of course you could probably confuse it silly, with clever use of alias and mixins and other features that are far from C++ / Java. Still, it's a great tool - and Dimitri is busy adding Objective-C support on his shiny new Mac, so what's another language then ? :-) The class diagrams and the PDF documentation generator are awesome, and I find the general look of the new HTML stylesheet to be great... --anders |
March 08, 2005 Re: Doxygen and D | ||||
---|---|---|---|---|
| ||||
Posted in reply to Kris | Also, previously unreleased, I have made my own modifications to dfilter.d to allow version() blocks translated into #ifdef and #elif and #endif blocks, as well as other minor modifications I found helpful. I'll post it in the bindings project on dsource.org. I still think they should have a code-snippets section for shared D modules not big enough to warrant the need for a full SVN repository. In article <d0l2l7$9g0$1@digitaldaemon.com>, Kris says... > >FWIW: Mango still uses a custom filter, and some specific Doxygen/cpp settings (for handling version() etc), to produce its documentation. Both are available via the \trunk\mango\doc folder over at dsource.org > Regards, James Dunne |
March 08, 2005 Re: Doxygen and D | ||||
---|---|---|---|---|
| ||||
Posted in reply to James Dunne | James Dunne wrote: > Also, previously unreleased, I have made my own modifications to dfilter.d to > allow version() blocks translated into #ifdef and #elif and #endif blocks, as > well as other minor modifications I found helpful. I did a quick patch to support D constructors and deathtractors: http://bugzilla.gnome.org/show_bug.cgi?id=169641 > I'll post it in the bindings > project on dsource.org. I still think they should have a code-snippets section > for shared D modules not big enough to warrant the need for a full SVN > repository. Found it, at: http://svn.dsource.org/svn/projects/bindings/trunk/dfilter.d --anders |
March 08, 2005 Re: Doxygen and D | ||||
---|---|---|---|---|
| ||||
Posted in reply to Anders F Björklund | In article <d0l8u4$gqg$1@digitaldaemon.com>, =?ISO-8859-1?Q?Anders_F_Bj=F6rklund?= says... > >James Dunne wrote: > >> Also, previously unreleased, I have made my own modifications to dfilter.d to allow version() blocks translated into #ifdef and #elif and #endif blocks, as well as other minor modifications I found helpful. > >I did a quick patch to support D constructors and deathtractors: http://bugzilla.gnome.org/show_bug.cgi?id=169641 Cool! doxygen code-patches are probably much more useful/better than pre-filtering code. > >> I'll post it in the bindings >> project on dsource.org. I still think they should have a code-snippets section >> for shared D modules not big enough to warrant the need for a full SVN >> repository. > >Found it, at: http://svn.dsource.org/svn/projects/bindings/trunk/dfilter.d > >--anders That's where she be. I was workin on a school independent study project and needed to hack up a quickie presentation for my prof. doxygen did the trick with dfilter alright. I was too lazy to actually d/l a copy of the doxygen source and modify it, then recompile it myself. Also, am I the only one who finds doxygen's use of external DOT tools to generate graphs extremely and unreasonably SLOW? Maybe it's just me, but calling external programs within a program doesn't seem to be optimal. Regards, James Dunne |
March 08, 2005 Re: Doxygen and D | ||||
---|---|---|---|---|
| ||||
Posted in reply to Kris | Kris wrote: > .. but it's the config file that does the version() stuff and so on. It does > that by defining certain CPP macros to rename some D keywords. PREDEFINED = DOXYGEN_SHOULD_SKIP_THIS \ "version(x)=public class Version##x" \ interface=struct Interfaces should be able to be handled by Doxygen, once the "D mode" is activated (and not crashing...) They are pretty similar to Javas, which is supported. The "missing" semicolons after certain structures are also handle with the same "D mode", by the way. Using "class" for version(x) probably doesn't work too good for the "else" statements, or does it ? James Dunne wrote: > Also, previously unreleased, I have made my own modifications to dfilter.d to > allow version() blocks translated into #ifdef and #elif and #endif blocks, as > well as other minor modifications I found helpful. // These modifications allow version (identifier) { } else { } blocks // to be replaced with corresponding C preprocessor #ifdef blocks which // doxygen recognizes and interprets. The identifiers are translated // into all uppercase with a VERSION_ prefix. This probably works better, and is closer to how D handles versions (which should also include "debug", by the way?) The braces are optional, but that could be added easily. It seems like the best (ultimately) way of handling this is adding new code to Doxygen, to make it able to handle the "version" and "debug" ? I've added an "isD" boolean next to the Objective-C stuff, and plan to make some use of it one day. Although I wouldn't hold my breath... --anders |
March 08, 2005 Re: Doxygen and D | ||||
---|---|---|---|---|
| ||||
Posted in reply to James Dunne | James Dunne wrote:
> I was too lazy to actually d/l a copy of the doxygen source and modify it, then
> recompile it myself.
I'm using RPM to handle builds, using pristine sources and patch files.
This works good, both for version updates and for hacking new stuff in.
I can recommend it... (or some other similar* automated build method ?)
As a bonus you get reproducible builds and ready-made binary packages.
--anders
* RPM, Deb, Fink, DarwinPorts, Ports, Gentoo, whatever works for you.
|
Copyright © 1999-2021 by the D Language Foundation