[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-core-devel
Subject:    FW: Proposal: replace KDOC with Doxygen after 2.0 (fwd)
From:       "Peter Putzer" <pputzer () edu ! uni-klu ! ac ! at>
Date:       2000-10-23 21:51:03
[Download RAW message or body]



-----Original Message-----
From: Dimitri van Heesch [mailto:dimitri@stack.nl]
Sent: Monday, October 23, 2000 9:38 PM
To: Peter Putzer
Subject: Re: Proposal: replace KDOC with Doxygen after 2.0 (fwd)


>
> Stephan Kulow wrote:
> >
> > Richard Moore wrote:
> > >
> > > Antonio Larrosa Jiménez wrote:
> > > >
> > > > Peter Putzer escribió:
> > > > >
> > > > > >
> > > > > > - Can we force people to use the java doc syntax? I think
> > > > > > we should.
> > > > >
> > > > > Why? Actually I find the "LaTex" ("\command") syntax easier to
read, but
> > > > > that's just a preference.
> > > > >
> > > >
> > > > Peter, can you do a short description of the difference in the
> > > > "commands" ? (I've only used @p, @ref, @version, @author and a
little
> > > > more)
> > > >
> > > > > > - Can we force people to keep their docs in the header files
> > > > > > not in the .cpp?
> > > > >
> > > > > You can't do that now. If I choose to document something in the
.cpp
> +(not
> > > > > that I would, but just in theory), who's there to stop me?
> > > > >
> > > >
> > > > Does that mean that Doxygen doesn't allow having the docs in the
> > > > header files ?
> > >
> > > No, it supports docs in the header files. The only issue is if you
> > > can actively stop it allowing people to put their docs in the cpp
> > > files instead. According to Peter's other mail, the answer is yes.
> > >
> > I don't see it as disadvantage though. Some header files of ours
> > got a bit _too_ informative. Some short descriptions  in headers
> > are ok, but long texts get fast on my nerves :)
>
> I think this is more a feature request than a kdoc vs. doxygen issue.
> In any case both tools give you the option of including comments/docs
> that are not part of the generated HTML.

This can already be done with doxygen using the @mainpage and @page
commands. It may be not flexible enough for general documentation, but
I managed to write doxygen's user manual with it :-)

> If we're going to list feature requests then personally I would like:
>
> - Ability to define a global index of all qt and kdelibs, and any docs
> I add later such as my own library of reusable code.

This is not directly supported by doxygen at the moment.

> - A keyword index used to search for classes by function.

Doxygen has a separate search engine (called doxysearch) that can do this.
The memory requirements for building a search index (it is a suffix tree)
are still a bit too high for large projects. I have some idea on how to
improve this but no time yet :-(

> - A way to regenerate an individual file and retain its links to the
>   stuff you rebuilt 2 minutes ago. I guess this comes down to some sort
>   of dependency detection. It's stupid that you have to regenerate the
>   entire set of docs because you edit a single file. This facility would
>   also be a big help for tools authoring docs.

I agree that this would be nice, but this is a non-trivial change.
If you for instance inherit from a class you'd have to update
the diagrams for all base classes as well. But with some extra bookkeeping
it could be done.

As an partial solution doxygen offers a tag file mechanism, where you
can compress the link information of a set of sources into a single file and
than include that with other projects (much like a library is used to
combine objects and speedup linking). This way you only have to update
the part of the docs belonging to your own sub-project. One of things
I'd still like to do is change the tag file format to XML.

> - An extensible way of finding code that uses a particular class.

This is already done for functions (when SOURCE_BROWSER is set to YES),
but it is not yet perfect.

> - A way to cleanly document a set of classes as a functional group to
>   create pages like the 'structure index' in the Qt docs. This should
>   also tie in with my next request.
>
> - A way to provide one (or more) file which provides information about
>   a group of classes - this may be be an entire library, a group of
> related
>   libraries or simply a group of related classes. I don't care if this
>   is in a dummy header, an HTML file in the source (and some magic
>   elsewhere to define the group of classes) or whatever. The important
>   thing is that these docs should be properly integrated with the
>   generated docs.

Doxygen has the @defgroup and @ingroup for this purpose. You can put
the group description in a @defgroup comment block in a file somewhere.

> - A way to include extra (non-generated) files in the docs. Assuming
>   these would remain separate this would fix the issue Coolo mentions
>   too.

You could use a similar approach as Troll Tech did with their .doc files.

> - A way for other docs to reference the docs for a particular class
>   and remain portable. (Even if it means providing an install script
>   for a bunch of HTML files).

I think what you mean is provided by doxygen's tag file mechanism.
See http://www.stack.nl/~dimitri/qdbttabular/doc/html/hierarchy.html
for an example that links to the Qt docs. The "install script" is
generated by doxygen and written in perl.

> - A way to provide external metadata about exactly what is being
>   documented. Doxygen for example has a full C pre-processor, so
>   I would like to know what symbols were defined etc. when the
>   docs were made.

Could be added.

Regards,
  Dimitri

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic