Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "Implement Split File Editor Functionality for the Eclipse IDE"
(→Issue Tracker) |
(→Project Completion Plan) |
||
(31 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
== Releases == | == Releases == | ||
− | * '''2008-06- | + | '''Instructions:''' Click on the link to download the JAR file and place it in the dropins directory of Eclipse<br> |
+ | '''Requirements:''' Eclipse 3.4 RC4 or later | ||
+ | |||
+ | * '''[http://bonovox.be/org.eclipse.spliteditor/2008-07-14.zip 2007-07-14]'''. Working universal split editor prototype (MultiEditor-based). Ctrl-6 to split any editor. | ||
+ | * '''[http://bonovox.be/org.eclipse.spliteditor/org.eclipse.spliteditor_3.4.0.200806302201.jar 2008-06-30]'''. Split editor with basic functionality (undo/redo, cut/copy/paste, cursor line highlight, action contributions to menu/toolbar/statusbar) working correctly. | ||
+ | * '''[http://bonovox.be/org.eclipse.spliteditor/2008-06-23/plugins/org.eclipse.spliteditor_3.4.0.jar 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''' | ||
+ | |||
+ | [[Image:Glass.gif]] Pending item/not started<br> | ||
+ | [[Image:Progress.gif]] Work in progress<br> | ||
+ | [[Image:Ok_green.gif]] Bug fixed / Feature added | ||
+ | |||
+ | {| {{table}} | ||
+ | |- style="background:#efefef;" | ||
+ | ! Milestone | ||
+ | ! Deadline | ||
+ | ! Tasks | ||
+ | |- style="background:lightgrey;" | ||
+ | ! M1 | ||
+ | | July 21, 2008 | ||
+ | | | ||
+ | [[Image:Ok_green.gif]] MultiEditor backwards compatibility<br /> | ||
+ | [[Image:Ok_green.gif]] Fix activation warnings <br /> | ||
+ | [[Image:Ok_green.gif]] AbstractMultiEditor patch for bug [https://bugs.eclipse.org/240651 240651]<br /> | ||
+ | |- style="background:lightgrey;" | ||
+ | ! M2 | ||
+ | | July 28, 2008 | ||
+ | | | ||
+ | [[Image:Ok_green.gif]] AbstractMultiEditor API for dynamic addition/removal of InnerEditors<br /> | ||
+ | [[Image:Progress.gif]] Design and implement a procedure for enabling split editing support in existing and new editors <br /> | ||
+ | [[Image:Progress.gif]] SplitMultiEditor persistence between sessions<br /> | ||
+ | |- style="background:lightgrey;" | ||
+ | ! RC1 | ||
+ | | August 4, 2008 | ||
+ | | | ||
+ | [[Image:Glass.gif]] Look into participation in the [http://wiki.eclipse.org/SoC_Update_Site SoC Simultaneous Release]<br /> | ||
+ | [[Image:Glass.gif]] Java breadcrumb clicking problem<br /> | ||
+ | [[Image:Glass.gif]] Comprehensive testing and fixing of new issues<br /> | ||
+ | |- style="background:lightgrey;" | ||
+ | ! RC2 | ||
+ | | August 11, 2008 | ||
+ | | | ||
+ | [[Image:Glass.gif]] Go over [https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=MultiEditor&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&keywords_type=allwords&keywords=&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0 Daniel's List of MultiEditor-related bugs] and fix or comment where appropriate.<br /> | ||
+ | [[Image:Glass.gif]] Fix other related bugs such as [http://bugs.eclipse.org/64911 64911] if time permits<br /> | ||
+ | |- style="background:lightgrey;" | ||
+ | ! Final | ||
+ | | August 18, 2008 | ||
+ | | | ||
+ | [[Image:Glass.gif]] Fix any critical coding issues only<br /> | ||
+ | [[Image:Glass.gif]] Documentation and final integration work<br /> | ||
+ | |} | ||
== Implementations == | == Implementations == | ||
Line 41: | Line 94: | ||
[[Image:Ok_green.gif]] Bug fixed / Feature added | [[Image:Ok_green.gif]] Bug fixed / Feature added | ||
− | {| | + | === Uncategorized === |
+ | |||
+ | {| {{table}} | ||
|- style="background:#efefef;" | |- style="background:#efefef;" | ||
! Feature | ! Feature | ||
Line 49: | Line 104: | ||
! Split Editor | ! Split Editor | ||
! New Editor Tab | ! New Editor Tab | ||
+ | |- style="background:lightgrey;" | ||
+ | | '''Delete open file''' | ||
+ | | critical | ||
+ | | Delete file from the package explorer while the file is open in a split editor | ||
+ | | [[Image:Ok_green.gif]] <font color=green>'''fixed'''</font><br> does not work - memory leak keeps nonexistent resource in package explorer | ||
+ | | not tested | ||
+ | | works | ||
+ | |- style="background:lightgrey;" | ||
+ | | '''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. | ||
+ | | [[Image:Glass.gif]] does not work - SWT exception is thrown. seems to be related to general problem with multieditor activation | ||
+ | | not tested | ||
+ | | works | ||
|- style="background:lightgrey;" | |- style="background:lightgrey;" | ||
| '''Save''' | | '''Save''' | ||
| critical | | critical | ||
| Select File-> Save from the main menu | | Select File-> Save from the main menu | ||
− | | works but invokes Save command twice | + | | [[Image:Ok_green.gif]] <font color=green>'''fixed'''</font><br> works but invokes Save command twice |
− | | works | + | | [[Image:Ok_green.gif]] works |
| works | | works | ||
|- style="background:lightgrey;" | |- style="background:lightgrey;" | ||
Line 60: | Line 129: | ||
| critical | | critical | ||
| Select File-> Save As from the main menu | | Select File-> Save As from the main menu | ||
− | | | + | | [[Image:Ok_green.gif]] <font color=green>'''fixed'''</font><br> works but the other nested editor is not switched to the new resource |
− | | works | + | | [[Image:Ok_green.gif]] works |
| works | | works | ||
|- style="background:lightgrey;" | |- style="background:lightgrey;" | ||
Line 67: | Line 136: | ||
| critical | | critical | ||
| Make a change in the editor | | Make a change in the editor | ||
− | | does not mark editor tab as dirty with a * (star) | + | | [[Image:Ok_green.gif]] <font color=green>'''fixed'''</font><br> does not mark editor tab as dirty with a * (star) |
− | | works | + | | [[Image:Ok_green.gif]] works |
| works | | works | ||
|- style="background:lightgrey;" | |- style="background:lightgrey;" | ||
Line 75: | Line 144: | ||
| 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) | + | | [[Image:Glass.gif]] not applicable (java editor not available) |
− | | works | + | | works but marks occurrences in both editors |
|- style="background:lightgrey;" | |- style="background:lightgrey;" | ||
| '''Mark occurrences of different elements (java)''' | | '''Mark occurrences of different elements (java)''' | ||
Line 82: | Line 151: | ||
| 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) | + | | [[Image:Glass.gif]] 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;" | |- style="background:lightgrey;" | ||
Line 88: | Line 157: | ||
| critical | | critical | ||
| switch the focus (by mouse-clicking) between the two editors | | switch the focus (by mouse-clicking) between the two editors | ||
− | | works | + | | [[Image:Ok_green.gif]] works |
− | | <font color=green>fixed</font> does not appear in top editor and cursor is no longer visible in bottom editor after split | + | | [[Image:Ok_green.gif]] <font color=green>'''fixed'''</font><br> does not appear in top editor and cursor is no longer visible in bottom editor after split |
| works | | works | ||
|- style="background:lightgrey;" | |- style="background:lightgrey;" | ||
Line 102: | Line 171: | ||
| critical | | 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 | | 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 | ||
− | | | + | | [[Image:Ok_green.gif]] works |
− | | always acts on top editor in split mode, regardless of which editor (top or bottom) the cursor is in | + | | [[Image:Ok_green.gif]] <font color=green>'''fixed'''</font><br> always acts on top editor in split mode, regardless of which editor (top or bottom) the cursor is in |
| works | | works | ||
|- style="background:lightgrey;" | |- style="background:lightgrey;" | ||
Line 109: | Line 178: | ||
| critical | | critical | ||
| open a split editor or multiple editor tabs, type some text in one of the editors and select Edit->Undo from the menu | | open a split editor or multiple editor tabs, type some text in one of the editors and select Edit->Undo from the menu | ||
− | | | + | | [[Image:Ok_green.gif]] works |
− | | works | + | | [[Image:Ok_green.gif]] works |
| works | | works | ||
|- style="background:lightgrey;" | |- style="background:lightgrey;" | ||
Line 116: | Line 185: | ||
| critical | | 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 | | 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 | ||
− | | | + | | [[Image:Ok_green.gif]] works |
− | | works | + | | [[Image:Ok_green.gif]] works |
| works | | works | ||
|- style="background:lightgrey;" | |- style="background:lightgrey;" | ||
Line 123: | Line 192: | ||
| critical | | 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 | | 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 | ||
− | | | + | | [[Image:Ok_green.gif]] works |
− | | works | + | | [[Image:Ok_green.gif]] works |
| works | | works | ||
|- style="background:lightgrey;" | |- style="background:lightgrey;" | ||
Line 130: | Line 199: | ||
| critical | | 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 | | 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 | ||
− | | | + | | [[Image:Ok_green.gif]] works |
− | | works | + | | [[Image:Ok_green.gif]] works |
| works | | works | ||
|- style="background:lightgrey;" | |- style="background:lightgrey;" | ||
Line 137: | Line 206: | ||
| critical | | critical | ||
| press Ctrl-1 where a quick-fix is available (misspelled word for example); check at different locations in both editors | | press Ctrl-1 where a quick-fix is available (misspelled word for example); check at different locations in both editors | ||
− | | | + | | [[Image:Ok_green.gif]] works |
− | | works | + | | [[Image:Ok_green.gif]] works |
| works | | works | ||
|- style="background:lightgrey;" | |- style="background:lightgrey;" | ||
Line 144: | Line 213: | ||
| critical | | critical | ||
| press Ctrl-J then type some text to look for | | press Ctrl-J then type some text to look for | ||
− | | | + | | [[Image:Ok_green.gif]] works |
− | | works | + | | [[Image:Ok_green.gif]] works |
| works | | works | ||
|- style="background:lightgrey;" | |- style="background:lightgrey;" | ||
Line 151: | Line 220: | ||
| critical | | critical | ||
| press Ctrl-K; Ctrl-Shift-K to find the next/previous occurrence of the selected text | | press Ctrl-K; Ctrl-Shift-K to find the next/previous occurrence of the selected text | ||
− | | | + | | [[Image:Ok_green.gif]] works |
− | | works | + | | [[Image:Ok_green.gif]] works |
| works | | works | ||
|- style="background:lightgrey;" | |- style="background:lightgrey;" | ||
− | | '''Find Next/Previous | + | | '''Find Next/Previous from menu''' |
| critical | | critical | ||
− | | | + | | use Edit->Find Next/Previous from menu |
− | | | + | | [[Image:Ok_green.gif]] works |
− | | works | + | | [[Image:Ok_green.gif]] works |
| works | | works | ||
|- style="background:lightgrey;" | |- style="background:lightgrey;" | ||
Line 165: | Line 234: | ||
| critical | | 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 | | Select Navigate-> Go to line... from the menu; type a line that would require the active editor to be scrolled to bring into view | ||
− | | | + | | [[Image:Ok_green.gif]] works |
+ | | [[Image:Ok_green.gif]] works | ||
| works | | works | ||
+ | |- style="background:lightgrey;" | ||
+ | | '''Overview Ruler context menu''' | ||
+ | | critical | ||
+ | | right click on the overview ruler (to the right of vertical scrollbar) | ||
+ | | [[Image:Ok_green.gif]] works | ||
+ | | [[Image:Ok_green.gif]] works | ||
+ | | works | ||
+ | |- style="background:lightgrey;" | ||
+ | | '''Vertical Ruler context menu''' | ||
+ | | critical | ||
+ | | right click on the vertical ruler (to the left of editor) after splitting in either editor | ||
+ | | [[Image:Ok_green.gif]] works | ||
+ | | [[Image:Glass.gif]] does not work after splitting several times - the context menu stops showing on right-click | ||
+ | | works | ||
+ | |- style="background:lightgrey;" | ||
+ | | '''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 | ||
+ | | [[Image:Ok_green.gif]] works | ||
+ | | [[Image:Glass.gif]] only updates the active editor | ||
+ | | works | ||
+ | |- style="background:lightgrey;" | ||
+ | | '''Default (non-accessible) caret''' | ||
+ | | important | ||
+ | | Uncheck the "use custom caret" option from the Accessibility preference panel | ||
+ | | [[Image:Ok_green.gif]] works | ||
+ | | [[Image:Glass.gif]] the caret no longer shows in the slave editor | ||
+ | | works | ||
+ | |- style="background:lightgrey;" | ||
+ | | '''Text editor font change''' | ||
+ | | important | ||
+ | | Change the Text Font from the Colors and Fonts preference panel | ||
+ | | [[Image:Ok_green.gif]] works | ||
+ | | [[Image:Glass.gif]] the font of the active editor only is updated | ||
| works | | 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. | ||
+ | |||
+ | {| {{table}} | ||
+ | |- style="background:#efefef;" | ||
+ | ! Preference | ||
+ | ! Page | ||
+ | ! Preference Key | ||
+ | ! Editor Class | ||
+ | ! Are both editors updated? | ||
+ | |- style="background:lightgrey;" | ||
+ | | Appearance color options||General->Editors->Text Editors||PREFERENCE_COLOR_*||AbstractTextEditor||[[Image:Progress.gif]] no | ||
+ | |- style="background:lightgrey;" | ||
+ | | Use custom caret||General->Editors->Text Editors->Accessibility||PREFERENCE_USE_CUSTOM_CARETS||AbstractTextEditor||[[Image:Progress.gif]] no | ||
+ | |- style="background:lightgrey;" | ||
+ | | Enable thick caret||General->Editors->Text Editors->Accessibility||PREFERENCE_WIDE_CARET||AbstractTextEditor||[[Image:Ok_green.gif]] yes | ||
+ | |- style="background:lightgrey;" | ||
+ | | Enable on demand hyperlink…||General->Editors->Text Editors->Hyperlinking||PREFERENCE_HYPERLINKS_ENABLED||AbstractTextEditor||[[Image:Glass.gif]] not testable on plain text editor | ||
+ | |- style="background:lightgrey;" | ||
+ | | Default modifier key||General->Editors->Text Editors->Hyperlinking||PREFERENCE_HYPERLINK_KEY_MODIFIER||AbstractTextEditor||[[Image:Glass.gif]] not testable on plain text editor | ||
+ | |- style="background:lightgrey;" | ||
+ | | [[Image:Glass.gif]] ||[[Image:Glass.gif]] ||PREFERENCE_RULER_CONTRIBUTIONS||AbstractTextEditor||[[Image:Glass.gif]] pref page not found | ||
+ | |- style="background:lightgrey;" | ||
+ | | Show whitespace characters||General->Editors->Text Editors||PREFERENCE_SHOW_WHITESPACE_CHARACTERS||AbstractTextEditor||[[Image:Progress.gif]] no | ||
+ | |- style="background:lightgrey;" | ||
+ | | Enable drag and drop of text||General->Editors->Text Editors||PREFERENCE_TEXT_DRAG_AND_DROP_ENABLED||AbstractTextEditor||[[Image:Progress.gif]] no | ||
+ | |- style="background:lightgrey;" | ||
+ | | When mouse moved into hover…||General->Editors->Text Editors||PREFERENCE_HOVER_ENRICH_MODE||AbstractTextEditor||[[Image:Progress.gif]] no | ||
+ | |- style="background:lightgrey;" | ||
+ | | [[Image:Glass.gif]] ||[[Image:Glass.gif]] ||OVERVIEW_RULER||AbstractDecoratedTextEditor||[[Image:Glass.gif]] pref page not found | ||
+ | |- style="background:lightgrey;" | ||
+ | | [[Image:Glass.gif]] ||[[Image:Glass.gif]] ||DISABLE_OVERWRITE_MODE||AbstractDecoratedTextEditor||[[Image:Glass.gif]] pref page not found | ||
+ | |- style="background:lightgrey;" | ||
+ | | Show line numbers||General->Editors->Text Editors||LINE_NUMBER_RULER||AbstractDecoratedTextEditor||[[Image:Ok_green.gif]] yes | ||
+ | |- style="background:lightgrey;" | ||
+ | | Enable quick diff||General->Editors->Text Editors->Quick Diff||QUICK_DIFF_ALWAYS_ON||AbstractDecoratedTextEditor||[[Image:Ok_green.gif]] yes | ||
+ | |- style="background:lightgrey;" | ||
+ | | Show differences in overview ruler||General->Editors->Text Editors->Quick Diff||[[Image:Glass.gif]] ||[[Image:Glass.gif]] ||[[Image:Ok_green.gif]] yes | ||
+ | |- style="background:lightgrey;" | ||
+ | | Colors||General->Editors->Text Editors->Quick Diff||[[Image:Glass.gif]] ||[[Image:Glass.gif]] ||[[Image:Progress.gif]] EXCEPTION, but works | ||
+ | |- style="background:lightgrey;" | ||
+ | | Displayed tab width||General->Editors->Text Editors||EDITOR_TAB_WIDTH||AbstractDecoratedTextEditor||no | ||
+ | |- style="background:lightgrey;" | ||
+ | | Insert spaces for tabs||General->Editors->Text Editors||EDITOR_SPACES_FOR_TABS||AbstractDecoratedTextEditor||no | ||
+ | |- style="background:lightgrey;" | ||
+ | | Undo history size||General->Editors->Text Editors||EDITOR_UNDO_HISTORY_SIZE||AbstractDecoratedTextEditor||[[Image:Glass.gif]] not tested | ||
+ | |- style="background:lightgrey;" | ||
+ | | Show range indicator||General->Editors->Text Editors||SHOW_RANGE_INDICATOR||AbstractDecoratedTextEditor||[[Image:Glass.gif]] what is range indication | ||
+ | |- style="background:lightgrey;" | ||
+ | | Enable spell checking||General->Editors->Text Editors->Spelling||PREFERENCE_SPELLING_ENABLED||TextEditor||[[Image:Ok_green.gif]] yes | ||
+ | |- style="background:lightgrey;" | ||
+ | | Highlight current line||General->Editors->Text Editors||[[Image:Glass.gif]] ||[[Image:Glass.gif]] ||[[Image:Progress.gif]] EXCEPTION when turning on, but works | ||
+ | |- style="background:lightgrey;" | ||
+ | | Show print margin||General->Editors->Text Editors||[[Image:Glass.gif]] ||[[Image:Glass.gif]] ||[[Image:Progress.gif]] EXCEPTION | ||
+ | |- style="background:lightgrey;" | ||
+ | | Smart caret positioning at line start and end||General->Editors->Text Editors||[[Image:Glass.gif]] ||[[Image:Glass.gif]] ||[[Image:Progress.gif]] no | ||
+ | |- style="background:lightgrey;" | ||
+ | | (all) ||General->Editors->Text Editors->Linked Mode||[[Image:Glass.gif]] ||[[Image:Glass.gif]] ||[[Image:Glass.gif]] not tested | ||
+ | |- style="background:lightgrey;" | ||
+ | | Vertical ruler||General->Editors->Text Editors->Annotations||[[Image:Glass.gif]] ||[[Image:Glass.gif]] ||[[Image:Ok_green.gif]] yes | ||
+ | |- style="background:lightgrey;" | ||
+ | | Overview ruler||General->Editors->Text Editors->Annotations||[[Image:Glass.gif]] ||[[Image:Glass.gif]] ||[[Image:Ok_green.gif]] yes | ||
+ | |- style="background:lightgrey;" | ||
+ | | Text as||General->Editors->Text Editors->Annotations||[[Image:Glass.gif]] ||[[Image:Glass.gif]] ||[[Image:Progress.gif]] EXCEPTION, but works | ||
+ | |- style="background:lightgrey;" | ||
+ | | Color||General->Editors->Text Editors->Annotations||[[Image:Glass.gif]] ||[[Image:Glass.gif]] ||[[Image:Progress.gif]] EXCEPTION, but works | ||
+ | |} | ||
+ | |||
+ | === Editor Actions === | ||
+ | |||
+ | TODO |
Latest revision as of 06:08, 23 July 2008
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 |
MultiEditor backwards compatibility |
M2 | July 28, 2008 |
AbstractMultiEditor API for dynamic addition/removal of InnerEditors |
RC1 | August 4, 2008 |
Look into participation in the SoC Simultaneous Release |
RC2 | August 11, 2008 |
Go over Daniel's List of MultiEditor-related bugs and fix or comment where appropriate. |
Final | August 18, 2008 |
Fix any critical coding issues only |
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 | fixed 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. | does not work - SWT exception is thrown. seems to be related to general problem with multieditor activation | not tested | works |
Save | critical | Select File-> Save from the main menu | fixed works but invokes Save command twice |
works | works |
Save as | critical | Select File-> Save As from the main menu | fixed works but the other nested editor is not switched to the new resource |
works | works |
Mark dirty editor's tab (star (*) next to file name) | critical | Make a change in the editor | fixed 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 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 | 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 | works | fixed 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 | 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 | works | 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 | works | 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 | works | 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 | works | works | works |
Incremental find | critical | press Ctrl-J then type some text to look for | works | works | works |
Find Next/Previous shortcuts | critical | press Ctrl-K; Ctrl-Shift-K to find the next/previous occurrence of the selected text | works | works | works |
Find Next/Previous from menu | critical | use Edit->Find Next/Previous from menu | works | 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 | works | works | works |
Overview Ruler context menu | critical | right click on the overview ruler (to the right of vertical scrollbar) | works | works | works |
Vertical Ruler context menu | critical | right click on the vertical ruler (to the left of editor) after splitting in either editor | works | does not work after splitting several times - the context menu stops showing on right-click | 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 | only updates the active editor | works |
Default (non-accessible) caret | important | Uncheck the "use custom caret" option from the Accessibility preference panel | works | the caret no longer shows in the slave editor | works |
Text editor font change | important | Change the Text Font from the Colors and Fonts preference panel | works | the font of the active editor only is updated | 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