[Monodevelop-devel] Brainstorming for 2.4 code quality

Mike Krüger mkrueger at novell.com
Mon Aug 31 07:19:47 EDT 2009


Hi

We should make monodevelop easier understandable & extendable. 

I think we should do some brain storming about stuff that we encounter
during our daily work with the source code. I begin with the 
view/pad/workbench/language binding system.

* The way it's used it's not build for. 

- For example the workspace window should wrap the gui the view content
is displayed in (for example tab page or window) - therefore it should
be a DockItem directly. It should contain a collection of view contents
(for example text editor/forms designer) - but stetic doesn't use this,
it does it's own. I don't know if the subviews are currently used.

- The Layout abstraction was for enabling other layout managers.
SharpDevelop had a floating layout (think of gimp layout) and a tabbed
layout (called sdi) - later I got rid of the floating layout, because
maintaining layouts is error prone. Now we don't need the abstraction
anymore.

* Workbench: We've IWorkbench, Workbench (not implementing IWorkbench
or inheriting DefaultWorkbench), DefaultWorkbench (not inheriting from
Workbench). Easy to explain ?

* Language bindings:

- They provide parsers/refactories - but no ambiences ? 
- They provide comment tags, but we get comment tags from the syntax
modes.
- They bind to a 'language' and can ask if a file is a source code file
ore not - they're not using our newer mime type system (inconsistent!)
- Maybe they should be attached to a ProjectDom or ViewContent to allow
easier access.

When 2.2 is released we should put some effort on building a better
framework people can work with. I would like that everybody looks out
for possible code issues. At first not finding solutions, only
collecting possible issues. When we've time and collected enough we can
go over to design work. 

We can need some input from anyone who implemented an addin for
monodevelop. The core team works too long with the code base. Therefore
we're used to it and don't see most possible issues.

Regards
Mike 



More information about the Monodevelop-devel-list mailing list