# Eclipse 3.1 Platform Build Notes
Text

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 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
    	  https://bugs.eclipse.org/bugs/show_bug.cgi?id=77353.
    	- 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
    	  infrastructure.
    	  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">
    		        <engine
    		              preferencesClass="org.eclipse.jdt.internal.ui.preferences.SpellingPreferenceBlock"
    		              label="%defaultSpellingEngine.label"
    		              class="org.eclipse.jdt.internal.ui.text.spelling.DefaultSpellingEngine"
    		              default="true"
    		              id="org.eclipse.jdt.internal.ui.text.spelling.DefaultSpellingEngine">
    		        </engine>
    		    </extension>

    - 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

    LinkedMode:
    - 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