<!-- 
	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 Build Notes - Text</title>
</head>

<body>
<h1>
Eclipse Platform Build Notes<br>
Text</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 February 7th 2006 ==========<br>
<pre>
- added selectionChanged event to ICompletionListener
- added start/stopListeningForPreferenceChanges to TemplateStore to enable automatic preference store listening
- bug fixing
</pre>
<br>
<br>
========== Eclipse Build Input January 17th 2006 ==========<br>
<pre>
- deprecated TextViewer::getVisibleLinesInViewport as it won't work with variable line heights
- bug fixing
</pre>
<br>
<br>
========== Eclipse Build Input January 10th 2006 ==========<br>
<pre>
- Move of the content assist API additions from the various text plug-ins to jdt.ui:
   - reason: 
      - the collection-based API of ICompletionProposalComputer has no future in the RCP part of eclipse.
      - it is only currently used in jdt to allow contributions to the Java editor's content assistant
   - removed the unused ContentAssistInvocationContext 
   - moved TextContentAssistInvocationContext to jdt.ui
   - moved ICompletionProposalComputer to IJavaCompletionProposalComputer in the jdt.ui plug-in.
   - changed HippieProposalComputer to HippieProposalProcessor, now implementing IContentAssistProcessor instead of ICompletionProposalComputer

- Changes in document setup and creation:
  1) the extension point 'org.eclipse.core.filebuffers.documentCreation' is now
     deprecated and urges clients to get rid of it along with hints how to do this
  2) along with 1) 'org.eclipse.core.filebuffers.IDocumentFactory' is deprecated
  3) the file buffer manager now provides an 'org.eclipse.jface.text.ISynchronizable'
     document. Clients which need a synchronized document can set a lock object.
     Note: To overwrite an existing lock object is considered bad practice and can
           break other clients: if the document already has a lock object set then
           this one should be used by the client.
  4) a warning is now written to the .log file if a document setup participant
     sets the default partitioner and the extension point documentation has been
     clarified.
  5) all PartiallySynchronizedDocument implementations can be removed

- bug fixing
</pre>
<br>
========== Eclipse Build Input December 12th 2005 ==========<br>
<pre>
- bug fixing
</pre>
<br>
========== Eclipse Build Input December 6th 2005 ==========<br>
<pre>
- converted code to support the new  mutli-font in StyledText widget:
	- getBaseline() ==> getBaseline(int)
	- getLineHeight() ==> getLineHeight(int)
  open issues:
  	- waiting for additional StyledText API (https://bugs.eclipse.org/bugs/show_bug.cgi?id=118670)
	- we do not yet handle the case where the line number ruler font is bigger than the biggest line font (https://bugs.eclipse.org/bugs/show_bug.cgi?id=119232)
	- incorrectly painting of projection summary end [..] (https://bugs.eclipse.org/bugs/show_bug.cgi?id=119235)
	- problems with custom image and special sized carets (https://bugs.eclipse.org/bugs/show_bug.cgi?id=118612)
	- StyledText computes the line base too high (https://bugs.eclipse.org/bugs/show_bug.cgi?id=119233)
	- if multi-font is used performance is going down, e.g. when opening or scrolling large files like StyledText
	- [api] Add new API to support memory efficient StyleRange support in StyledText (https://bugs.eclipse.org/bugs/show_bug.cgi?id=119384)

- bug fixing
</pre>
<br>
========== Eclipse Build Input November 22nd 2005 ==========<br>
<pre>
- bug fixing
</pre>
<br>
========== Eclipse Build Input October 11th 2005 ==========<br>
<pre>
- adopted new Eclipse FS (details see https://bugs.eclipse.org/bugs/show_bug.cgi?id=106176)
- bug fixing
</pre>
<br>
========== Eclipse Build Input September 13th 2005 ==========<br>
<pre>
- pushed down annotation navigation to JFace Text and added annotation
  navigation to all text editors
- bug fixing
</pre>
<br>
========== Eclipse Build Input September 6th 2005 ==========<br>
<pre>
- pushed down annotation hovering to JFace Text and added text, vertical and
  overview ruler hover support to TextSourceViewerConfiguration which makes this
  available to all clients using this configuration
- removed object contributions from vertical ruler menu
- bug fixing
</pre>
<br>
========== Eclipse Build Input August 30th 2005 ==========<br>
<pre>
- hyperlink navigation is now also available if editor does not have focus
- bug fixing
</pre>
<br>
========== Eclipse Build Input August 16th 2005 ==========<br>
<pre>
- Esc on code assist popup no longer closes shell
- clarified how to translate template file translations
</pre>
<br>
========== Eclipse Build Input August 9th 2005 ==========<br>
<pre>
- bug fixing
</pre>
<br>
<br>
</body>
</html>