Eclipse 3.1 Platform Build Notes

To see which bugs have been addressed in one of the builds simply open the Platform-Text bugzilla query page, select status, resolution and the time frame.

========== Eclipse Build Input May 27th 2005 (RC1) ==========
- added ICompletionProposalExtension4
- added the auto-insertable property to org.eclipse.jfact.text.templates.Template, adding an additional constructor
  and deprecating an old one. See
- bug fixing
========== Eclipse Build Input May 10th 2005 ==========
- released new artwork for projection annotations
- bug fixing
========== Eclipse Build Input April 26th 2005 ==========
- added modification stamp to document and document event
- file buffers are now non-dirty after the document change is undone that caused switch into dirty state
- bug fixing
========== Eclipse Build Input April 19th 2005 ==========
- converted text plug-ins to JARed format
- bug fixing
========== Eclipse Build Input April 12th 2005 ==========
- moved relevant portions from plugin.xml to newly created MANIFEST.MF
- bug fixing
========== Eclipse Build Input March 29th 2005 ==========
- added undo history size to general text editors preference page
- bug fixing
========== Eclipse Build Input March 22th 2005 ==========
- adapted undo manager to new operation support
- bug fixing
========== Eclipse Build Input March 1st 2005 ==========
- added a ctor taking an RGB as parameter to DefaultHyperlinkPresenter
========== Eclipse Build Input February 8th 2005 ==========
- added ProjectionAnnotation.getCaptionOffset which allows folding providers
  to specify which line of a folded-away region should be used as the caption
  that remains visible in the document. This change is binary compatible, but
  could break clients that already define such a method.
- moved the "Change Encoding..." action from "File" > "Conversion" to "Edit"
- renamed "File" > "Conversion" to "File" > "Convert Line Delimiters To"
========== Eclipse Build Input February 1st 2005 ==========
- added FastPartitioner, replacing DefaultPartitioner which is deprecated.
  FastPartitioner has the same interface as DefaultPartitioner, but internally
  caches the partitioning positions set on the document to avoid multiple array
  creations. Current users of DefaultPartitioner are encouraged to migrate to
  FastPartitioner; subclasses of DefaultPartitioner that do not modify the positions 
  will work when subclassing FastPartioner as well, those that do will need to call
  clearPositionCache() when positions are modified.
- encoding change dialog now rejects invalid encodings
========== Eclipse Build Input January 25th 2005 ==========
- added Hippie (emacs style) Completion, contributed by Genady Beryozkin. The action (bound to Alt+/ per default)
  scans all open editors for completions to the current prefix and cycles through the completions.
- bug fixing
========== Eclipse Build Input January 18th 2005 ==========
- bug fixing
========== Eclipse Build Input January 11th 2005 ==========
- bug fixing
========== Eclipse Build Input January 4th 2005 ==========
- Quick Diff:
	- added org.eclipse.jface.text.source.ILineDifferExtension extension interface to ILineDiffer

- Templates:
	- deprecated all setters on org.eclipse.jface.text.templates.Template. Template
	  is really a value object and should not be modified any longer.
	- In order to handle the above change, deprecated TemplatePreferencePage.createEditTemplateDialog.
	  Subclasses really don't need to display a dialog if they don't want. Editing or adding a template
	  can be customized through the new hook method editTemplate method.
- bug fixing
========== Eclipse Build Input December 14th 2004 ==========
- added Spelling API to org.eclipse.ui.workbench.texteditor plug-in:
	- The API is still under construction, provide feedback in
	- New package: org.eclipse.ui.texteditor.spelling
	- New extension-point: org.eclipse.ui.workbench.texteditor.spellingEngine
	- A spelling client can spell-check a document by calling
	  SpellingService#check(IDocument document, IRegion[] regions, SpellingContext context, ISpellingProblemCollector collector, IProgressMonitor monitor).
	  The supplied SpellingContext allows the spelling engine to determine
	  settings specific to this check. Each spelling error is reported to the
	  supplied ISpellingProblemCollector as SpellingProblem.
	  For example, see org.eclipse.jdt.internal.ui.text.spelling.JavaSpellingReconcileStrategy
	  and org.eclipse.jdt.internal.ui.text.spelling.JavaSpellingReconcileStrategy.SpellingProblemCollector.
	- The org.eclipse.ui.editors plug-in provides access to a system-wide instance of
	  SpellingService with org.eclipse.ui.editors.text.EditorsUI#getSpellingService()
	  and registers a preference page for configuring the SpellingService's and
	  the spelling engines' preferences. The SpellingService's preferences are whether
	  spelling is enabled and which spelling engine is used. (The spelling preference page
	  shows a combo box for chosing the used engine only if more than one engine
	  is present.)
	  See org.eclipse.ui.texteditor.spelling.SpellingService and
	  the General > Editors > All Text Editors > Spelling preference page.
	- A spelling engine implementer must implement ISpellingEngine and extend
	  the org.eclipse.ui.workbench.texteditor.spellingEngine extension-point.
	  The implementation of ISpellingEngine#check(IDocument document, IRegion[] regions, SpellingContext context, ISpellingProblemCollector collector, IProgressMonitor monitor)
	  reports any spelling errors to the given ISpellingProblemCollector as SpellingProblem.
	  Note that the engine must not call ISpellingProblemCollector#beginReporting()
	  or ISpellingProblemCollector#endReporting() as this is done by the spelling
	  For example, see org.eclipse.jdt.internal.ui.text.spelling.DefaultSpellingEngine
	  and org.eclipse.jdt.internal.ui.text.spelling.JavaSpellingProblem.
	- A spelling engine implementer can implement ISpellingPreferenceBlock and specify
	  the implementing class with the extension. A ISpellingPreferenceBlock provides
	  a UI for preferences specific to the spelling engine. If the user-supplied preference
	  values are not valid, the preference block should notify the IPreferenceStatusMonitor
	  it received on ISpellingPreferenceBlock#initialize(IPreferenceStatusMonitor), such
	  that the containing preference page can provide corresponding indication to the user.
	  For example, see org.eclipse.jdt.internal.ui.preferences.SpellingPreferenceBlock and
	  the General > Editors > All Text Editors > Spelling preference page.
	- Extension specification example from the org.eclipse.jdt.ui plug-in's plugin.xml:
		    <extension point="org.eclipse.ui.workbench.texteditor.spellingEngine">
- bug fixing
========== Eclipse Build Input November 30th 2004 ==========
- added new hyperlink support to text viewer and editors:
	- new package org.eclipse.jface.text.hyperlink
	- extended ITextEditor with ITextViewerExtension6
	- added shared/global text editor preference to
		- enable/disable hyperlinking (default: enabled)
		- set the hyperlink modifier key (default: MOD1 i.e. Ctrl or Command)
		- set the hyperlink color (default: blue)
	- SourceViewerConfiguration: clients using or subclassing it will now automatically
	  get hyperlinking for URLs (using MOD1 modifier).
	  - If hyperlinking is not desired then getHyperlinksEnabled(...) can be overwritten
	    to return false.
	  - To use the shared/global editor hyperlink preference either subclass
	    TextSourceViewerConfiguration or duplicate the getHyperlink* methods to your subclass
	    of SourceViewerConfiguration.
	    Note: your editor's preference store must be a ChainedPreferenceStore, e.g.
	  		  IPreferenceStore generalTextStore= EditorsUI.getPreferenceStore(); 
			  fChainedPreferenceStore= new ChainedPreferenceStore(new IPreferenceStore[] { YourPlugin.getPreferenceStore(), generalTextStore });
	 - additional hyperlink targets can be configured by extending SourceViewerConfiguration.getHyperlinkDetectors(...)
	   NOTE: In the feature it might (i.e. not sure yet) be possible to provide hyperlinking via
	   		 extension-point(s) and user-configurable it via preferences.
- preferences: 
  - moved many preferences that were available in all editors to a
    shared editor page (see Workbench>Editors>All Text Editors)
  - moved Java editor prefernce page under the Workbench>Editors node
  	- this is a temporary position due to the ongoing prefernce page reordering effor
  - removed some preferences:
  	- show overview ruler
- bug fixing
========== Eclipse Build Input November 23th 2004 ==========
- moved adapter factory registration from plug-in class to extension point
- bug fixing
========== Eclipse Build Input September 21 2004 ==========
- the text editor now retargets the properties action i.e. the command to open
  the properties dialog is enabled when the text editor has focus
- there's a new Edit > Change Encoding... action which reuses the encoding
  field editor from the properties dialog
- EncodingActionGroup, IEncodingActionsConstants, IEncodingActionsDefinitionIds and
  IEncodingActionsHelpContextIds are no longer used and have been deprecated
- bug fixing

- LinkedModeModel: document changes outside of linked positions
  are now tolerated, as well as changes that do not lie completely inside a 
  position. Linked mode is still left if any disjointness constraints are violated
  by a change (changes to LinkedModeModel and LinkedPositionGroup)
- LinkedModeUI now controls the entire exit behavior, so all the exit logic
  is at one point. The UI includes a document listener now and exits the same
  way as LinkedModeModel did before
-> no binary changes, no functional changes for any clients that use LinkedModeUI and LinkedModeModel together.

========== Eclipse Build Input July 2004 ==========
- bug fixing