Jump to: navigation, search

Difference between revisions of "Implement Split File Editor Functionality for the Eclipse IDE"

(Multi Editor-based)
(Issue Tracker)
Line 35: Line 35:
 
== Issue Tracker ==
 
== Issue Tracker ==
  
{| border="1" cellpadding="2"
+
'''Legend'''
|-
+
 
 +
[[Image:Glass.gif]] Needs some investigation/research<br>
 +
[[Image:Progress.gif]] Work in progress<br>
 +
[[Image:Ok_green.gif]] Bug fixed / Feature added
 +
 
 +
{| class="wikitable"
 +
|- style="background:#efefef;"
 
! Feature
 
! Feature
 +
! Importance
 
! Test Case
 
! Test Case
 
! Multi Editor
 
! Multi Editor
 
! Split Editor
 
! Split Editor
 
! New Editor Tab
 
! New Editor Tab
|-
+
|- style="background:lightgrey;"
| Save
+
| '''Save'''
 +
| critical
 
| Select File-> Save from the main menu
 
| Select File-> Save from the main menu
 
| works but invokes Save command twice
 
| works but invokes Save command twice
 
| works
 
| works
 
| works
 
| works
|-
+
|- style="background:lightgrey;"
| Save as
+
| '''Save as'''
 +
| critical
 
| Select File-> Save As from the main menu
 
| Select File-> Save As from the main menu
 
| does not work
 
| does not work
 
| works
 
| works
 
| works
 
| works
|-
+
|- style="background:lightgrey;"
| Star (*) in editor tab next to file name on modification
+
| '''Mark dirty editor's tab''' (star (*) next to file name)
 +
| critical
 
| Make a change in the editor
 
| Make a change in the editor
 
| does not mark editor tab as dirty with a * (star)
 
| does not mark editor tab as dirty with a * (star)
 
| works
 
| works
 
| works
 
| works
|-
+
|- style="background:lightgrey;"
| Mark occurrences (java)
+
| '''Mark occurrences (java)'''
 +
| nice-to-have
 
| enable mark occurrences and click over a java element (method/field/class name etc)
 
| enable mark occurrences and click over a java element (method/field/class name etc)
 
| works but marks occurrences in both editors
 
| works but marks occurrences in both editors
 
| not applicable (java editor not available)
 
| not applicable (java editor not available)
 
| works
 
| works
|-
+
|- style="background:lightgrey;"
| Mark occurrences of different elements (java)
+
| '''Mark occurrences of different elements (java)'''
 +
| nice-to-have
 
| enable mark occurrences and click over different java elements in both editors
 
| enable mark occurrences and click over different java elements in both editors
 
| works but both elements are highlighted in both editors
 
| works but both elements are highlighted in both editors
 
| not applicable (java editor not available)
 
| not applicable (java editor not available)
 
| works but both elements are highlighted in both editors (see [http://bugs.eclipse.org/64911 bug 64911])
 
| works but both elements are highlighted in both editors (see [http://bugs.eclipse.org/64911 bug 64911])
|-
+
|- style="background:lightgrey;"
| Current line highlight within active focused editor
+
| '''Current line highlight within active focused editor'''
 +
| critical
 
| switch the focus (by mouse-clicking) between the two editors
 
| switch the focus (by mouse-clicking) between the two editors
 
| works
 
| works
| does not appear in top editor and cursor is no longer visible in bottom editor after split
+
| <font color=green>fixed</font> does not appear in top editor and cursor is no longer visible in bottom editor after split
 
| works
 
| works
|-
+
|- style="background:lightgrey;"
| Navigation using back/forward buttons or Alt-LeftArrow/Alt-RightArrow
+
| '''Back/Forward Navigation''' (Navigate->Back/Forward from menu or Alt-Left/Right Arrow keys)
 +
| nice-to-have
 
| click within the one of the two editors; make a change; switch to another editor; use Go Back command (Alt-LeftArrow) to go back
 
| click within the one of the two editors; make a change; switch to another editor; use Go Back command (Alt-LeftArrow) to go back
 
| does not always go back to the editor where the change was made
 
| does not always go back to the editor where the change was made
 
| does not always go back to the editor where the change was made
 
| does not always go back to the editor where the change was made
 
| does not always go back to the editor where the change was made
 
| does not always go back to the editor where the change was made
 +
|- style="background:lightgrey;"
 +
| '''Moving around text using Ctrl-? key commands'''
 +
| critical
 +
| Use Ctrl+Home/End to move to the beginning/end of the editor; Ctrl+Left/Right to move left/right a word at a time; Ctrl+Shift+Left/Right to move and left/right a word at a time and expand the selection
 +
| not tested
 +
| always acts on top editor in split mode, regardless of which editor (top or bottom) the cursor is in
 +
| works
 +
|- style="background:lightgrey;"
 +
| '''Undo/Redo from menu'''
 +
| critical
 +
| open a split editor or multiple editor tabs, type some text in one of the editors and select Edit->Undo from the menu
 +
| not tested
 +
| works
 +
| works
 +
|- style="background:lightgrey;"
 +
| '''Undo/Redo using keyboard'''
 +
| critical
 +
| open a split editor or multiple editor tabs, type some text in one of the editors and type Ctrl-Z to undo then Ctrl-Y to redo
 +
| not tested
 +
| works
 +
| works
 +
|- style="background:lightgrey;"
 +
| '''Cut/Copy/Paste from menu'''
 +
| critical
 +
| open a split editor or multiple editor tabs, select some text in one of the editors and select Edit->Cut from the menu, then Edit->Paste
 +
| not tested
 +
| works
 +
| works
 +
|- style="background:lightgrey;"
 +
| '''Cut/Copy/Paste using keyboard'''
 +
| critical
 +
| open a split editor or multiple editor tabs, select some text in one of the editors and type Ctrl-X to cut, then Ctrl-V to paste
 +
| not tested
 +
| works
 +
| works
 +
| '''Quick-fix shortcut'''
 +
| critical
 +
| press Ctrl-1 where a quick-fix is available (misspelled word for example); check at different locations in both editors
 +
| not tested
 +
| works
 +
| works
 +
| '''Incremental find'''
 +
| critical
 +
| press Ctrl-J then type some text to look for
 +
| not tested
 +
| works
 +
| works
 +
| '''Find Next/Previous shortcuts'''
 +
| critical
 +
| press Ctrl-K; Ctrl-Shift-K to find the next/previous occurrence of the selected text
 +
| not tested
 +
| works
 +
| works
 +
| '''Find Next/Previous shortcuts'''
 +
| critical
 +
| press Ctrl-K; Ctrl-Shift-K to find the next/previous occurrence of the selected text
 +
| not tested
 +
| works
 +
| works
 +
| '''Go to line action'''
 +
| critical
 +
| Select Navigate-> Go to line... from the menu; type a line that would require the active editor to be scrolled to bring into view
 +
| not tested
 +
| works
 +
| works
 
|}
 
|}

Revision as of 01:46, 1 July 2008

Releases

  • 2008-06-23. DOWNLOAD. 1st release of multi editor and split editor implementations. Instructions: Download the plugin jar and place in the dropins directory (compatible with Eclipse 3.4 RC4 or later).

Implementations

Multi Editor-based

Usage: Open a file in Eclipse, then select Window -> New Split Editor from the main menu to open a split editor of the file.

This implementation is based on Paul Webster's patch, which uses the existing multi-editor architecture in Eclipse.

  • Advantages
    • does not require custom work for different editor types (java/xml/etc)
    • works automatically with new custom editor types
  • Disadvantages
    • Split editor opens in a new tab as opposed to appearing within the existing tab
    • Activating with the mouse requires going to the main menu (Window->New Split Editor). There is also a keyboard shortcut - Ctrl+6.
    • Bound by the limitations of the multi-editor infrastructure

Custom Split Editor Implementation

Usage: Right-click on a file, select Open with -> Other... and select \[Split Text Editor\] from the list of editors.

This implementation is based on a custom editor implementation that dynamically creates a new StyledText control when a sash is dragged within the editor to split it.

  • Advantages
    • fully replaces existing editors and allows splitting the active editor in-place (as opposed to opening a split editor in a new tab)
    • easier activation via the mouse because there is no need to go to the window main menu or editor tab context menu.
  • Disadvantages
    • requires customization of every editor class that wants to support split editing (java/xml... etc)

Issue Tracker

Legend

Glass.gif Needs some investigation/research
Progress.gif Work in progress
Ok green.gif Bug fixed / Feature added

Feature Importance Test Case Multi Editor Split Editor New Editor Tab
Save critical Select File-> Save from the main menu works but invokes Save command twice works works
Save as critical Select File-> Save As from the main menu does not work works works
Mark dirty editor's tab (star (*) next to file name) critical Make a change in the editor does not mark editor tab as dirty with a * (star) works works
Mark occurrences (java) nice-to-have enable mark occurrences and click over a java element (method/field/class name etc) works but marks occurrences in both editors not applicable (java editor not available) works
Mark occurrences of different elements (java) nice-to-have enable mark occurrences and click over different java elements in both editors works but both elements are highlighted in both editors not applicable (java editor not available) works but both elements are highlighted in both editors (see bug 64911)
Current line highlight within active focused editor critical switch the focus (by mouse-clicking) between the two editors works fixed does not appear in top editor and cursor is no longer visible in bottom editor after split works
Back/Forward Navigation (Navigate->Back/Forward from menu or Alt-Left/Right Arrow keys) nice-to-have click within the one of the two editors; make a change; switch to another editor; use Go Back command (Alt-LeftArrow) to go back does not always go back to the editor where the change was made does not always go back to the editor where the change was made does not always go back to the editor where the change was made
Moving around text using Ctrl-? key commands critical Use Ctrl+Home/End to move to the beginning/end of the editor; Ctrl+Left/Right to move left/right a word at a time; Ctrl+Shift+Left/Right to move and left/right a word at a time and expand the selection not tested always acts on top editor in split mode, regardless of which editor (top or bottom) the cursor is in works
Undo/Redo from menu critical open a split editor or multiple editor tabs, type some text in one of the editors and select Edit->Undo from the menu not tested works works
Undo/Redo using keyboard critical open a split editor or multiple editor tabs, type some text in one of the editors and type Ctrl-Z to undo then Ctrl-Y to redo not tested works works
Cut/Copy/Paste from menu critical open a split editor or multiple editor tabs, select some text in one of the editors and select Edit->Cut from the menu, then Edit->Paste not tested works works
Cut/Copy/Paste using keyboard critical open a split editor or multiple editor tabs, select some text in one of the editors and type Ctrl-X to cut, then Ctrl-V to paste not tested works works Quick-fix shortcut critical press Ctrl-1 where a quick-fix is available (misspelled word for example); check at different locations in both editors not tested works works Incremental find critical press Ctrl-J then type some text to look for not tested works works Find Next/Previous shortcuts critical press Ctrl-K; Ctrl-Shift-K to find the next/previous occurrence of the selected text not tested works works Find Next/Previous shortcuts critical press Ctrl-K; Ctrl-Shift-K to find the next/previous occurrence of the selected text not tested works works Go to line action critical Select Navigate-> Go to line... from the menu; type a line that would require the active editor to be scrolled to bring into view not tested works works