<!-- 
	DO NOT EDIT THIS FILE WITH HTML EDITORS
-->

<!DOCTYPE doctype 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]">
   <title>Eclipse Platform Text Build Notes</title>
</head>

<body>
<h1>Eclipse Platform Text Build Notes</h1>
To see which bugs have been addressed in one of the builds simply open the <a href="http://bugs.eclipse.org/bugs/query.cgi?short_desc_type=allwordssubstr&amp;product=Platform&amp;component=Text&amp;long_desc_type=allwordssubstr&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;keywords_type=allwords&amp;keywords=&amp;emailtype1=substring&amp;email1=&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;changedin=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;namedcmd=Assigned&amp;newqueryname=&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=">Platform-Text bugzilla query page</a>, select status, resolution and the time frame.
<br>
<br>
========== Eclipse Build Input November 21th 2006 ==========<br>
<pre>
- added spell checking support to text editor
- editor implementors that want to add spell checking can use the new SpellingCorrectionProcessor and the SpellingReconcileStrategy  
- bug fixing
</pre
<br>
<br>
========== Eclipse Build Input November 14th 2006 ==========<br>
<pre>
- improved annotation painting performance in overview ruler and text area
- bug fixing
</pre
<br>
<br>
========== Eclipse Build Input October 10th 2006 ==========<br>
<pre>
- bug fixing
</pre
<br>
<br>
========== Eclipse Build Input September 18th 2006 ==========<br>
<pre>
- renamed AbstractRulerColumn to AbstractContributedRulerColumn
- refactored RulerColumn to no longer extend AbstractContributedRulerColumn and moved it down to JFace Text as AbstractRulerColumn
- bug fixing
</pre
<br>
<br>
========== Eclipse Build Input August 29th 2006 ==========<br>
<pre>
- bug fixing
- added default character pair matcher
- added support to use the FindReplaceAction with shells
</pre
<br>
<br>
========== Eclipse Build August 8th 2006 (3.3 M1) ==========<br>
<pre>
- Implementation of <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=25793">request 25793</a>:
	- Introduced the org.eclipse.ui.workbench.texteditor.rulerColumn extension point. It allows to contribute
	  vertical ruler columns to any text editor.
	- Two standard ruler columns used in the Eclipse Text and Java editors have been converted to use
      the new extension point: Line numbers (including quick diff and revision information) and the annotation ruler column.
	- deprecated AbstractDecoratedTextEditor.createChangeRulerColumn()
	  While implementing <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=25793">request 25793</a>, we replaced
	  the line number and quick diff rulers by one single contribution to the new rulerColumns extension point. Replacing
	  createChangeRulerColumn never made any sense, as the a private field in AbstractDecoratedTextEditor got assigned as a 
	  side effect of calling that method. Replacing the method would have removed the support for quick diff. Implementations
	  interested in supplying a custom line number column can still override AbstractDecoratedTextEditor.createLineNumberRulerColumn(), which 
	  continues to be supported.
	- introduced org.eclipse.jface.text.source.ILineDifferExtension2 that allows to query a line differ for its suspension state
	- introduced predicates to LineNumberChangeRulerColumn that allow clients to test whether it displays line numbers, quick diff information, or revision
	  information, or a combination thereof.
- bug fixing
</pre
<br>
<br>
========== Eclipse Build Input July 18th 2006 ==========<br>
<pre>
- bug fixing
</pre
<br>
<br>
========== Eclipse Build Input July 4th 2006 ==========<br>
<pre>
- bug fixing
</pre
<br>
<br>
========== Eclipse Build Input June 20th 2006 ==========<br>
<pre>
- bug fixing
- AbstractInformationControlManager#computeInformationControlLocation will no longer use the 
  lowest priority anchor in the case that the proposed information control size does not fit 
  with any of the anchors. Instead, it uses AbstractInformationControlManager#computeAvailableArea
  to see which anchor offers the largest intersection with the proposed control size. In addition,
  the control size and location are adjusted such that the information control does not overlap 
  with the subject area (unless the anchor is ANCHOR_GLOBAL) and does not bleed over the monitor edges.
</pre>
<br>
<br>
========== Eclipse Build Input June 13th 2006 ==========<br>
<pre>
- bug fixing
- rewrite of GapTextStore which improves random replace operations as less re-allocations
  occur. This allows to deprecate SequentialRewriteTextStore as its performance is not better than
  the new GapTextStore. Users of SequentialRewriteTextStore should simply use GapTextStore instead; consequently,
  the default IDocument implementation (Document) no longer does text store switching
  when a sequential rewrite session starts or ends. Also, the existing constructor of GapTextStore has
  been deprecated.
</pre>
<br>
<br>
</body>
</html>