Improving ddoc
Mathias LANG via Digitalmars-d
digitalmars-d at puremagic.com
Fri Jan 2 06:12:12 PST 2015
On Friday, 2 January 2015 at 09:40:45 UTC, Andrei Alexandrescu
wrote:
>> * Automatically generating cross-references
>
> Nice.
https://github.com/rejectedsoftware/ddox/blob/master/README.md#ddox-documentation-engine
I'm still wondering why it's not shipped with DMD.
>> * A list of summary with all symbols should be automatically
>> generated
>> for a module
>
> Shouldn't we leave that to postprocessing?
Agree. It would break one of the goal of Ddoc (It does not repeat
information that the compiler already knows from parsing the
code.)
Note that ddox also do that
http://vibed.org/api/vibe.core.concurrency/ . It's not perfect,
but you're sure it's always up to date, and is way more readable
than what Phobos is currently doing with BOOKTABLE.
>> * Documentation for private symbols should be generated but
>> hidden by
>> default in the output with a button to show them
>
> Nice.
I don't see it being useful for Phobos, or any other library.
Have one doc with the public API available, optionally another
one for the framework/lib devs (but those often prefers the code).
>> * Simplified signatures. Template constraints and default
>> values which
>> are special symbols like __FILE__ or __LINE__ should be hidden
>> by default
>
> Nice.
Strongly agree for the constraints. For __FILE__ & __LINE__, what
would it affects ? I can think of exception-related stuff,
anything else ?
Also, I was very puzzled with $(D) when I was looking for the
right way to use it. I think the answer is relevent to this
dicussion:
https://github.com/rejectedsoftware/vibe.d/pull/875
Most of the issues, IMO, are stylistic. We should firstly work on
improving the output, rather than introduce new syntax.
Also, documentation is much more subjective than code (just like
success and adult content :o) ). We could introduce control flags
to ensure some minima are met, examples that come to mind are:
--ddoc-werror (build failure on doc warning),
--ddoc-require=params,returns (require Params and Returns
sections to be defined, those can be empty for trivial functions),
--ddoc-document=public (require every public symbols to be
documented).
More information about the Digitalmars-d
mailing list