Design of MRU-Navigation wrt. Split-Views

Alexander Dymo dymo at ukrpost.ua
Sun Feb 15 14:08:20 UTC 2009


I did some research for what is done by other IDE's and editors. Here are the 
results:

== Eclipse 3.4.1 ==
- each mainwindow has its own navigation history
- split views share the common navigation history:
	- opening file (in another split view) creates an entry in the common history
	- switching between files in different split views also creates an entry 
	- "back"/"forward" function focus corresponding split views as necessary


== IntelliJ Idea 8.1 ==
- you can't open more than one mainwindow, there's only one with a history
- split views share the common navigation history
	- opening file (in another split view) always creates an entry in the history
	- switching between files in different split views doesn't always create 
	an entry in the history, instead it tries to changes the "current" pointer 
	in the history (I didn't grasp all the details of this process actually)
	- "back"/"forward" function focus corresponding split views as necessary


== Netbeans 6.5 ==
- you can't open more than one mainwindow, there's only one with a history
- split views share the common navigation history
	- opening file (in another split view) always creates an entry in the history
	- switching between files in different split views also creates an entry 
	- there's no "forward" function
	- "back" function (Ctrl-`) works like alt-tab in kwin (i.e. if it always
	switchesbetween two latest documents, if you want to go deeper in history,
	hold "`" key to get a menu, just like with 'alt-tab')
	- "back" function focuses corresponding split views as necessary


== Kate ==
- there's no "true" MRU, back/forward work with a document list which is "most 
recently opened" rather than "used"
- back/forward never switch between split views, they always use that MRO list 
to open document in the same split view
- multiple windows share the same MRO list


== Emacs ==
- like in Kate, there's only MRO list

== VIM ==
- same as Kate and Emacs


====================================================
My Conclusions:
I didn't use split views often before, so my impressions are based totally on 
what I saw today. 

Eclipse's MRU model with one history per mainwindow worked for me perfectly. 
It's logical, understandable and predictable.

Idea's MRU is totally confusing, always giving me unpredictable results even 
after I thought I got its logic. We definitely don't want to use this.

Netbean's MRU without "forward" button is ok, but it's rather unusual to see 
alt-tab'ish behavior in the editor.

Kate, Emacs and VIM don't have MRU at all, they have only MRO. If we choose to 
not implement MRU, then MRO is a way to go. Otherwise, we have nothing to 
learn from them.

What's interesting is that the model with separate MRU history for split views 
is not really used in practice. Eclipse, Netbeans and Idea have single history 
per mainwindow.





More information about the KDevelop-devel mailing list