Google-sovellukset
Päävalikko

Post a Comment On: mo.notono.us

"Brief GhostDoc v. 1.0.2 review"

1 Comment -

1 – 1 of 1
Blogger Oskar Austegard said...

Roland responded to my e-mailed review and has graciously allowed me to post his response here. In a follow-up he also notes that user-defined rules, including regular expressions, WILL be part of a future version:

_____________________________________________________

Hi Oskar,

thanks for your extensive feedback!

> [...Method names that to not start with a verb...]

Yes, GhostDoc needs some improvement in that area, but it's
kind of hard to do right. But it would be ok if at least some
of those method names would be handled correctly.

Rules matching a prefix (e.g. "To" as in "ToString") are relatively
easy and will come in a version after 1.10 (which is pretty close
to a code freeze)

For a method like DataBind a dictionary based approach could
be chosen (exakt match -> generate pre-defined text). This would
also be nice for very common methods like Equals.
It's already on my TODO list, but it has lower priority than
other items.

> Where it really falls short is when I use prefixes to separate
> and organize methods - for example I have a common web service
> that exposes web methods from multiple business rule classes -
> in this case I use the original class name as the prefix
> followed by an underscore - e.g. Company_SearchParent.
> For this GD returns "Company_s the search parent."

Ok something like this could be handled by a list of prefixes
that should be ignored -- I already do something similar for
explicit interface implementations, so it should be pretty
simple. Thanks for the suggestions, I'll definitely put that
on my list

> What I'd like to see is some way to set filters for (regular)
> expressions that GD should match, as well as filters that
> it should NOT match.

That's something I have thought about (although I'm not a
regex user); the problem is how the user would configure
such a rule. Sure, entering a regex in a text field is simple,
but it could be pretty tedious to open and close the dialog
over and over again until the expression is right.

As the number of rules grows in the future, some sort of a
"rule preview" (I won't say debugger) feature becomes necessary
to try out which rule actually matched e.g. the method signature.
Obviously a regexp rule would benefit from that.

> Actually, come to think of it, I believe GD needs to have some
> special setting for underscores to handle the default names of
> event handlers

Oh yes ;-) This gets on my nerves, too ... It's definitely
on my list (it didn't make 1.10, though)!

> Additionally, there needs to be user changeable settings for
> common terms: the term ID is one I'd like to keep as ID; i. d.
> looks strange to me.

Ok... ID is a very special case (which is handled incorrectly
by my word-detection algorithm). Do you have additional examples?

Acronyms are user-definable in 1.10, but ID is actually different
as it remains unchanged during text generation.

> Similarly, an event handler's EventArgs parameter, which VS.NET
> by default names e, ought to be trapped and expanded on
> (of course here you run into potential conflicts with Exceptions,
> which some people also give the name e - but that is why I use
> exc for Exceptions.).

Actually, that's not a problem because I process both type and
name (even though most rules do not make use of this).
EventArgs and On... methods are already on my list.


As I mentioned earlier, Version 1.10 is frozen and on its way to
a release (which is a long road of testing and writing documentation)
so be sure to check the GhostDoc website or my blog from time to time.

Version 1.20 will be the first to implement feature requests
by users.


If you have any suggestions, keep them coming...

Again, thanks for your feedback,

Roland
_____________________________________________________

Monday, August 16, 2004 3:49:00 PM

You can use some HTML tags, such as <b>, <i>, <a>

Comments on this blog are restricted to team members.

You will be asked to sign in after submitting your comment.
Please prove you're not a robot