[MonoDevelop] Suggested change to navigation drop-down behaviour

Michael Hutchinson m.j.hutchinson at gmail.com
Mon Jul 5 18:29:23 EDT 2010


On Mon, Jul 5, 2010 at 1:55 AM, Mike Krüger <mkrueger at novell.com> wrote:
> Hi
>
>> The logical behaviour of a breadcrumb bar is to show the current
>> position in the outline structure, isn't it?
>
> The logical behaviour is showing the poisition ... and it does: show the
> position.
> 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'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.

While it's true that regions are distinct from the semantic structure
of the C# file, in practice they are almost always used to group
members or classes (I've never seen them used another way). Therefore,
in practice they are *effectively* part of the structure, and IMO a
breadbrumb bar should respect this. It would certainly be much for
usable for me.

>>  Why doesn't it make sense
>> to replicate the outline view in the quick navigator?
>
> Because then you don't need the outline view ...
> The quick navigator is a different control with a different purpose - it
> doesn't give you an overview of the file it shows your caret position. The
> only thing that these two have in common is allowing to switch to a specific
> entry in a file.
> If we're making these two exactly the same it would be replicating a feature
> - that's not good program design.

True, but it would be a shame to make the navigation bar less useful
simply because the outline already exists :)

If the items in the breadcrumbs menu expanded out so that one could
drill down directly from a single item, then I wouldn't need the
outline at all. And one really good feature is better than two similar
but inferior features.

-- 
Michael Hutchinson
http://mjhutchinson.com


More information about the Monodevelop-list mailing list