On 1/1/15 2:38 PM, Jacob Carlborg wrote:
On 2014-12-31 20:50, Andrei Alexandrescu wrote:

In wake of the recent discussions on improving ddoc syntax we're looking
at doing something about it. Please discuss any ideas you might have
here. Thanks!

I think there are two big issues with Ddoc: its syntax and its lack of
functionality. I think the major reason for these issues is that Ddoc is
a general text macro tool. Personally I would just throw out Ddoc and
start completely fresh, I know that is too extreme so I'm not suggesting
that.

Sounds great, thanks.

I think the solution is to use Ddoc as it is today, with full support
for Github flavored Markdown added and a couple of other enhancements.

Full support would probably break a lot of extant documentation.

The reason is listed below:

I'm not going to argue so much about the syntax since many others have
already done so.

The functionality that I feel is missing:

* Automatically generating cross-references

Nice.

* Inhering documentation. Methods that override some other method should
automatically inherit the documentation of the overridden method, unless
there's already documentation present for that method or explicitly
disable the inheritance with a command.

Nice!

* A list of summary with all symbols should be automatically generated
for a module

Shouldn't we leave that to postprocessing?

* Documentation for private symbols should be generated but hidden by
default in the output with a button to show them

Nice.

* A nice tree view with all packages and modules with filter for all
symbols

This seems like a matter of styling, not functionality.

* Automatically create links to the source code for each symbol. This
could either be to syntax highlighted source code Ddoc generates or to
Github. There could be a flag (or some other way) to specify which
Github project to link to

Nice.

* Simplified signatures. Template constraints and default values which
are special symbols like __FILE__ or __LINE__ should be hidden by default

Nice.

The following should automatically be generated for a given class:

* Links to all base classes and interfaces of a class
* Links to all symbols from all base classes and interfaces
* Links to all known subclasses

That are just a couple of suggestions. Just take a look at some existing
documentation for other language and see what's missing [1], [2].

[1]
http://help.eclipse.org/luna/index.jsp?topic=%2Forg.eclipse.jdt.doc.isv%2Freference%2Fapi%2Foverview-summary.html


[2] http://www.scala-lang.org/api/current/#scala.collection.Iterable

Looks like a great list, thanks.


Andrei

Reply via email to