NetBeans Architecture Answers for Editor Library module

WARNING: answering questions version 1.25 rather than the current 1.29.

Interfaces table

Group of java interfaces
Interface NameIn/OutStabilitySpecified in What Document?
EditorHyperlinkSPIExportedUnder Development

Hyperlink SPI in org.netbeans.lib.editor.hyperlink.spi allows the editors for a particular mime-type to respond to the situation when a user hovers over the text with a Ctrl key pressed.

EditorLibraryModuleAPIExportedUnder Development

Editor defines APIs and SPIs both by
  • Providing java classes in public packages for further reuse.
    Most of the classes were created spontaneously (several years ago) without fulfilling of the rules imposed on APIs and SPIs at the present time.
    There is an ongoing work to revisit the existing classes and create stable APIs and SPIs (and possibly extract functionality into a submodule where appropriate). However this is a long-term task spanning several promotions.
  • Being sensitive to content of certain directories in xml layer.

CodeFoldingAPIImportedOfficial .../architecture-summary.html

EditorUtilAPIImportedFriend

Set of various editor-related utility classes and methods.

JAXPImportedStandard .../java.sun.com/xml/jaxp/dist/1.1/docs/api/

Standard XML APIs (DOM, SAX) - distributed with the IDE (in lib/ext/xml-apis*.jar), already part of JDK 1.4 and newer).

Group of property interfaces
Interface NameIn/OutStabilitySpecified in What Document?
mimeTypeImportedStable

Document property containing mime-type of the particular document e.g. "text/x-java".
It allows to search for particular editor settings based on the mime-type such as tooltip annotations providers etc.
Maintained by org.openide.text package.

Document.StreamDescriptionPropertyImportedStable

Document property containing either DataObject or FileObject from which the Document content was loaded.
Maintained by org.openide.text package.

TextLimitLineImportedPrivate

Component client property that determines a column index where a text limit line will be displayed. This overrides a default value from editor settings for a particular component.

DefaultEditorKit.EndOfLineStringPropertyExportedStable

Document property containing line separator that was used when the document content was loaded from a java.io.Reader by an EditorKit.read().

line-limitExportedPrivate

Document property that determines the number of characters in the longest line determined during the document loading from a reader by the editor kit.

org.netbeans.api.fold.expanderImportedFriend

The client property must be defined on JTextComponent managed by the NetBeans editor.

Mouse gestures require to determine whether the point at caret is folded or not. Plain text is then selected. The client property org.netbeans.api.fold.expander (if defined) should contains a Callable<Boolean> that returns false, if the point is a plaintext, true otherwise. Fold expansion should be handled by the Callable.

editor.fold module uses this client property to hook into BaseCaret processing.

Group of systemproperty interfaces
Interface NameIn/OutStabilitySpecified in What Document?
netbeans.debug.editor.documentImportedPrivate

System property to deubg inserts and removals done in the document.

netbeans.debug.editor.document.stackImportedPrivate

System property to dump thread stacks during inserts and removals done in the document.

netbeans.debug.editor.document.readImportedPrivate

System property to debug loading of the document from a java.io.Reader by an EditorKit.

netbeans.debug.editor.document.undoImportedPrivate

System property to debug undoing/redoing of the modifications done in the document.

netbeans.debug.editor.view.rebuildImportedPrivate

System property to debug the view regions being rebuilt during document modifications.

netbeans.debug.editor.view.paintImportedPrivate

System property to debug paint operations done in views (clipping regions sizes etc.).

netbeans.debug.editor.view.repaintImportedPrivate

System property to debug when repaints are initiated in views.

netbeans.debug.editor.drawImportedPrivate

System property to debug the tokens that the drawing engine is rendering.

netbeans.debug.editor.draw.fragmentImportedPrivate

System property to debug particular fragments of the text being rendered by the editor's drawing engine.

netbeans.debug.editor.draw.graphicsImportedPrivate

System property to debug graphics operations that the editor sends to a java.awt.Graphics of the component being rendered.

netbeans.debug.editor.format.modifyImportedPrivate

System property to debug particular token modifications during the text formatting process.

netbeans.debug.editor.caret.focusImportedPrivate

System property to debug when a focus is gained and lost by the editor's caret.

netbeans.debug.editor.caret.focus.extraImportedPrivate

System property to debug details of a focus related processing of the editor's caret (e.g. caret blinking timer etc.).

netbeans.debug.editor.atomicImportedPrivate

System property to debug when atomic transactions are performed over the editor's document.

netbeans.debug.editor.atomic.stackImportedPrivate

System property to debug thread stacks during atomic transactions performed over the editor's document.

netbeans.debug.editor.warmupImportedPrivate

System property to debug execution of the editor's warmup task (e.g. time intervals that each warmup section takes etc.).

netbeans.debug.editor.popup.menuImportedPrivate

System property to debug creation of the editor's popup menu. It shows the added popup menu item's text, whether it's invisible and action that produced the item.

netbeans.debug.exceptionsImportedPrivate

Obsolete now, we will remove those when time allows.

line.separatorImportedOfficial

To determine the line separator on a particular platform.

org.netbeans.lib.editor.hyperlink.HyperlinkOperation.activationKeyImportedPrivate

To specify modifiers for which the hyperlinking should be enabled, or to switch the hyperlinking off. Valid values are "[CSMA]+" (to specify combination of modifiers) or "off" (to switch hyperlinking off).


General Information


Project and platform dependencies


Deployment


Compatibility with environment


Access to resources


Lookup of components


Execution Environment


Format of files and protocols


Performance and Scalability