Cross-references in ddoc

Robert Clipsham robert at octarineparrot.com
Sat Jul 4 14:52:11 PDT 2009


Ary Borenszweig wrote:
> I've seen both Tango and phobos documentation and it's really hard to 
> navigate. Consider this:
> 
> class HttpPost {
> 
>   void[] write(Pump pump)
> 
> }
> 
> Pump has no link on it. I can't tell what Pump is. I can see the source 
> code (in the web page) invokes super.write(pump), or something like 
> that, so I go to HttpClient and there it's not defined.

Tangos docs are generated with dil, which currently has limited semantic 
analysis, so adding a link isn't possible yet. Once dil gets more 
semantic analysis I believe links will be added in.

> 
> I open Tango's source code and I find this:
> 
> alias void delegate (IBuffer) Pump;
> 
> So some questions:
> 
> 1. (minor problem) Why isn't this appearing in the documentation?

I'd like an answer to this too, it's a pain to have to look at the 
source code to find something simple like this.

> 2. (major problem) How do you expect users to use your code if they 
> can't know what a given method accepts, or what that type is, or how to 
> find where a type that's returned by a function is defined?

Don't the docs already give this? (Except where it's defined, which 
isn't possible due to the aforementioned reason)

> Documentation is *really* important when programming.
> 
> 3. Is this a limitation in ddoc?

It's a limitation in dil. dmd does not have the same limitations, 
however I've never needed to generate any docs so can't say much here.

> 4. Is there a tool to generate documentation with cross-references?

dmd probably can do this, again I've never done it so don't know.

> 5. Would it help if Descent generated cross-referenced documentation for 
> a project?

I'm sure someone would find it useful to be able to click a button to 
generate documentation rather than hit a terminal and enter a command.


More information about the Digitalmars-d-learn mailing list