This document lists changes made to the Editor Library 2 API.
Fuller descriptions of all changes can be found below (follow links).
Not all deprecations are listed here, assuming that the deprecated APIs continue to essentially work. For a full deprecation list, please consult the Javadoc.
These API specification versions may be used to indicate that a module requires a certain API feature in order to function. For example, if you see here a feature you need which is labelled 1.20, your manifest should contain in its main attributes the line:
OpenIDE-Module-Module-Dependencies: org.netbeans.modules.editor.lib2/1 > 1.20
org.netbeans.api.editor.caret.CaretMoveContext
org.netbeans.spi.editor.caret.CascadingNavigationFilter
org.netbeans.api.editor.DialogBinding
org.netbeans.api.editor.EditorActionNames
org.netbeans.api.editor.EditorActionRegistration
org.netbeans.api.editor.caret.EditorCaret
org.netbeans.api.editor.caret.EditorCaretEvent
org.netbeans.api.editor.EditorRegistry
org.netbeans.api.editor.EditorUtilities
org.netbeans.spi.editor.highlighting.HighlightsSequence
org.netbeans.api.editor.caret.MoveCaretsOrigin
org.netbeans.spi.editor.caret.NavigationFilterBypass
org.netbeans.spi.editor.SideBarFactory
org.netbeans.spi.editor.highlighting.SplitOffsetHighlightsSequence
org.netbeans.api.editor.StickyWindowSupport
org.netbeans.spi.editor.typinghooks.TypedTextInterceptor
TypedTextInterceptor
; made by: jlahoda
Added TypedTextInterceptor.MutableContext.setText overload, which optionally re-indents the provided text.
HighlightsSequence
; made by: jlahoda
If AttributeSet returned from HighlightsSequence contains key "virtual-text-prepend" with a value of type String, the UI may optionally render the value as a virtual text before the text of the highlight. It is recommended to make the span of length 1, to avoid problems when the AttributeSet with "virtual-text-prepend" is merged with other AttributeSets, which could lead to duplication.
EditorActionRegistration
; made by: markiewb; issues:
#171261
Allow to set the keymap-category for an action registered using @EditorActionRegistration.
EditorCaret
; made by: mmetelka; issues:
#259023
CaretInfo.getDotBias() and CaretInfo.getMarkBias() added together with other methods and parameters for bias manipulation to properly handle bidirectional text.
SplitOffsetHighlightsSequence
; made by: mmetelka; issues:
#257889
Renamed ShiftHighlightsSequence to SplitOffsetHighlightsSequence to and its getStartShift() to getStartSplitOffset() for better description and getEndShift() to getEndSplitOffset().
EditorUtilities
; made by: mmetelka; issues:
#258798
EditorUtilities.addCaretUndoableEdit allows actions to remember caret position during an atomic transaction over a document.
StickyWindowSupport
; made by: ralphbenjamin; issues:
#258764
Support for Sticky Windows in the editor. JComponents can be added to a layer on top of the editor. Components will update their vertical position on editor changes.
CaretMoveContext
EditorCaret
EditorCaretEvent
MoveCaretsOrigin
NavigationFilterBypass
CascadingNavigationFilter
; made by: sdedic; issues:
#258824
Swing NavigationFilters implemented on top of the Caret API. Caret API caller may describe the operation which causes the caret to be moved, so that filters and caret listeners can react on specific action groups.
A boilerplate NavigationFilter is provided, that supports chaining of filters on the caret
EditorRegistry
EditorActionNames
; made by: mmetelka; issues:
#258377
The EditorRegistry.findComponent() allows caret related undo edits to be undone in a focused component (for multiple views over a single document).
Also simplified naming of EditorActionNames.addCaretUp and addCaretDown.
EditorActionNames
EditorUtilities
; affected packages: org.netbeans.api.editor.caret
; made by: mmetelka ralphbenjamin; issues:
#257893
The Caret API was introduced to allow working with multiple carets within one document.
Highlights sequence that supports shifts in addition to regular offsets. This allows to color individual spaces within a tab character or to color extra virtual characters beyond a newline character.
EditorActionNames
; made by: sdedic; issues:
#194356
Many languages define their own actions and support for navigating between symbol occurrences. Common action name allows them to be presented and configured as one action in IDE configuration.
Allows highlights containers to be notified that they are no longer being used by highlighting manager.
Document data handling and implementation was separated into editor.document
module
RemoveWordNextAction
, PreviousCamelCasePosition
, etc.
SideBarFactory
; made by: sdedic; issues:
#226877
The interface org.netbeans.spi.editor.SideBarFactory
was
adopted from the legacy editor.lib
module, with unchanged semantic.
The original interface was deprecated.
AbstractEditorAction made part of editor SPI by making org.netbeans.spi.editor a public package.
Added EditorActionRegistration.noKeyBinding and EditorActionRegistration.noIconInMenu fields into EditorActionRegistration annotation.
Added NavigationHistory and NavigationHistory.Waypoint classes. It enables to add position to edit history. It also enables get edit history and look on last edits.
Added method getReplacedText() in TypedTextInterceptor to get replaced text after it's removed. This enables to use this text in some typing actions.
Added OnSaveTask interface which allows modules to register tasks into MimeLookup that will be performed right before document saving.
Added UndoableEditWrapper interface which allows wrapping of document-generated undoable edit by custom wrapping undoable edit(s).
Added EditorDocumentUtils.runExclusive(Runnable) method for gaining exclusive access to document without making any document mutations.
Add "weight" attribute to EditorActionRegistration annotation to allow for a clean actions overriding.
DefaultKeyTypedAction
,
InsertBreakAction
, etc.
DialogBinding.bindComponentToFile(FileObject fileObject, int line, int column, int length, JTextComponent component)
and DialogBinding.bindComponentToDocument(Document document, int line, int column, int length, JTextComponent component)
.
DialogBinding
; made by: dbalek; issues:
#163769
EditorActionRegistration
; made by: mmetelka; issues:
#150875
CodeGenerator
implementations registered for
various mime types serve for creating code snippets and inserting
them into documents on the Insert Code editor action invocation.
The CodeGeneratorContextProvider
implementations
registered for the mime types could provide the respective
CodeGenerators with an additional context information.
HighlightAttributeValue
allows specifying highlights
with attributes, which value is lazily evaluated at the time when
the attrbute is used. For example when specifying tooltips.
EditorRegistry
allows to get focused and last focused text component
and list of all registered components and it allows to listen for currently focused
component and changes of documents in it.
AttributesUtilities
class has been moved to
editor/settings
module.