Platform Text - Breaking API changes from R2.1 to R3.0
  • org.eclipse.jface.text.source.AnnotationModel.addAnnotation(Annotation, Position, boolean): changed signature to throw org.eclipse.jface.text.BadLocationException in order to add support for better handling of invalid document positions. Only clients which extend (i.e. call super) this method will be broken. To fix the problem either catch the exception from the super call or change the signature in the extended method. The latter is suggested since clients should decide how to handle invalid document positions.
  • org.eclipse.ui.texteditor.TextEditorAction.canModifyEditor(): added predicate method that checks whether the action's editor can be modified. The method calls different methods on the underlying editor depending on which interfaces the editor implements. The method will call ITextEditorExtension2.isEditorInputModifiable() if it is available. Modifing actions can call the method when updating their enablement state.
  • org.eclipse.ui.texteditor.TextEditorAction.validateEdit(): added predicate method that checks and updates the modifiable state of the action's editor. The method calls different methods on the underlying editor depending on which interfaces the editor implements. The method will call ITextEditorExtension2.validateEditorInputState() if it is available. Modifing actions can call the method before running modifing the editor's content.
  • org.eclipse.ui.texteditor.ExtendedTextEditor: A new intermediate class layer has been added between StatusTextEditor and other editors, namely TextEditor and JavaEditor. The additional layer includes features found commonly in advanced editors (and especially source editors) such as:
    • a vertical ruler to display annotations, line numbers, and quick diff information
    • an overview ruler
    • current line hightlighting,
    • and print margin display
    Implementors of an editor may choose to extend ExtendedTextEditor instead of TextEditor.
This document lists the breaking API changes that occurred between R2.1 and R3.0 and how to migrate from the R2.1 API to the R3.0 API.