<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
   <meta name="GENERATOR" content="Mozilla/4.76 [en] (Windows NT 5.0; U) [Netscape]">
   <meta name="Author" content="IBM">
   <title>Eclipse Platform Release Notes - Desktop</title>
</head>
<body>

<h1>
Eclipse Platform Build Notes</h1>

<h1>
Text Editor Support (including JFace Text)</h1>

<p><br>Eclipse SDK Build 20020430
<h2>
Breaking API changes</h2>

<h2>
Other highlights</h2>

<ul>
<li>
Introduced the concepts of state dependent actions, i.e. actions which
change their enabling state depending on whether the editor's input is
read only or not.</li>

<li>
Added line delimiter conversion actions for DOS, UNIX and Mac.</li>
</ul>

<h2>
Known deficiencies</h2>

<h2>
Problem reports closed</h2>

<p><br>
<hr WIDTH="100%">
<p>Eclipse SDK Build 20020423
<h2>
Breaking API changes</h2>

<h2>
Other highlights</h2>

<ul>
<li>
Viewport clipping in the vertical ruler</li>

<li>
Improved painting of range indicator</li>

<li>
Fixed problem in position handling in AbstractDocument</li>

<li>
Improved handling of delete in GapTextStore</li>

<li>
Changes in partition parsing: Introduced the concept of a partition token
scanner which can resume scanning in the middle of&nbsp; token range.&nbsp;
The basic assumption is that partition delimiters don't contain line delimiters.
Partition token scanners can be built with rules implementing IPredicateRule.
A predicate rule can start evaluation between their start and end sequence.
PatternRule has been adapted.</li>
</ul>

<h2>
Known deficiencies</h2>

<h2>
Problem reports closed</h2>

<p><br>
<hr WIDTH="100%">
<p>Eclipse SDK Build 20020418
<h2>
Breaking API changes</h2>

<h2>
Other highlights</h2>

<ul>
<li>
Added method <i>undelete</i> to Position.</li>

<li>
AbstractMarkerAnnotationModel better supports heterogenous sets of annotations.</li>

<li>
DefaultUndoManager causes selection changes when executing undo/redo to
ensure correct enabling/disabling of selection dependent actions.</li>
</ul>

<h2>
Known deficiencies</h2>

<h2>
Problem reports closed</h2>

<p><br>
<hr WIDTH="100%">
<p>Eclipse SDK Build 20020411
<h2>
Breaking API changes</h2>

<h2>
Other highlights</h2>

<ul>
<li>
Enabled annotation models for more fine grained change notification</li>
</ul>

<h2>
Known deficiencies</h2>

<h2>
Problem reports closed</h2>
#13358 incremental find: displays little squares after you press 'delete'
<br>#13283 Find/Replace: Close button too small
<br>#13459 Typing tab with selection in middle of line shifts right
<p>
<hr WIDTH="100%">
<br>&nbsp;
<br>&nbsp;
<p>Eclipse SDK Build 20020409
<h2>
Breaking API changes</h2>

<h2>
Other highlights</h2>

<ul>
<li>
Added support for external contribution of ruler actions. I.e. plugins
can contribute actions to the context menu of an editor's vertical ruler&nbsp;
by specifying those actions in their plugin.xml file.</li>

<li>
In the default key binding Ctrl+ArrowUp and Ctrl+ArrowDown are bound to
scroll a single line without moving the cursor.</li>

<li>
AnnotationModel is be used from several threads.</li>

<li>
TextViewer implements ITextViewerExtensions which supports the stacking
of VerifyKeyListeners. A listener that is prepended to the list of verify
key listeners can take over the control over all key strokes not bound
as menu item accelerators.</li>

<li>
The scheme according to which an editor calls Workspace.validateEdit has
been reworked.</li>

<li>
The editor hooks to the Revert action in the File menu.</li>

<li>
AbstractTextEditor supports property dependent actions similar to selection
or content dependent actions.</li>
</ul>

<h2>
Known deficiencies</h2>

<h2>
Problem reports closed</h2>
#11215 Editor task creation actions should use TaskPropertiesDialog
<br># 9761 Line has to be selected from beginning when using the 'Tab'
<br>#10806 call validateEdit() again before any further changes
<br>#11480 READ/WRITE not updated on focus change
<br>#12901 P2 Find/Replace should keep last selection highlighted
<p>
<hr WIDTH="100%">
<br>&nbsp;
<p>Eclipse SDK Build 20020402
<h2>
Breaking API changes</h2>

<h2>
Other highlights</h2>

<ul>
<li>
fixed a problem in the TextViewer's handleDipose method</li>

<li>
AbstractMarkerAnnotationModel can now deal with a heterogenous set of annotations</li>
</ul>

<h2>
Known deficiencies</h2>

<h2>
Problem reports closed</h2>

<p><br>
<hr WIDTH="100%">
<p>Eclipse SDK Build 20020326
<h2>
Breaking API changes</h2>

<h2>
Other highlights</h2>

<ul>
<li>
Enabled key binding support</li>

<li>
dialog-less incremental search (improvements)</li>
</ul>

<h2>
Known deficiencies</h2>

<h2>
Problem reports closed</h2>

<p><br>
<hr WIDTH="100%">
<br>&nbsp;
<p>Eclipse SDK Build 20020318
<h2>
Breaking API changes</h2>

<h2>
Other highlights</h2>

<ul>
<li>
All find operations can be limited to a scope using the find replace dialog.
Multi-line selections serve as scope.</li>

<li>
Emacs-like incremental search (CTRL-J) is now part of AbstractTextEditor.</li>

<li>
Preparations for key binding support</li>

<br>&nbsp;</ul>

<h2>
Known deficiencies</h2>

<h2>
Problem reports closed</h2>
#2280 Undo does not jump to undone location (1GEK1G5)
<br>#7381 Search results block hover help for problems
<br>#7954 Content assist off the edge of the display
<br>#10141 Shift Left/Right disabled unless selection is "full lines".
<br>#11047 Index out of bounds on text hover
<br>#11148 Syntax coloring lost on revert
<br>#11377 Code assist leaks threads
<br>#11433 NPE opening editor when some plugins disabled
<br>&nbsp;
<br>&nbsp;
<p>
<hr WIDTH="100%">
<br>&nbsp;
<p>Eclipse SDK Build 20020312
<h2>
Breaking API changes</h2>

<h2>
Other highlights</h2>

<ul>
<li>
All editors based on AbstractTextEditor now support <i>Find Next</i> and
<i>Find
Previous. </i>Both actions are selection aware, i.e. having a word selected
when invoking <i>Find Next </i>searches for the next appearance of the
selected word.</li>

<li>
A first cut of incremental search is implemented accessible via the Find/Replace
dialog.</li>
</ul>

<h2>
Known deficiencies</h2>

<h2>
Problem reports closed</h2>
#5191 EC DCR: Add keyboard accelerator for "Find Next"
<br>#5710 Emacs-like isearch (aka "incremental search")
<br>#10489 Indention a template results in NPE
<br>#2698 Opening Default Text Editor not showing right icon in the file
tab (1GI7GK2)
<br>#7954 Content assist off the edge of the display
<br>#9964&nbsp; nor P3 Syntax highlight and comments bug
<br>#11047&nbsp; nor P2 Index out of bounds on text hover
<br>&nbsp;
<p>
<hr WIDTH="100%">
<br>&nbsp;
<p>Eclipse SDK Build 20020305
<h2>
Breaking API changes</h2>

<h2>
Other highlights</h2>

<h2>
Known deficiencies</h2>

<h2>
Problem reports closed</h2>
#8652 ctl-space doesn't wrk for content assist in Java editor when
<br>#8910 @link-tag in Javadoc display broken
<br>#9576 Method argument hints not as smart as code assist
<br>#10315 Syntax highlighting glitch
<br>#10422 Incorrect syntax highlighting for comments
<br>#10721 Syntax highlighting lost in Java editor after replace with r
<br>&nbsp;
<p>
<hr WIDTH="100%">
<p>Eclipse SDK Build 20020212
<h2>
Breaking API changes</h2>

<h2>
Other highlights</h2>

<ul>
<li>
Added IContextInformationExtension to support context information positions
not equal to completion position (related to #4366).</li>

<li>
Added preference store keys for system default background/foreground colors
(related to #5811).</li>

<li>
Reworked handling of read-only resources and state changes of resources.</li>
</ul>

<h2>
Known deficiencies</h2>

<h2>
Problem reports closed</h2>
#2635 Find should remember last string if selection empty (1GHFMYL
<br>#5380 Error hover doesn't appear
<br>#7483 NPE during revert in Java editor
<br>#2575 [JFace Text] BUG - org.eclipse.ui.texteditor inconsistency (1GGLRU6)
<br>#5969 Find dialog placement needs improvement
<br>#5811 Pref to set editor background color
<br>#5819 Code formatter doesn't work well with else if on next line
<br>&nbsp;
<p>
<hr WIDTH="100%">
<p>Eclipse SDK Build 20020129
<h2>
Breaking API changes</h2>

<h2>
Other highlights</h2>

<h2>
Known deficiencies</h2>

<h2>
Problem reports closed</h2>
#5819 Code formatter doesn't work well with else if on next line
<p>
<hr WIDTH="100%">
<p>Eclipse SDK Build 20020122
<h2>
Breaking API changes</h2>

<h2>
Other highlights</h2>

<h2>
Known deficiencies</h2>

<h2>
Problem reports closed</h2>
#4324 EC: Find/replace gets stuck in infinite loop (1GLCBZE)
<br>#3736 DCR: Go to line - would be nice to show valid range (1GEHSDX)
<p>
<hr WIDTH="100%">
<p>Eclipse SDK Build 20020115
<h2>
Breaking API changes</h2>

<h2>
Other highlights</h2>

<h2>
Known deficiencies</h2>

<h2>
Problem reports closed</h2>
#4335 Find/Replace should come up with first history entry (1GEL5NS)
<br>#4338 Find/change history is never pruned (1GHDUJW)
<br>#4342 TextViewer.setTopIndex doesn't take horizontal scrollbar into
account (1GIFYC7)
<br>#4343 Text hidden inserted by code assist (1GJ9PGK)
<br>#6701 Code assist: java hint not properly aligned
<br>#6379 StatusLine 'Writeable' is not readable
<p>
<hr WIDTH="100%">
<p>Eclipse SDK Build 20020108
<h2>
Breaking API changes</h2>

<h2>
Other highlights</h2>

<h2>
Known deficiencies</h2>

<h2>
Problem reports closed</h2>
#3833 Javadoc hover appears under code assist window (1GF0K3T)
<br>#4363 Two Java Doc hovers
<p>
<hr WIDTH="100%">
<p>Eclipse SDK Build 20011218
<h2>
Breaking API changes</h2>

<h2>
Other highlights</h2>

<h2>
Known deficiencies</h2>

<h2>
Problem reports closed</h2>
#1614 Current line in Debugger should start at center of source ed
<br>#5000 Context menu IDs not fully qualified
<br>#5959 Text editor: SEVERE - Revert should be undoable
<br>#6075 NPE while editing in compare view
<br>#6318 F2 window accessability issues
<br>#4367 Argument hover doesn't work for nested method call
<br>#4964 Automatic Code Assist needs to be smarter
<br>#4966 Automatic Code Assist needs to be smarter #2
<br>#4967 Automatic Code Assist needs to be smarter #3
<br>#4968 Automatic Code Assist needs to be smarter #4
<br>#4969 Automatic Code Assist needs to be smarter #5
<br>#4999 Automatic Code Assist needs to be smarter #7
<br>#6589 ctrl+insert, shift+insert incorrectly flips the insert/overw
<br>#3467 Horizontal scrolling when stepping through errors (1GE6AF1)
<br>#4041 out of sync error message after copying resources (1GGR6VZ)
<br>#6699 Save should not flush undo stack
<br>#4071 Format option loses place in editor (1GHQFU6)
<p>
<hr WIDTH="100%">
<p>Eclipse SDK Build 20011211
<h2>
Breaking API changes</h2>

<h2>
Other highlights</h2>

<h2>
Known deficiencies</h2>

<h2>
Problem reports closed</h2>
#1614 Current line in Debugger should start at center of source editor
(1GETH7J)
<br>#3467 Horizontal scrolling when stepping through errors (1GE6AF1)
<p>
<hr WIDTH="100%">
<br>&nbsp;
<p>Eclipse SDK Build 20011206
<h2>
Breaking API changes</h2>

<h2>
Other highlights</h2>
Support for read-only but modifiable resources in editors. For this reason
AbstractTextEditor now calls validateState if its document provider also
implement IDocumentProviderExtension. The calls are issued:
<ul>
<li>
when an editor is marked dirty</li>

<li>
when an editor saves its document to its input</li>

<li>
when a dirty resource is moved (if allowed)</li>
</ul>
Calling validateState may cause changes to the isModifiable and isReadOnly
properties of the editor's input.
<br>FileDocumentProvider implements validateState by calling IWorkspace.validateEdit
on the input file.
<h2>
Known deficiencies</h2>

<h2>
Problem reports closed</h2>

<hr WIDTH="100%">
<p>Eclipse SDK Build 20011204
<h2>
Breaking API changes</h2>

<h2>
Other highlights</h2>
Perparations for supporting the concept of read-only but modifiable resources
in editors.
<h2>
Known deficiencies</h2>

<h2>
Problem reports closed</h2>
#6203 SEVERE: typing in java editor causes OutOfMemoryError in JDK 1.4
<br>#6263 Extra closing braces inserted
<p>
<hr WIDTH="100%">
<br>&nbsp;
<p>Eclipse SDK Build 20011127
<h2>
Breaking API changes</h2>

<h2>
Other highlights</h2>

<ul>
<li>
An BasicTextEditorActionContributor now contributes three status fields
into the window's status line. Each field is dedicated to show information
of a particular category. The categories are defined in ITextEditorActionConstants.
A new interface ITextEditorExtension has been introduced. On activation,
implementing editors of this interface are informed about the status fields
they can use to publish status information. AbstractTextEditor implements
ITextEditorExtension. Subclasses of AbstractTextEditor can get access to
the editor's current status fields using the method getStatusField(String
category). By default, AbstractTextEditor publishes the following information:
cursor position, input mode, reade only state of its input. Subclasses
may change this behavior by overriding updateStatusField(String category)
or callers of this method.</li>

<li>
The default text editor uses the feature described above and now provides
status information.</li>
</ul>

<h2>
Known deficiencies</h2>

<h2>
Problem reports closed</h2>
#4071&nbsp;&nbsp;&nbsp; Format option loses place in editor (1GHQFU6)
<br>#6168&nbsp;&nbsp;&nbsp; code assist preference (auto complete) does
not work
<br>#6087&nbsp;&nbsp;&nbsp; NPE closing content assist from DisplayView
on exit
<br>#6013&nbsp;&nbsp;&nbsp; Repeatable Java editor hang in 200111115
<br>#4947&nbsp;&nbsp;&nbsp; No indication of Insert/Overwrite mode
<p>
<hr WIDTH="100%">
<p>Eclipse SDK Build 20011120
<h2>
Breaking API changes</h2>

<h2>
Other highlights</h2>

<ul>
<li>
Change to AbstractHoverInformationControlManager to reset the hover location
on a time basis.</li>

<li>
Added configuration method to ContentAssistant to automatically insert
a single proposal.</li>

<li>
Behavioral configuration methods such as enableAutoInsert, enableAutoActivation,
and setAutoActivationDelay can now be called when after the content assistant
has been installed.</li>

<li>
Context information popup recomputes size after style information has been
applied.</li>
</ul>

<h2>
Known deficiencies</h2>

<h2>
Problem reports closed</h2>
#2569&nbsp;&nbsp;&nbsp; [JFace Text] Content assist list truncated (1GG1W9B)
<br>#2904&nbsp;&nbsp;&nbsp; [JFace Text] PropagatingFontFieldEditor has
moved (1GKKL13)
<br>#1824&nbsp;&nbsp;&nbsp; [JFace Text] 50 reconciling threads for 4 editors
opened (1GFXMV8)
<br>&nbsp;
<p>
<hr WIDTH="100%">
<p>Eclipse SDK Build 20011101
<h2>
Breaking API changes</h2>

<h2>
Other highlights</h2>

<ul>
<li>
introduction of setDocumentContent(IDocument, IEditorInput) on StorageDocumentProvider.</li>

<li>
introduction of IDocumentExtension (see JavaDoc)</li>

<li>
AbstractDocument implements IDocumentExtension</li>
</ul>

<h2>
Known deficiencies</h2>
Instances of DefaultInformationControl are wider than necessary.
<h2>
Problem reports fixed</h2>

<hr WIDTH="100%">
<p>Eclipse SDK Build 206
<h2>
Breaking API changes</h2>
Corrected spelling of&nbsp; "anchor" in AbstractInformationControlManager
and its subclasses.
<h2>
Other highlights</h2>

<h2>
Known deficiencies</h2>
Instances of DefaultInformationControl are wider than necessary.
<h2>
Problem reports fixed</h2>
<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=5066">#5066&nbsp;&nbsp;&nbsp;
Code Assist: Thread created / not removed</a>
<br><a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=5120">#5120&nbsp;&nbsp;&nbsp;
Empty popup doc in java editor</a>
<br><a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=3473">#3473&nbsp;&nbsp;
mnemonics (1GF25DN)</a>
<p>
<hr WIDTH="100%">
<br>&nbsp;
<p>Eclipse SDK Build 204
<h2>
Breaking API changes</h2>

<h2>
Other highlights</h2>
For more information about the following issue please see JavaDoc of the
classes
<ul>
<li>
Several improvements of the new hover infrastructure, such as customizable
SWT styles.</li>

<li>
Improved look of the content assist window.</li>

<li>
Content assist supports customizable completion characters, i.e. each completion
proposal can specify which characters trigger its insertion.</li>
</ul>

<h2>
Known deficiencies</h2>
Instances of DefaultInformationControl are wider than necessary.
<h2>
Problem reports fixed</h2>

<p><br>
<hr WIDTH="100%">
<br>&nbsp;
<p>Eclipse SDK Build 203
<h2>
Breaking API changes</h2>
&nbsp; package:&nbsp;&nbsp; org.eclipse.jface.text
<br>&nbsp; interface:&nbsp;&nbsp; IHoverInfoPresenter
<br>&nbsp; change:&nbsp;&nbsp; removed interface
<br>&nbsp; change type: breaking API change for implementers of IHoverInfoPresenter
<h2>
Other highlights</h2>
For more information about the following issue please see JavaDoc of the
classes
<ul>
<li>
Complete rework of hover popups (previously a package private mechanism
hidden from clients). There is now the concept of an IInformationControl
and an IInformationControlCreator. Everywhere where floating windows are
used to present some kind of information, now IInformationControl is used.
More precise, the according component is equiped with an IInformationControlCreator
and creates the IInformationControl instance when needed. So clients can
set an IInformationControlCreator on a TextViewer and a SourceViewer. They&nbsp;
use it&nbsp; to create the text hover window and the annotation bar hover
window respectively. DefaultInformationControl&nbsp; is a StyledText-based
default implementation of IInformationControl. Clients may implement IInformationControl
directly and inject their custom information control creator.</li>

<li>
AbstractInformationControlManager and its subclasses abstractly&nbsp; implement
the process of providing a SWT control with support for floating information
windows. This covers layout, positioning, content, and visibility of the
floating window. They offer a broad customization space such as layout
strategies, colors, etc.</li>

<li>
TextViewer hovers, annotation bar hovers, additional info on completion
proposals in the content assistant, etc. benefit from the new infrastructure.
UI improvements are especially visible in the layout behavior.</li>

<li>
Introduced the concept of an information presenter. An information presenter
shows information on a context derivved subject on request. See IInformationPresenter
for details as well as SourceViewer and SourceViewerConfiguration for how
to use it.</li>
</ul>

<h2>
Known deficiencies</h2>
Instances of DefaultInformationControl are wider than necessary.
<h2>
Problem reports fixed</h2>

<p><br>
<hr WIDTH="100%">
<p>Eclipse SDK Build 200
<h2>
Breaking API changes</h2>
&nbsp; package:&nbsp;&nbsp; org.eclipse.jface.text
<br>&nbsp; interface:&nbsp;&nbsp; ITextViewer
<br>&nbsp; change:&nbsp;&nbsp; added method public void invalidateTextPresentation(
)
<br>&nbsp; change type: breaking API change for implementers of ITextViewer
<p>&nbsp; package:&nbsp;&nbsp; org.eclipse.jface.text
<br>&nbsp; interface:&nbsp;&nbsp; ITextViewer
<br>&nbsp; change:&nbsp;&nbsp; added method public void setDefaultPrefixes(String[]
defaultPrefixes, String contentType)
<br>&nbsp; change type: breaking API change for implementers of ITextViewer
<p>&nbsp; package:&nbsp;&nbsp; org.eclipse.jface.text
<br>&nbsp; interface:&nbsp;&nbsp; ITextViewer
<br>&nbsp; change:&nbsp;&nbsp; removed method&nbsp; void setDefaultPrefix(String
defaultPrefix, String contentType)
<br>&nbsp; change type: breaking API change for implementers of ITextViewer
<p>&nbsp; package:&nbsp;&nbsp; org.eclipse.jface.text.rules
<br>&nbsp; class:&nbsp;&nbsp; RuleBasedDamagerRepairer
<br>&nbsp; change:&nbsp;&nbsp; deprecated constructor&nbsp; public RuleBasedDamagerRepairer(RuleBasedScanner
scanner, TextAttribute defaultTextAttribute)
<br>&nbsp; change type: breaking API change for clients of RuleBasedDamagerRepairer
<h2>
Other highlights</h2>
For more information about the following issue please see JavaDoc of the
classes
<ul>
<li>
IContextInformationValidator implementers may also implement IContextInformationPresenter
to style context information</li>

<li>
ITextHover implementers may also implement IHoverInfoPresenter to style
hover information</li>

<li>
PropagatingFontFieldEditor has been introduced</li>

<li>
MonoReconciler has been introduced to support partition independent reconciling</li>

<li>
Token has been reimplemented, supports setData method now</li>

<li>
RuleBasedScanner now supports&nbsp; public void setDefaultReturnToken(IToken
defaultReturnToken). This token is returned if no rule can fire.</li>

<li>
TextPresentation now supports&nbsp; public static void applyTextPresentation(TextPresentation
presentation, StyledText text)</li>

<li>
BasicMarkerUpdater has been marked as final</li>

<li>
SelectMarkerRulerAction has been introduced</li>

<li>
WorkbenchChainedTextFontFieldEditor has been introduced</li>
</ul>

<h2>
Known deficiencies</h2>

<h2>
Problem reports fixed</h2>
1GJ65EW: ITPSRCEDIT:WINNT - ResourceMarkerAnnotaionModel: unnecessary fireModelChange
<br>1GIYR3X: ITPSRCEDIT:ALL - NL: word select (double click) in Java comments
<br>1GGYYWK: ITPJUI:ALL - Dismissing editor with code assist up causes
lots of Internal Errors
<br>1GEUOZ9: ITPJUI:ALL - Confusing UI for multiline Bookmarks and Tasks
<br>1GII2RZ: ITPJUI:WINNT - AssertionFailed Ex. in Java editor
<br>1GIYQ9K: ITPUI:WINNT - StyledText swallows Shift+TAB
<br>1GIJZOO: ITPSRCEDIT:ALL - Gotodialog's edit field has no initial focus
<br>&nbsp;
<p><a href="hglegal.htm"><img SRC="ngibmcpy.gif" BORDER=0 height=12 width=195></a>
<br>&nbsp;
</body>
</html>
