[MonoDevelop] making some progress with code analysis fetures.

Oliver Stieber oliver.stieber at ukplc.net
Tue Feb 17 06:22:10 EST 2009


Hi,

            I've made some progress with doing near dynamic code
analysis a.k.a. resharper. I've worked out how the plugin system hangs
together (It would be really usefull if the ExtensionPoint told you
which interface / class you had to implement so that it would be easy to
write something to parse all the ExtensionPoints and tell you what you
need to know).

 

There are a few things I've noticed about MonoDevelop SVN that I would
like to fix so that I can develop using MonoDevelop.

 

1: For some reason not all the members of a compiled assembly are
getting parsed (and sometimes they don't even show in the class
browser). This stops code completion from working properly which is
really annoying especially as I only know my way around MonoDevelop a
little.

 

2: MonoDevelop changes the projects and make files for MonoDevelop when
you load them in a solution, removes the toolset to use and changes the
location of the version number (3.5) in the csproj, in one of the
projects it adds dependency,dependency when it should only be
dependency, this causes the make file to choak.

It doesn't load up referenced projects when you add the project to the
solution and then removes the references from the make and csproj files,
is there some reason for this? if not I'll fix it.

 

Has anyone got any objections to fixing these or some pointers in the
right direction, I know my way around monodevelop a little now so it
shouldn't take me too long.

 

 

My plan for dynamic code analysis is.

 

Create some base structures for doing common analysis tasks so I know
what I'm aiming for (Done, but not mapped from the dom yet)

Write a simple plugin to put in a using statement by searching for the
class name in the references and project. This is just something to show
and something so I get used to writing plugins, it will also help with
my development work too.

Improve the c# parser so that it doesn't choak on the first error.

Extend the DOM in monodevelop so that it can be used to populate my code
structure. (Is there any reason why your not using CodeDom with some
enhancements?)

Populate the code structure and start to write a code analysis addin.
including enhancements to the source editor etc....

Look at making the parser, the editor and the dom work in a incremental
way to improve the speed of things (if there are lots of rules I can see
reloading all the structures to process them taking quite a bit of time
if were doing the whole lot every time. Making everything incremental
will give us a huge speed boost.)

Add more code analysis features / look at merging some the the rules
from the assembly analysis tools out there.

 

 

anyone else think of anything else I should be doing?

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ximian.com/pipermail/monodevelop-list/attachments/20090217/c749bd78/attachment.html 


More information about the Monodevelop-list mailing list