[MonoDevelop] Suggested change to navigation drop-down behaviour

IBBoard ibboard at gmail.com
Mon Jul 5 14:38:01 EDT 2010


On 05/07/10 06:55, Mike Krüger wrote:
> But the #regions are not a part of the c# language therefore there is no
> defined way showing them. Logically the current solution is better
> because it reflects the c# pre-processor more (it's separate from the
> logical structure of the file).
> It's simply not correct showing the regions in the structure.
> 
> Example:
> #region Test
> void Bar ()
> {
> # endregion
> }
> 
> int a,
> #region B region
> b
> #endregion;
> 
> This could mess up the logical structure - pre processor directives are
> file based not part of the c# tree. If people use it this way it's their
> decision - but that doesn't mean that is the only way using it.
> The implementation now has the advantage to QUICKLY SWITCH between all
> regions in the file ... this is nothing what your solution could do.

I hadn't considered that option, as I'd thought of regions as another
type of nesting block that was normally used for collapsing things for
convenience. Being allowed to do that kind of thing just looks
confusing. Then again I've never worked in C/C++, so maybe it is a bit
more standard there.

> 
> I've thought about it and I'll just change it to :
> [REGION] | [CLASS] > ... > [MEMBER]
> 
> This makes it more visible but doesn't change anything at the current
> behavior.

I think this is almost right with the distinction, but there's still a
bit of "region is a filter" confusion from the closeness of the widgets
IMO. Would it be better to do something like Piotr suggested and move
the regions away from the nav entirely, perhaps to the right-hand side?
That way you'd get the location filtering of Class -> Member and still
have regions available but not appearing to be a filter before Class.

Going back to your other email, I think that the increased separate
would also remove the "no region" selection issue that I had. As it is
now then you still swap the same widget from "FileName.cs" to "Region
Name" with no way back to "FileName.cs" until you click on a method
outside a region, at which point it re-appears as the selected item. It
makes sense for FileName.cs to re-appear in that situation, but it seems
odd that it is an option that doesn't exist.

Regards,
IBBoard


More information about the Monodevelop-list mailing list