[MonoDevelop] Impressions from using monodevelop

Matze Braun matze at braunis.de
Tue Feb 28 12:36:33 EST 2006

I just decided to take another look at monodevelop so I took a svn
snapshot and developed a little toy project with it. Monodevelop is
getting better each time I look at it, but it's still far away from
eclipse in java mode. Anyway I wrote down some of the issues I faced
while developing this toy project. I hope this is usefull info for you:


The "File/New File" menu entry is very confusing when you have a project
open.  Because it does not as you would expect add the file to the
project but it just creates an independent file somewhere on your disk.
(Is this feature usefull at all? I can't imagine a very usefull
situation myself at least...)

A very common task is creation of new classes and interfaces. The
intuitive way to do so would be clicking on the class browser and
finding 'New Class','New Interface' and such in the context menu (maybe
with a dialog that lets me set some options for the generated class).
The IDE should deal with all the boring background stuff like placing a
file somewhere, adding it to the project, ...  The current way where you
have to work on the file level (ie. adding new cs files instead of new
classes/interfaces) is not as easy and intuitive to use. A very good
example on how these things should work can be seen in java mode in the
eclipse IDE.

After adding a new file to the solution the editor should open this

Typically you use the class browser to lookup methods in other classes.
Often you also want to see the parameters needed. It would be very
helpfull to add a tooltip that displays them when you hold the mouse
over a method.

The fileselector for opening projects should only display .mdb files
(Because as beginner you have no idea what from these mds, pidb and mdp
file is your project)

The IDE should open the most recently used project after startup. Would
be even nicer if all open editors and other open windows would be
restored. Theideal would be a feeling like the IDE gets just suspended
when you quit it, so that you can seamlessly continue development next
time you start it. -> I just found an option for loading the most
recently used project on startup in the preferences, however it didn't
work for me and I wonder why it isn't enabled by default and why anyone
would want this option or the other behaviour at all)

When adding new classes and interface a .cs is automatically appended to
thename (providing some feedback about that would be helpfull). This is
not true when adding xml files for example.

I can add new files to the project by right clicking on the solution and
using Add/New File... unfortunatley I can't do that for Resources.
(There's just "Add Resource" which needs an existing file)

It would be helpfull to be able to specify the encoding of files in the
project.Along with a projectwide setting for file encoding.

Long messages in the error list are annoying to read as you have to
scroll left/right all the time. Wrapping the text would be alot better

Removing files from the project should ask the user whether he already
wantsto remove the file from disk (as this is often the case). This
should be done instead of this "are you really sure?" dialog box.

Intellisense/Code completion:

Eclipse has this very usefull feature where it automagically writes the
needed import statement when you select a class in the intellisense
list. It should be possible to do the same for the usings in C# I think.

After finding a function with the help of intellisense and writing the
opening '(' you often want to know what parameters are required.
Pressing CTRL+Space after the opening '(' should display them.

When typing in the classname of a nonexistant class and then hitting
CTRL+Space (example type "XmlReader" (without an using System.Xml
statement in your app) hit CTRL+Space and all you typed will be remove
and replaced with something else from the list (_AppSettings in my
case), very annoying as you have to type the stuff again.


When using convertTabsToSpaces option, then 4 spaces should still feel
like a tab. Ie. if you press delete or backspace on 4 spaces they should
all be deleted at once, when navigating with the cursor, jump 4 spaces
at once.

Smart indentation seems to be only performed after pressing return. It
wouldbe better to get the feedback about the indentation operations a
bit earlier.  A good example is when you write a '}' then you expect the
indentation to instantly decrease 1 level. As this doesn't happen until
you press return you often find yourself removing the indentation
manually before pressing return on the line.


Smart indentation only works when a file has been saved (happens when
use the File/NewFile menu entry)

The class browser is not updated when you created new files (A button to
manually refresh it would be usefull at least until all bugs in the
class browser are ruled out)

The newly generated class and interface files use tabs for indentation,
evenwhen you have your editor set to convert tabs to spaces.

When you change tabsToSpaces option, smartindenting will still use the
old setting until you restart the whole IDE

More information about the Monodevelop-list mailing list