[MonoDevelop] Impressions from using monodevelop

Lluis Sanchez lluis at ximian.com
Wed Mar 1 07:49:05 EST 2006


Thanks for the feedback! this information is going to be really useful.
Some comments inline.

> 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...)

Yeah, I agree that it may be confusing. I think the best solution to
this is to add an option for adding the file to the project, and mark it
by default.

> 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, ...  

In Java the location of the file is determined by the namespace. In C#
it can be placed anywhere. But yes, we can add those options and "g
uess" the file location.

> 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.

In Java file management is easy because you can only have one (public)
class per file, and the directory structure must match the namespace
structure. In C# it's not so easy since there are no such constraints.
That's why most of the time I use the project view instead of the class
view to browse for classes. In any case, it could be a good idea to
implement some kind of Java mode, which would define a default behavior
for file management.

> After adding a new file to the solution the editor should open this
> file.
> 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)

Right now we have a single command for opening files and projects.
That's why it can't be limited to open mds and mdp files. I think we
should have a "Open Project" command, specific for opening projects and

> 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)

I can answer your last question. I don't want the IDE to automatically
restore the last session because I'm not always working on the same
projects. It would be really annoying if MD loaded the whole (and huge)
Mono solution just because it was loaded the last time I closed MD. 
However, I agree that if you work every day with the same project,
restoring the session may be useful. That's why the option is there. If
it doesn't work there is a bug to be fixed.

> 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
> here.
> 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.
> Editor:
> ~~~~~~~
> 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.

I fear we are limited by GtkSourceView in this issue.

> 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.
> Bugs:
> ~~~~~
> Smart indentation only works when a file has been saved (happens when
> you
> 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
> _______________________________________________
> Monodevelop-list mailing list
> Monodevelop-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/monodevelop-list

More information about the Monodevelop-list mailing list