[MonoDevelop] code anaysis.

Oliver Stieber oliver.stieber at ukplc.net
Thu Mar 26 07:40:08 EDT 2009

	I've been thinking and it seems the sensible thing to do would be to write a spell checker and convention conversion tool before going too head long into code analysis.

Those projects will put some of the ground work in for code analysis like an extension point on class ConversionVisitior : ICSharpCode.NRefactory.Visitors.AbstractAstVisitor class ConversionVisitior : ICSharpCode.NRefactory.Visitors.AbstractAstVisitor and a bit of the GUI work that's needed.

It will also get me familiar with modifying code inside MD and I've been planning to turn an open source spell checker into a super spell checker for a while.

Basic plans for the spell checker are to recognise various different naming conventions (and conventions configured by the user) and use that to break down declarations into words and acronyms that can have their spelling checked. I also plan to make the spell checker fairly intelligent so that it learns new mistake patterns and prioritises correct spellings based on the users common mistake patterns etc... possibly with a server side so that patterns are built up by opt-in users to massively improve it's learning ability to get as good if not better than google. dictionaries could be shared between an organisation and a user can upload their dictionary so they can get it anywhere they want.

With the convention conversion tool I was planning to have some preconfigured standard conventions and allow the user to configure their own.

Configuration will be defining different conventions and assigning them to classes , function and fields. With the ability to block public fields and convert them into private fields and properties.

e.g. starts with m_ has Camel casing and abv and acrs are in upper case.

Or all lower case with _ as a word separator 

Or Hungarian notation at the front followed by _ and then Pascal casing. (where the Hungarian letters for the types can be user defined)

Configuration for matching existing code will be a lot easier. Just what to strip off the front / back and what the delimiters are. There can be lots of configurations for matching existing code and all of the (that are turned on) will be used.

I also plan to put something in to deal with the various rules on using {s or not as the case may be. Which could be extended to the editor so that the editor follows the pattern setup in the coding conventions.

More information about the Monodevelop-list mailing list