Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Implement Split File Editor Functionality for the Eclipse IDE
Contents
Releases
Instructions: Click on the link to download the JAR file and place it in the dropins directory of Eclipse
Requirements: Eclipse 3.4 RC4 or later
- 2007-07-14. Working universal split editor prototype (MultiEditor-based). Ctrl-6 to split any editor.
- 2008-06-30. Split editor with basic functionality (undo/redo, cut/copy/paste, cursor line highlight, action contributions to menu/toolbar/statusbar) working correctly.
- 2008-06-23. 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).
Project Completion Plan
Legend
Pending item/not started
Work in progress
Bug fixed / Feature added
Milestone | Deadline | Tasks |
---|---|---|
M1 | July 21, 2008 |
|
M2 | July 28, 2008 |
|
RC1 | August 4, 2008 |
|
RC2 | August 11, 2008 |
|
Final | August 18, 2008 |
|
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
Needs some investigation/research
Work in progress
Bug fixed / Feature added
Uncategorized
Feature | Importance | Test Case | Multi Editor | Split Editor | New Editor Tab |
---|---|---|---|---|---|
Delete open file | critical | Delete file from the package explorer while the file is open in a split editor | ![]() does not work - memory leak keeps nonexistent resource in package explorer |
not tested | works |
Java Breadcrumb click | critical | Click on the leaf element of the java breadcrumb in one editor then the other and go back and forth several times. | ![]() |
not tested | works |
Save | critical | Select File-> Save from the main menu | ![]() works but invokes Save command twice |
![]() |
works |
Save as | critical | Select File-> Save As from the main menu | ![]() works but the other nested editor is not switched to the new resource |
![]() |
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 |
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 | ![]() |
works but marks occurrences in both editors |
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 | ![]() |
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 | ![]() |
![]() 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 | ![]() |
![]() 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 | ![]() |
![]() |
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 | ![]() |
![]() |
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 | ![]() |
![]() |
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 | ![]() |
![]() |
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 | ![]() |
![]() |
works |
Incremental find | critical | press Ctrl-J then type some text to look for | ![]() |
![]() |
works |
Find Next/Previous shortcuts | critical | press Ctrl-K; Ctrl-Shift-K to find the next/previous occurrence of the selected text | ![]() |
![]() |
works |
Find Next/Previous from menu | critical | use Edit->Find Next/Previous from menu | ![]() |
![]() |
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 | ![]() |
![]() |
works |
Overview Ruler context menu | critical | right click on the overview ruler (to the right of vertical scrollbar) | ![]() |
![]() |
works |
Vertical Ruler context menu | critical | right click on the vertical ruler (to the left of editor) after splitting in either editor | ![]() |
![]() |
works |
Show whitespace characters toggle | critical | customize perspective and make sure the Editor Presentations command group is checked under the Commands tab. Open Split editor and press the toggle white-space toolbar button | ![]() |
![]() |
works |
Default (non-accessible) caret | important | Uncheck the "use custom caret" option from the Accessibility preference panel | ![]() |
![]() |
works |
Text editor font change | important | Change the Text Font from the Colors and Fonts preference panel | ![]() |
![]() |
works |
Preferences
When preferences that are related to editor appearance or behavior are updated, a split editor needs to propagate the changes to both of its internal editors. Here is a comprehensive list of text editor preferences and the corresponding split editor behavior on preference change.
Editor Actions
TODO