HaxeFoundation / dox

Haxe documentation generator.
MIT License
145 stars 36 forks source link

Empty package #81

Closed ibilon closed 9 years ago

ibilon commented 10 years ago

Currently empty packages are shown in the navigation. By empty I mean a package with all of its classes with @:dox(hide). It would make more sense to not add them.

Simn commented 10 years ago

You can try fixing that around here: https://github.com/dpeek/dox/blob/master/themes/default/templates/nav.mtt#L13

From a quick look there should be an additional condition there, something like && args[2].length > 0.

ibilon commented 10 years ago

Did that and it works for one of the two packages concerned, but the other one has a length of one, even though its <ul> is empty.

Tried "tracing" the value of args[2].length and the value is weird, for some packages it's the number of sub packages and classes but for other the number is off.

Simn commented 10 years ago

Try ::api.debug(args[2]):: and see if you notice something weird.

ibilon commented 10 years ago

Instead of being an empty array it's Api.hx:201: [math,com.haxepunk.math,[TPackage(_Vector,com.haxepunk.math._Vector,[TClassdecl({ module => com.haxepunk.math.Vector, file => ../com/haxepunk/math/Vector.hx, meta => [], path => com.haxepunk.math._Vector.Vector_Impl_, interfaces => { length => 0 }, params => [], doc => <p></p>, fields => { length => 0 }, isPrivate => true(...)

Vector is a public abstract with a public constructor and @:dox(hide).

EDIT: oh and I traced args, easier to look around

Simn commented 10 years ago

Ah, I guess the problem is that the @:dox(hide) metadata is not promoted to the abstract implementation class.

We have to fix that in the Dox processor I suppose.