[Mono-docs-list] [PATCH] Generics Support for monodoc/tools

Joshua Tauberer jit at occams.info
Thu Oct 5 07:32:35 EDT 2006

Jonathan Pryor wrote:
> On Wed, 2006-10-04 at 17:28 -0400, Joshua Tauberer wrote:
>> Another thing... I wonder if it would make sense to rename the index.xml
>> Name and File attributes to DisplayName and Signature to make what they
>> represent clearer, and, I think, because the File attribute is used not
>> just for file locations but also for matching signatures in crefs.
> I'm not sure DisplayName is a significant improvement over Name.  I
> actually prefer the shorter names, if possible.
> You make a good argument for @File, though, as it's really used for all
> type matching.  I don't like Signature though, as a "signature" is
> frequently used to refer to the prototype of a method, and this is
> something different.
> Perhaps CanonicalName?

To me, it isn't obvious what the difference is between Name and
CanonicalName.  There must be a name for what Type`1 is actually called,
versus Type<A>.

>> And the File attribute should be mandatory (i.e. inserted on update)
>> since monodocs2html assumes a File attribute is present on all type nodes.
> It should be easy to get monodocs2html to "fallback" to using @Name if
> @File is empty or doesn't exist, so I don't find this a credible reason
> to require the presence of @File.

Sure, if monodocs2html can fall back, that's a-ok with me.

>> Also, do you know of a reason for *sticking* with +'s in nested types?
> I know of a good reason: I *tried* that, and it failed *dismally* when I
> tried to get things working in monodoc/engine.
> Simple experiment: take any monodocer-generated directory tree with a
> nested type, and edit the Namespace/Outer+Inner.xml file to change:
> 	<Type Name="Outer+Inner" FullName="Namespace.Outer+Inner">
> to
> 	<Type Name="Outer.Inner" FullName="Namespace.Outer.Inner">
> Then edit the file within monodoc: monodoc --edit dirname
> When you view the documentation for that file, instead of getting a link
> for the "Namespace Namespace", you'll get a link for the
> "Namespace.Outer" namespace.  This is because monodoc/engine uses
> everything before the last '.' as the namespace, and everything after it
> as the type name.

As long as one has the type's "Name", you can just strip that off to get
the namespace, rather than using periods: substring(@FullName, 0,
string-length(@FullName) - string-length(@Name) - 1)

I guess the +/. issue is mostly orthogonal to getting generics working

- Joshua Tauberer


"Strike up the klezmer and start acting like a man. You're
about to have a truth-mitzvah."  -- The Colbert Report

More information about the Mono-docs-list mailing list