# Class RichTextArea

java.lang.Object
javafx.scene.Node
javafx.scene.Parent
javafx.scene.layout.Region
javafx.scene.control.Control
jfx.incubator.scene.control.richtext.RichTextArea

All Implemented Interfaces:
  `Styleable`, `EventTarget`, `Skinnable`

Direct Known Subclasses:
  `CodeArea`

public class RichTextArea extends Control
The RichTextArea control is designed for visualizing and editing rich text that can be styled in a variety of ways.

The RichTextArea control has a number of features, including:

- `paragraph-oriented model`, up to ~2 billion rows
- virtualized text cell flow
- support for text styling with an application stylesheet or `inline attributes`
- support for multiple views connected to the same model
- `single selection`
- `input map` which allows for easy behavior customization and extension

## Creating a RichTextArea

The following example creates an editable control with the default `RichTextModel`:

       RichTextArea textArea = new RichTextArea();

The methods `appendText()`, `insertText()`, `replaceText()`, `applyStyle()`, `setStyle()`, or `clear()` can be used to modify text programmatically:

       // create styles
       StyleAttributeMap heading = StyleAttributeMap.builder().setBold(true).setUnderline(true).setFontSize(18).build();
       StyleAttributeMap mono = StyleAttributeMap.builder().setFontFamily("Monospaced").build();

       RichTextArea textArea = new RichTextArea();
       // build the content
       textArea.appendText("RichTextArea\n", heading);
       textArea.appendText("Example:\nText is ", StyleAttributeMap.EMPTY);
       textArea.appendText("monospaced.\n", mono);

Which results in the following visual representation:

A view-only information control requires a different model. The following example illustrates how to create a model that uses a stylesheet for styling:

         SimpleViewOnlyStyledModel m = new SimpleViewOnlyStyledModel();
         // add text segment using CSS style name (requires a stylesheet)
         m.addWithStyles("RichTextArea ", "HEADER");
         // add text segment using inline styles
         m.addWithInlineStyle("Demo", "-fx-font-size:200%; -fx-font-weight:bold;");
         // add newline
         m.nl();

         RichTextArea textArea = new RichTextArea(m);

## Text Models

A number of standard models can be used with RichTextArea, each addressing a specific use case:

Standard Models
Model Class | Description
--- | ---
    StyledTextModel
| Base class (abstract)
     ├─ RichTextModel
| Default model for RichTextArea
     ├─ BasicTextModel
| Unstyled text model
     │   └─ CodeTextModel
| Default model for CodeArea
     └─ StyledTextModelViewOnlyBase
| Base class for a view-only model (abstract)
         └─ SimpleViewOnlyStyledModel
| In-memory view-only styled model

## Selection

The RichTextArea control maintains a single `contiguous selection segment` as a part of the `SelectionModel`. Additionally, `anchorPositionProperty()` and `caretPositionProperty()` read-only properties are derived from the `selectionProperty()` for convenience.

## Customizing

The RichTextArea control offers some degree of customization that does not require subclassing:

- customizing key bindings with the `InputMap`
- setting `leftDecorator` and `rightDecorator` properties

Since:
  24
See Also:
  - `StyledTextModel`

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static class`
  `RichTextArea.Tag`
  Function tags serve as identifiers of methods that can be customized via the `InputMap`.

- ## Property Summary

  Properties
  Type
  Property
  Description
  `final ReadOnlyProperty<TextPos>`
  `anchorPosition`
  Tracks the selection anchor position within the document.
  `final ObjectProperty<Duration>`
  `caretBlinkPeriod`
  Determines the caret blink period.
  `final ReadOnlyProperty<TextPos>`
  `caretPosition`
  Tracks the caret position within the document.
  `final ObjectProperty<Insets>`
  `contentPadding`
  Specifies the padding for the RichTextArea content.
  `final BooleanProperty`
  `displayCaret`
  This property controls whether caret will be displayed or not.
  `final BooleanProperty`
  `editable`
  Indicates whether this RichTextArea can be edited by the user, provided the model is also writable.
  `final BooleanProperty`
  `highlightCurrentParagraph`
  Indicates whether the current paragraph will be visually highlighted.
  `final ObjectProperty<SideDecorator>`
  `leftDecorator`
  Specifies the left-side paragraph decorator.
  `final ObjectProperty<StyledTextModel>`
  `model`
  Determines the `StyledTextModel` to use with this RichTextArea.
  `final ReadOnlyBooleanProperty`
  `redoable`
  The property describes if it's currently possible to redo the latest change of the content that was undone.
  `final ObjectProperty<SideDecorator>`
  `rightDecorator`
  Specifies the right-side paragraph decorator.
  `final ReadOnlyProperty<SelectionSegment>`
  `selection`
  Tracks the current selection.
  `final ReadOnlyBooleanProperty`
  `undoable`
  The property describes if it's currently possible to undo the latest change of the content that was done.
  `final BooleanProperty`
  `useContentHeight`
  Determines whether the preferred height is the same as the content height.
  `final BooleanProperty`
  `useContentWidth`
  Determines whether the preferred width is the same as the content width.
  `final BooleanProperty`
  `wrapText`
  Indicates whether text should be wrapped in this RichTextArea.

  ### Properties declared in class javafx.scene.control.Control

  `contextMenu, skin, tooltip`

  ### Properties declared in class javafx.scene.layout.Region

  `background, border, cacheShape, centerShape, height, insets, maxHeight, maxWidth, minHeight, minWidth, opaqueInsets, padding, prefHeight, prefWidth, scaleShape, shape, snapToPixel, width`

  ### Properties declared in class javafx.scene.Parent

  `needsLayout`

  ### Properties declared in class javafx.scene.Node

  `accessibleHelp, accessibleRoleDescription, accessibleRole, accessibleText, blendMode, boundsInLocal, boundsInParent, cacheHint, cache, clip, cursor, depthTest, disabled, disable, effectiveNodeOrientation, effect, eventDispatcher, focused, focusTraversable, focusVisible, focusWithin, hover, id, inputMethodRequests, layoutBounds, layoutX, layoutY, localToParentTransform, localToSceneTransform, managed, mouseTransparent, nodeOrientation, onContextMenuRequested, onDragDetected, onDragDone, onDragDropped, onDragEntered, onDragExited, onDragOver, onInputMethodTextChanged, onKeyPressed, onKeyReleased, onKeyTyped, onMouseClicked, onMouseDragEntered, onMouseDragExited, onMouseDragged, onMouseDragOver, onMouseDragReleased, onMouseEntered, onMouseExited, onMouseMoved, onMousePressed, onMouseReleased, onRotate, onRotationFinished, onRotationStarted, onScrollFinished, onScroll, onScrollStarted, onSwipeDown, onSwipeLeft, onSwipeRight, onSwipeUp, onTouchMoved, onTouchPressed, onTouchReleased, onTouchStationary, onZoomFinished, onZoom, onZoomStarted, opacity, parent, pickOnBounds, pressed, rotate, rotationAxis, scaleX, scaleY, scaleZ, scene, style, translateX, translateY, translateZ, viewOrder, visible`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected static final StyleHandlerRegistry`
  `styleHandlerRegistry`
  The style handler registry instance, made available for use by subclasses to add support for new style attributes.

  ### Fields declared in class javafx.scene.layout.Region

  `USE_COMPUTED_SIZE, USE_PREF_SIZE`

  ### Fields declared in class javafx.scene.Node

  `BASELINE_OFFSET_SAME_AS_HEIGHT`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `RichTextArea()`
  Creates the instance with the in-memory model `RichTextModel`.
  `RichTextArea(StyledTextModel model)`
  Creates the instance using the specified model.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `final ReadOnlyProperty<TextPos>`
  `anchorPositionProperty()`
  Tracks the selection anchor position within the document.
  `final TextPos`
  `appendText(String text)`
  Appends the styled text to the end of the document.
  `final TextPos`
  `appendText(String text, StyleAttributeMap attrs)`
  Appends the styled text to the end of the document.
  `final TextPos`
  `appendText(StyledInput in)`
  Appends the styled content to the end of the document.
  `void`
  `applyStyle(TextPos start, TextPos end, StyleAttributeMap attrs)`
  Applies the specified style to the selected range.
  `void`
  `backspace()`
  When selection exists, deletes selected text.
  `final ObjectProperty<Duration>`
  `caretBlinkPeriodProperty()`
  Determines the caret blink period.
  `final ReadOnlyProperty<TextPos>`
  `caretPositionProperty()`
  Tracks the caret position within the document.
  `final void`
  `clear()`
  Clears the document, creating an undo entry.
  `final void`
  `clearSelection()`
  Clears existing selection, if any.
  `final void`
  `clearUndoRedo()`
  Clears the undo-redo stack of the underlying model.
  `final ObjectProperty<Insets>`
  `contentPaddingProperty()`
  Specifies the padding for the RichTextArea content.
  `void`
  `copy()`
  When selection exists, copies the selected rich text to the clipboard in all the formats supported by the model.
  `final void`
  `copy(DataFormat format)`
  Copies the selected text in the specified format to the clipboard.
  `protected RichTextAreaSkin`
  `createDefaultSkin()`
  Create a new instance of the default skin for this control.
  `void`
  `cut()`
  Transfers the currently selected text to the clipboard, removing the current selection.
  `void`
  `delete()`
  When selection exists, deletes selected text.
  `void`
  `deleteParagraph()`
  When selection exists, deletes selected paragraphs.
  `void`
  `deleteParagraphStart()`
  Deletes text from the caret position to the start of the paragraph, ignoring existing selection.
  `void`
  `deleteWordNextEnd()`
  Deletes from the caret positon to the end of next word, ignoring existing selection.
  `void`
  `deleteWordNextStart()`
  Deletes from the caret positon to the start of next word, ignoring existing selection.
  `void`
  `deleteWordPrevious()`
  Deletes (multiple) empty paragraphs or text from the caret position to the start of the previous word, ignoring existing selection.
  `void`
  `deselect()`
  Clears the selected text range by moving anchor to the caret position.
  `final BooleanProperty`
  `displayCaretProperty()`
  This property controls whether caret will be displayed or not.
  `final BooleanProperty`
  `editableProperty()`
  Indicates whether this RichTextArea can be edited by the user, provided the model is also writable.
  `void`
  `errorFeedback()`
  Provides audio and/or visual error feedback.
  `final void`
  `execute(FunctionTag tag)`
  Executes a function mapped to the specified function tag.
  `final void`
  `executeDefault(FunctionTag tag)`
  Executes the default function mapped to the specified tag.
  `final void`
  `extendSelection(TextPos pos)`
  Extends selection to the specified position.
  `final StyleAttributeMap`
  `getActiveStyleAttributeMap()`
  Returns `StyleAttributeMap` which contains character and paragraph attributes.
  `final TextPos`
  `getAnchorPosition()`
  Gets the value of the `anchorPosition` property.
  `final Duration`
  `getCaretBlinkPeriod()`
  Gets the value of the `caretBlinkPeriod` property.
  `final TextPos`
  `getCaretPosition()`
  Gets the value of the `caretPosition` property.
  `static List<CssMetaData<? extends Styleable,?>>`
  `getClassCssMetaData()`
  Gets the `CssMetaData` associated with this class, which may include the `CssMetaData` of its superclasses.
  `final Insets`
  `getContentPadding()`
  Gets the value of the `contentPadding` property.
  `List<CssMetaData<? extends Styleable,?>>`
  `getControlCssMetaData()`
  Gets the unmodifiable list of the control's CSS-styleable properties.
  `final TextPos`
  `getDocumentEnd()`
  Returns a TextPos corresponding to the end of the document.
  `final InputMap`
  `getInputMap()`
  Returns the input map instance.
  `final SideDecorator`
  `getLeftDecorator()`
  Gets the value of the `leftDecorator` property.
  `final StyledTextModel`
  `getModel()`
  Gets the value of the `model` property.
  `final int`
  `getParagraphCount()`
  Returns the number of paragraphs in the model.
  `final TextPos`
  `getParagraphEnd(int index)`
  Returns a TextPos corresponding to the end of paragraph.
  `final String`
  `getPlainText(int index)`
  Returns the plain text at the specified paragraph index.
  `final SideDecorator`
  `getRightDecorator()`
  Gets the value of the `rightDecorator` property.
  `final SelectionSegment`
  `getSelection()`
  Gets the value of the `selection` property.
  `StyleHandlerRegistry`
  `getStyleHandlerRegistry()`
  Returns the style handler registry for this control.
  `final TextPos`
  `getTextPosition(double screenX, double screenY)`
  Finds a text position corresponding to the specified screen coordinates.
  `final boolean`
  `hasNonEmptySelection()`
  This convenience method returns true when a non-empty selection exists.
  `final BooleanProperty`
  `highlightCurrentParagraphProperty()`
  Indicates whether the current paragraph will be visually highlighted.
  `void`
  `insertLineBreak()`
  Inserts a line break at the caret.
  `void`
  `insertTab()`
  Inserts a tab symbol at the caret.
  `final TextPos`
  `insertText(TextPos pos, String text, StyleAttributeMap attrs)`
  Inserts the styled text at the specified position.
  `final TextPos`
  `insertText(TextPos pos, StyledInput in)`
  Inserts the styled content at the specified position.
  `final boolean`
  `isDisplayCaret()`
  Gets the value of the `displayCaret` property.
  `final boolean`
  `isEditable()`
  Gets the value of the `editable` property.
  `final boolean`
  `isHighlightCurrentParagraph()`
  Gets the value of the `highlightCurrentParagraph` property.
  `final boolean`
  `isRedoable()`
  Gets the value of the `redoable` property.
  `final boolean`
  `isUndoable()`
  Gets the value of the `undoable` property.
  `final boolean`
  `isUseContentHeight()`
  Gets the value of the `useContentHeight` property.
  `final boolean`
  `isUseContentWidth()`
  Gets the value of the `useContentWidth` property.
  `final boolean`
  `isWrapText()`
  Gets the value of the `wrapText` property.
  `final ObjectProperty<SideDecorator>`
  `leftDecoratorProperty()`
  Specifies the left-side paragraph decorator.
  `final ObjectProperty<StyledTextModel>`
  `modelProperty()`
  Determines the `StyledTextModel` to use with this RichTextArea.
  `void`
  `moveDocumentEnd()`
  Moves the caret to after the last character of the text, clearing an existing selection.
  `void`
  `moveDocumentStart()`
  Moves the caret to before the first character of the text, clearing an existing selection.
  `void`
  `moveDown()`
  Moves the caret one visual line down, clearing an existing selection.
  `void`
  `moveLeft()`
  Moves the caret left, clearing an existing selection range.
  `void`
  `moveLineEnd()`
  Moves the caret to the end of the visual text line at caret, clearing an existing selection.
  `void`
  `moveLineStart()`
  Moves the caret to the start of the visual text line at caret, clearing an existing selection.
  `void`
  `moveParagraphDown()`
  Moves the caret to the end of the current paragraph, or, if already there, to the end of the next paragraph.
  `void`
  `moveParagraphEnd()`
  Moves the caret to the end of the paragraph at caret, clearing an existing selection.
  `void`
  `moveParagraphStart()`
  Moves the caret to the start of the current paragraph, clearing an existing selection.
  `void`
  `moveParagraphUp()`
  Moves the caret to the start of the current paragraph, or, if already there, to the start of the previous paragraph.
  `void`
  `moveRight()`
  Moves the caret to the next symbol, clearing an existing selection.
  `void`
  `moveUp()`
  Moves the caret one visual line up, clearing an existing selection.
  `void`
  `moveWordLeft()`
  Moves the caret to the beginning of previous word in a left-to-right setting (or the beginning of the next word in a right-to-left setting), clearing an existing selection.
  `void`
  `moveWordNextEnd()`
  Moves the caret to the end of the next word, clearing an existing selection.
  `void`
  `moveWordNextStart()`
  Moves the caret to the start of next word, clearing an existing selection.
  `void`
  `moveWordPrevious()`
  Moves the caret to the beginning of previous word, clearing an existing selection.
  `void`
  `moveWordRight()`
  Moves the caret to the beginning of next word in a left-to-right setting (or the beginning of the previous word in a right-to-left setting), clearing an existing selection.
  `void`
  `pageDown()`
  Move caret one visual page down, clearing an existing selection.
  `void`
  `pageUp()`
  Move caret one visual page up, clearing an existing selection.
  `void`
  `paste()`
  Pastes the clipboard content at the caret, or, if selection exists, replacing the selected text.
  `void`
  `paste(DataFormat format)`
  Pastes the clipboard content at the caret, or, if selection exists, replacing the selected text.
  `final void`
  `pastePlainText()`
  Pastes the plain text clipboard content at the caret, or, if selection exists, replacing the selected text.
  `final void`
  `read(InputStream in)`
  Calls the model to replace the current document with the content read from the input stream.
  `final void`
  `read(DataFormat f, InputStream in)`
  Calls the model to replace the current document with the content read from the stream using the specified `DataFormat`.
  `void`
  `redo()`
  If possible, redoes the last undone modification.
  `final ReadOnlyBooleanProperty`
  `redoableProperty()`
  The property describes if it's currently possible to redo the latest change of the content that was undone.
  `final TextPos`
  `replaceText(TextPos start, TextPos end, String text, boolean allowUndo)`
  Replaces the specified range with the new text.
  `final TextPos`
  `replaceText(TextPos start, TextPos end, StyledInput in, boolean createUndo)`
  Replaces the specified range with the new input.
  `final ObjectProperty<SideDecorator>`
  `rightDecoratorProperty()`
  Specifies the right-side paragraph decorator.
  `final void`
  `select(TextPos pos)`
  Moves both the caret and the anchor to the specified position, clearing any existing selection.
  `final void`
  `select(TextPos anchor, TextPos caret)`
  Selects the specified range and places the caret at the new position.
  `void`
  `selectAll()`
  Selects all the text in the document: the anchor is set at the document start, while the caret is positioned at the end of the document.
  `void`
  `selectDown()`
  Extends selection one visual text line down.
  `final ReadOnlyProperty<SelectionSegment>`
  `selectionProperty()`
  Tracks the current selection.
  `void`
  `selectLeft()`
  Extends selection one symbol to the left.
  `void`
  `selectPageDown()`
  Extends selection one visible page down.
  `void`
  `selectPageUp()`
  Extends selection one visible page up.
  `void`
  `selectParagraph()`
  Selects the current paragraph.
  `void`
  `selectParagraphDown()`
  Extends selection to the end of the current paragraph, or, if already at the end, to the end of the next paragraph.
  `void`
  `selectParagraphEnd()`
  Selects from the current position to the paragraph end.
  `void`
  `selectParagraphStart()`
  Selects from the current position to the paragraph start.
  `void`
  `selectParagraphUp()`
  Extends selection to the start of the current paragraph, or, if already at the start, to the start of the previous paragraph.
  `void`
  `selectRight()`
  Extends selection one symbol (or grapheme cluster) to the right.
  `void`
  `selectToDocumentEnd()`
  Extends selection to the end of the document.
  `void`
  `selectToDocumentStart()`
  Extends selection to the start of the document.
  `void`
  `selectToLineEnd()`
  Extends selection to the end of the visual text line at caret.
  `void`
  `selectToLineStart()`
  Extends selection to the start of the visual text line at caret.
  `void`
  `selectUp()`
  Extends selection one visual text line up.
  `void`
  `selectWord()`
  Selects a word at the caret position.
  `void`
  `selectWordLeft()`
  Moves the caret to the beginning of previous word in a left-to-right setting, or to the beginning of the next word in a right-to-left setting.
  `void`
  `selectWordNextEnd()`
  Extends selection to the end of the next word.
  `void`
  `selectWordNextStart()`
  Moves the caret to the start of the next word.
  `void`
  `selectWordPrevious()`
  Moves the caret to the beginning of previous word.
  `void`
  `selectWordRight()`
  Moves the caret to the beginning of next word in a left-to-right setting, or to the beginning of the previous word in a right-to-left setting.
  `final void`
  `setCaretBlinkPeriod(Duration period)`
  Sets the value of the `caretBlinkPeriod` property.
  `final void`
  `setContentPadding(Insets value)`
  Sets the value of the `contentPadding` property.
  `final void`
  `setDisplayCaret(boolean on)`
  Sets the value of the `displayCaret` property.
  `final void`
  `setEditable(boolean on)`
  Sets the value of the `editable` property.
  `final void`
  `setHighlightCurrentParagraph(boolean on)`
  Sets the value of the `highlightCurrentParagraph` property.
  `final void`
  `setLeftDecorator(SideDecorator d)`
  Sets the value of the `leftDecorator` property.
  `final void`
  `setModel(StyledTextModel m)`
  Sets the value of the `model` property.
  `final void`
  `setRightDecorator(SideDecorator d)`
  Sets the value of the `rightDecorator` property.
  `final void`
  `setStyle(TextPos start, TextPos end, StyleAttributeMap attrs)`
  Sets the specified style to the selected range.
  `final void`
  `setUseContentHeight(boolean on)`
  Sets the value of the `useContentHeight` property.
  `final void`
  `setUseContentWidth(boolean on)`
  Sets the value of the `useContentWidth` property.
  `final void`
  `setWrapText(boolean value)`
  Sets the value of the `wrapText` property.
  `void`
  `undo()`
  If possible, undoes the last modification.
  `final ReadOnlyBooleanProperty`
  `undoableProperty()`
  The property describes if it's currently possible to undo the latest change of the content that was done.
  `final BooleanProperty`
  `useContentHeightProperty()`
  Determines whether the preferred height is the same as the content height.
  `final BooleanProperty`
  `useContentWidthProperty()`
  Determines whether the preferred width is the same as the content width.
  `protected void`
  `validateModel(StyledTextModel m)`
  Validates the model property value.
  `final BooleanProperty`
  `wrapTextProperty()`
  Indicates whether text should be wrapped in this RichTextArea.
  `final void`
  `write(OutputStream out)`
  Calls the model to write the current document to the output stream, using the highest priority `DataFormat` as determined by the model.
  `final void`
  `write(DataFormat f, OutputStream out)`
  Calls the model to writes the current document to the output stream using the specified `DataFormat`.

  ### Methods declared in class javafx.scene.control.Control

  `computeMaxHeight, computeMaxWidth, computeMinHeight, computeMinWidth, contextMenuProperty, getContextMenu, getCssMetaData, getInitialFocusTraversable, getSkin, getTooltip, isResizable, setContextMenu, setSkin, setTooltip, skinProperty, tooltipProperty`

  ### Methods declared in class javafx.scene.layout.Region

  `backgroundProperty, borderProperty, cacheShapeProperty, centerShapeProperty, computePrefHeight, computePrefWidth, getBackground, getBorder, getHeight, getInsets, getMaxHeight, getMaxWidth, getMinHeight, getMinWidth, getOpaqueInsets, getPadding, getPrefHeight, getPrefWidth, getShape, getUserAgentStylesheet, getWidth, heightProperty, insetsProperty, isCacheShape, isCenterShape, isScaleShape, isSnapToPixel, layoutInArea, layoutInArea, layoutInArea, layoutInArea, maxHeight, maxHeightProperty, maxWidth, maxWidthProperty, minHeight, minHeightProperty, minWidth, minWidthProperty, opaqueInsetsProperty, paddingProperty, positionInArea, positionInArea, prefHeight, prefHeightProperty, prefWidth, prefWidthProperty, resize, scaleShapeProperty, setBackground, setBorder, setCacheShape, setCenterShape, setHeight, setMaxHeight, setMaxSize, setMaxWidth, setMinHeight, setMinSize, setMinWidth, setOpaqueInsets, setPadding, setPrefHeight, setPrefSize, setPrefWidth, setScaleShape, setShape, setSnapToPixel, setWidth, shapeProperty, snappedBottomInset, snappedLeftInset, snappedRightInset, snappedTopInset, snapPosition, snapPositionX, snapPositionY, snapSize, snapSizeX, snapSizeY, snapSpace, snapSpaceX, snapSpaceY, snapToPixelProperty, widthProperty`

  ### Methods declared in class javafx.scene.Parent

  `getBaselineOffset, getChildren, getChildrenUnmodifiable, getManagedChildren, getStylesheets, isNeedsLayout, layout, layoutChildren, needsLayoutProperty, requestLayout, requestParentLayout, setNeedsLayout, updateBounds`

  ### Methods declared in class javafx.scene.Node

  `accessibleHelpProperty, accessibleRoleDescriptionProperty, accessibleRoleProperty, accessibleTextProperty, addEventFilter, addEventHandler, applyCss, autosize, blendModeProperty, boundsInLocalProperty, boundsInParentProperty, buildEventDispatchChain, cacheHintProperty, cacheProperty, clipProperty, computeAreaInScreen, contains, contains, cursorProperty, depthTestProperty, disabledProperty, disableProperty, effectiveNodeOrientationProperty, effectProperty, eventDispatcherProperty, executeAccessibleAction, fireEvent, focusedProperty, focusTraversableProperty, focusVisibleProperty, focusWithinProperty, getAccessibleHelp, getAccessibleRole, getAccessibleRoleDescription, getAccessibleText, getBlendMode, getBoundsInLocal, getBoundsInParent, getCacheHint, getClip, getContentBias, getCursor, getDepthTest, getEffect, getEffectiveNodeOrientation, getEventDispatcher, getId, getInitialCursor, getInputMethodRequests, getLayoutBounds, getLayoutX, getLayoutY, getLocalToParentTransform, getLocalToSceneTransform, getNodeOrientation, getOnContextMenuRequested, getOnDragDetected, getOnDragDone, getOnDragDropped, getOnDragEntered, getOnDragExited, getOnDragOver, getOnInputMethodTextChanged, getOnKeyPressed, getOnKeyReleased, getOnKeyTyped, getOnMouseClicked, getOnMouseDragEntered, getOnMouseDragExited, getOnMouseDragged, getOnMouseDragOver, getOnMouseDragReleased, getOnMouseEntered, getOnMouseExited, getOnMouseMoved, getOnMousePressed, getOnMouseReleased, getOnRotate, getOnRotationFinished, getOnRotationStarted, getOnScroll, getOnScrollFinished, getOnScrollStarted, getOnSwipeDown, getOnSwipeLeft, getOnSwipeRight, getOnSwipeUp, getOnTouchMoved, getOnTouchPressed, getOnTouchReleased, getOnTouchStationary, getOnZoom, getOnZoomFinished, getOnZoomStarted, getOpacity, getParent, getProperties, getPseudoClassStates, getRotate, getRotationAxis, getScaleX, getScaleY, getScaleZ, getScene, getStyle, getStyleableParent, getStyleClass, getTransforms, getTranslateX, getTranslateY, getTranslateZ, getTypeSelector, getUserData, getViewOrder, hasProperties, hoverProperty, idProperty, inputMethodRequestsProperty, intersects, intersects, isCache, isDisable, isDisabled, isFocused, isFocusTraversable, isFocusVisible, isFocusWithin, isHover, isManaged, isMouseTransparent, isPickOnBounds, isPressed, isVisible, layoutBoundsProperty, layoutXProperty, layoutYProperty, localToParent, localToParent, localToParent, localToParent, localToParent, localToParentTransformProperty, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToSceneTransformProperty, localToScreen, localToScreen, localToScreen, localToScreen, localToScreen, lookup, lookupAll, managedProperty, mouseTransparentProperty, nodeOrientationProperty, notifyAccessibleAttributeChanged, onContextMenuRequestedProperty, onDragDetectedProperty, onDragDoneProperty, onDragDroppedProperty, onDragEnteredProperty, onDragExitedProperty, onDragOverProperty, onInputMethodTextChangedProperty, onKeyPressedProperty, onKeyReleasedProperty, onKeyTypedProperty, onMouseClickedProperty, onMouseDragEnteredProperty, onMouseDragExitedProperty, onMouseDraggedProperty, onMouseDragOverProperty, onMouseDragReleasedProperty, onMouseEnteredProperty, onMouseExitedProperty, onMouseMovedProperty, onMousePressedProperty, onMouseReleasedProperty, onRotateProperty, onRotationFinishedProperty, onRotationStartedProperty, onScrollFinishedProperty, onScrollProperty, onScrollStartedProperty, onSwipeDownProperty, onSwipeLeftProperty, onSwipeRightProperty, onSwipeUpProperty, onTouchMovedProperty, onTouchPressedProperty, onTouchReleasedProperty, onTouchStationaryProperty, onZoomFinishedProperty, onZoomProperty, onZoomStartedProperty, opacityProperty, parentProperty, parentToLocal, parentToLocal, parentToLocal, parentToLocal, parentToLocal, pickOnBoundsProperty, pressedProperty, pseudoClassStateChanged, queryAccessibleAttribute, relocate, removeEventFilter, removeEventHandler, requestFocus, requestFocusTraversal, resizeRelocate, rotateProperty, rotationAxisProperty, scaleXProperty, scaleYProperty, scaleZProperty, sceneProperty, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, screenToLocal, screenToLocal, screenToLocal, setAccessibleHelp, setAccessibleRole, setAccessibleRoleDescription, setAccessibleText, setBlendMode, setCache, setCacheHint, setClip, setCursor, setDepthTest, setDisable, setDisabled, setEffect, setEventDispatcher, setEventHandler, setFocused, setFocusTraversable, setHover, setId, setInputMethodRequests, setLayoutX, setLayoutY, setManaged, setMouseTransparent, setNodeOrientation, setOnContextMenuRequested, setOnDragDetected, setOnDragDone, setOnDragDropped, setOnDragEntered, setOnDragExited, setOnDragOver, setOnInputMethodTextChanged, setOnKeyPressed, setOnKeyReleased, setOnKeyTyped, setOnMouseClicked, setOnMouseDragEntered, setOnMouseDragExited, setOnMouseDragged, setOnMouseDragOver, setOnMouseDragReleased, setOnMouseEntered, setOnMouseExited, setOnMouseMoved, setOnMousePressed, setOnMouseReleased, setOnRotate, setOnRotationFinished, setOnRotationStarted, setOnScroll, setOnScrollFinished, setOnScrollStarted, setOnSwipeDown, setOnSwipeLeft, setOnSwipeRight, setOnSwipeUp, setOnTouchMoved, setOnTouchPressed, setOnTouchReleased, setOnTouchStationary, setOnZoom, setOnZoomFinished, setOnZoomStarted, setOpacity, setPickOnBounds, setPressed, setRotate, setRotationAxis, setScaleX, setScaleY, setScaleZ, setStyle, setTranslateX, setTranslateY, setTranslateZ, setUserData, setViewOrder, setVisible, snapshot, snapshot, startDragAndDrop, startFullDrag, styleProperty, toBack, toFront, toString, translateXProperty, translateYProperty, translateZProperty, usesMirroring, viewOrderProperty, visibleProperty`

  ### Methods declared in class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

  ### Methods declared in interface javafx.css.Styleable

  `getStyleableNode`

- ## Property Details

  - ### anchorPosition

    public final ReadOnlyProperty<TextPos> anchorPositionProperty
    Tracks the selection anchor position within the document. This read-only property is derived from `selection` property. The value can be null.

    Setting a `SelectionSegment` causes an update to both the anchor and the caret positions. A null selection segment results in both positions to become null, a non-null selection segment sets both to non-null values.

    Note: `selectionProperty()`, `anchorPositionProperty()`, and `caretPositionProperty()` are logically connected. When a change occurs, the anchor position is updated first, followed by the caret position, followed by the selection segment.

    Default value:
      null
    See Also:
      - `getAnchorPosition()`
      - `anchorPositionProperty()`

  - ### caretBlinkPeriod

    public final ObjectProperty<Duration> caretBlinkPeriodProperty
    Determines the caret blink period. This property cannot be set to `null`.

    This property can be styled with CSS using `-fx-caret-blink-period` name.

    Default value:
      1000 ms
    See Also:
      - `getCaretBlinkPeriod()`
      - `setCaretBlinkPeriod(Duration)`
      - `caretBlinkPeriodProperty()`

  - ### caretPosition

    public final ReadOnlyProperty<TextPos> caretPositionProperty
    Tracks the caret position within the document. This read-only property is derived from `selection` property. The value can be null.

    Setting a `SelectionSegment` causes an update to both the anchor and the caret positions. A null selection segment results in both positions to become null, a non-null selection segment sets both to non-null values.

    Note: `selectionProperty()`, `anchorPositionProperty()`, and `caretPositionProperty()` are logically connected. When a change occurs, the anchor position is updated first, followed by the caret position, followed by the selection segment.

    Default value:
      null
    See Also:
      - `getCaretPosition()`
      - `caretPositionProperty()`

  - ### contentPadding

    public final ObjectProperty<Insets> contentPaddingProperty
    Specifies the padding for the RichTextArea content. The content padding value can be null, which is treated as no padding.

    This property can be styled with CSS using `-fx-content-padding` name.

    Default value:
      null
    See Also:
      - `getContentPadding()`
      - `setContentPadding(Insets)`
      - `contentPaddingProperty()`

  - ### displayCaret

    public final BooleanProperty displayCaretProperty
    This property controls whether caret will be displayed or not.

    This property can be styled with CSS using `-fx-display-caret` name.

    Default value:
      true
    See Also:
      - `isDisplayCaret()`
      - `setDisplayCaret(boolean)`
      - `displayCaretProperty()`

  - ### editable

    public final BooleanProperty editableProperty
    Indicates whether this RichTextArea can be edited by the user, provided the model is also writable. Changing the value of this property with a view-only model or a null model has no effect.
    Default value:
      true
    See Also:
      - `isEditable()`
      - `setEditable(boolean)`
      - `editableProperty()`

  - ### highlightCurrentParagraph

    public final BooleanProperty highlightCurrentParagraphProperty
    Indicates whether the current paragraph will be visually highlighted.

    This property can be styled with CSS using `-fx-highlight-current-paragraph` name.

    Default value:
      false
    See Also:
      - `isHighlightCurrentParagraph()`
      - `setHighlightCurrentParagraph(boolean)`
      - `highlightCurrentParagraphProperty()`

  - ### leftDecorator

    public final ObjectProperty<SideDecorator> leftDecoratorProperty
    Specifies the left-side paragraph decorator. The value can be null.
    Default value:
      null
    See Also:
      - `getLeftDecorator()`
      - `setLeftDecorator(SideDecorator)`
      - `leftDecoratorProperty()`

  - ### model

    public final ObjectProperty<StyledTextModel> modelProperty
    Determines the `StyledTextModel` to use with this RichTextArea. The model can be null, which results in an empty, uneditable control.

    Note: Subclasses may impose additional restrictions on the type of the model they require.

    Default value:
      an instance of `RichTextModel`
    See Also:
      - `getModel()`
      - `setModel(StyledTextModel)`
      - `modelProperty()`

  - ### redoable

    public final ReadOnlyBooleanProperty redoableProperty
    The property describes if it's currently possible to redo the latest change of the content that was undone.
    Default value:
      false
    See Also:
      - `isRedoable()`
      - `redoableProperty()`

  - ### rightDecorator

    public final ObjectProperty<SideDecorator> rightDecoratorProperty
    Specifies the right-side paragraph decorator. The value can be null.
    Default value:
      null
    See Also:
      - `getRightDecorator()`
      - `setRightDecorator(SideDecorator)`
      - `rightDecoratorProperty()`

  - ### selection

    public final ReadOnlyProperty<SelectionSegment> selectionProperty
    Tracks the current selection. The `SelectionSegment` consists of two values - the caret and the anchor positions which may get changed independently. This property allows for tracking the selection as an single entity. A null value for the selection segment causes both the caret and the anchor positions to become null.

    Note: `selectionProperty()`, `anchorPositionProperty()`, and `caretPositionProperty()` are logically connected. When a change occurs, the anchor position is updated first, followed by the caret position, followed by the selection segment.

    Default value:
      null
    See Also:
      - `getSelection()`
      - `selectionProperty()`

  - ### undoable

    public final ReadOnlyBooleanProperty undoableProperty
    The property describes if it's currently possible to undo the latest change of the content that was done.
    Default value:
      false
    See Also:
      - `isUndoable()`
      - `undoableProperty()`

  - ### useContentHeight

    public final BooleanProperty useContentHeightProperty
    Determines whether the preferred height is the same as the content height. When set to true, the vertical scroll bar is disabled.

    This property can be styled with CSS using `-fx-use-content-height` name.

    Default value:
      false
    See Also:
      - `isUseContentHeight()`
      - `setUseContentHeight(boolean)`
      - `useContentHeightProperty()`

  - ### useContentWidth

    public final BooleanProperty useContentWidthProperty
    Determines whether the preferred width is the same as the content width. When set to true, the horizontal scroll bar is disabled.

    This property can be styled with CSS using `-fx-use-content-width` name.

    Default value:
      false
    See Also:
      - `isUseContentWidth()`
      - `setUseContentWidth(boolean)`
      - `useContentWidthProperty()`

  - ### wrapText

    public final BooleanProperty wrapTextProperty
    Indicates whether text should be wrapped in this RichTextArea. If a run of text exceeds the width of the `RichTextArea`, then this variable indicates whether the text should wrap onto another line. Setting this property to `true` hides the horizontal scroll bar.

    This property can be styled with CSS using `-fx-wrap-text` name.

    Default value:
      false
    See Also:
      - `isWrapText()`
      - `setWrapText(boolean)`
      - `wrapTextProperty()`

- ## Field Details

  - ### styleHandlerRegistry

    protected static final StyleHandlerRegistry styleHandlerRegistry
    The style handler registry instance, made available for use by subclasses to add support for new style attributes.

- ## Constructor Details

  - ### RichTextArea

    public RichTextArea()
    Creates the instance with the in-memory model `RichTextModel`.

  - ### RichTextArea

    public RichTextArea(StyledTextModel model)
    Creates the instance using the specified model.

    Multiple RichTextArea instances can work off a single model.

    Parameters:
      `model` - the model

- ## Method Details

  - ### anchorPositionProperty

    public final ReadOnlyProperty<TextPos> anchorPositionProperty()
    Tracks the selection anchor position within the document. This read-only property is derived from `selection` property. The value can be null.

    Setting a `SelectionSegment` causes an update to both the anchor and the caret positions. A null selection segment results in both positions to become null, a non-null selection segment sets both to non-null values.

    Note: `selectionProperty()`, `anchorPositionProperty()`, and `caretPositionProperty()` are logically connected. When a change occurs, the anchor position is updated first, followed by the caret position, followed by the selection segment.

    Default value:
      null
    Returns:
      the anchor position property
    See Also:
      - `getAnchorPosition()`

  - ### getAnchorPosition

    public final TextPos getAnchorPosition()
    Gets the value of the `anchorPosition` property.
    Property description:
      Tracks the selection anchor position within the document. This read-only property is derived from `selection` property. The value can be null.

      Setting a `SelectionSegment` causes an update to both the anchor and the caret positions. A null selection segment results in both positions to become null, a non-null selection segment sets both to non-null values.

      Note: `selectionProperty()`, `anchorPositionProperty()`, and `caretPositionProperty()` are logically connected. When a change occurs, the anchor position is updated first, followed by the caret position, followed by the selection segment.

    Default value:
      null
    Returns:
      the value of the `anchorPosition` property
    See Also:
      - `anchorPositionProperty()`

  - ### caretBlinkPeriodProperty

    public final ObjectProperty<Duration> caretBlinkPeriodProperty()
    Determines the caret blink period. This property cannot be set to `null`.

    This property can be styled with CSS using `-fx-caret-blink-period` name.

    Default value:
      1000 ms
    Returns:
      the caret blink period property
    See Also:
      - `getCaretBlinkPeriod()`
      - `setCaretBlinkPeriod(Duration)`

  - ### setCaretBlinkPeriod

    public final void setCaretBlinkPeriod(Duration period)
    Sets the value of the `caretBlinkPeriod` property.
    Property description:
      Determines the caret blink period. This property cannot be set to `null`.

      This property can be styled with CSS using `-fx-caret-blink-period` name.

    Default value:
      1000 ms
    Parameters:
      `period` - the value for the `caretBlinkPeriod` property
    See Also:
      - `getCaretBlinkPeriod()`
      - `caretBlinkPeriodProperty()`

  - ### getCaretBlinkPeriod

    public final Duration getCaretBlinkPeriod()
    Gets the value of the `caretBlinkPeriod` property.
    Property description:
      Determines the caret blink period. This property cannot be set to `null`.

      This property can be styled with CSS using `-fx-caret-blink-period` name.

    Default value:
      1000 ms
    Returns:
      the value of the `caretBlinkPeriod` property
    See Also:
      - `setCaretBlinkPeriod(Duration)`
      - `caretBlinkPeriodProperty()`

  - ### caretPositionProperty

    public final ReadOnlyProperty<TextPos> caretPositionProperty()
    Tracks the caret position within the document. This read-only property is derived from `selection` property. The value can be null.

    Setting a `SelectionSegment` causes an update to both the anchor and the caret positions. A null selection segment results in both positions to become null, a non-null selection segment sets both to non-null values.

    Note: `selectionProperty()`, `anchorPositionProperty()`, and `caretPositionProperty()` are logically connected. When a change occurs, the anchor position is updated first, followed by the caret position, followed by the selection segment.

    Default value:
      null
    Returns:
      the caret position property
    See Also:
      - `getCaretPosition()`

  - ### getCaretPosition

    public final TextPos getCaretPosition()
    Gets the value of the `caretPosition` property.
    Property description:
      Tracks the caret position within the document. This read-only property is derived from `selection` property. The value can be null.

      Setting a `SelectionSegment` causes an update to both the anchor and the caret positions. A null selection segment results in both positions to become null, a non-null selection segment sets both to non-null values.

      Note: `selectionProperty()`, `anchorPositionProperty()`, and `caretPositionProperty()` are logically connected. When a change occurs, the anchor position is updated first, followed by the caret position, followed by the selection segment.

    Default value:
      null
    Returns:
      the value of the `caretPosition` property
    See Also:
      - `caretPositionProperty()`

  - ### contentPaddingProperty

    public final ObjectProperty<Insets> contentPaddingProperty()
    Specifies the padding for the RichTextArea content. The content padding value can be null, which is treated as no padding.

    This property can be styled with CSS using `-fx-content-padding` name.

    Default value:
      null
    Returns:
      the content padding property
    See Also:
      - `getContentPadding()`
      - `setContentPadding(Insets)`

  - ### setContentPadding

    public final void setContentPadding(Insets value)
    Sets the value of the `contentPadding` property.
    Property description:
      Specifies the padding for the RichTextArea content. The content padding value can be null, which is treated as no padding.

      This property can be styled with CSS using `-fx-content-padding` name.

    Default value:
      null
    Parameters:
      `value` - the value for the `contentPadding` property
    See Also:
      - `getContentPadding()`
      - `contentPaddingProperty()`

  - ### getContentPadding

    public final Insets getContentPadding()
    Gets the value of the `contentPadding` property.
    Property description:
      Specifies the padding for the RichTextArea content. The content padding value can be null, which is treated as no padding.

      This property can be styled with CSS using `-fx-content-padding` name.

    Default value:
      null
    Returns:
      the value of the `contentPadding` property
    See Also:
      - `setContentPadding(Insets)`
      - `contentPaddingProperty()`

  - ### displayCaretProperty

    public final BooleanProperty displayCaretProperty()
    This property controls whether caret will be displayed or not.

    This property can be styled with CSS using `-fx-display-caret` name.

    Default value:
      true
    Returns:
      the display caret property
    See Also:
      - `isDisplayCaret()`
      - `setDisplayCaret(boolean)`

  - ### setDisplayCaret

    public final void setDisplayCaret(boolean on)
    Sets the value of the `displayCaret` property.
    Property description:
      This property controls whether caret will be displayed or not.

      This property can be styled with CSS using `-fx-display-caret` name.

    Default value:
      true
    Parameters:
      `on` - the value for the `displayCaret` property
    See Also:
      - `isDisplayCaret()`
      - `displayCaretProperty()`

  - ### isDisplayCaret

    public final boolean isDisplayCaret()
    Gets the value of the `displayCaret` property.
    Property description:
      This property controls whether caret will be displayed or not.

      This property can be styled with CSS using `-fx-display-caret` name.

    Default value:
      true
    Returns:
      the value of the `displayCaret` property
    See Also:
      - `setDisplayCaret(boolean)`
      - `displayCaretProperty()`

  - ### editableProperty

    public final BooleanProperty editableProperty()
    Indicates whether this RichTextArea can be edited by the user, provided the model is also writable. Changing the value of this property with a view-only model or a null model has no effect.
    Default value:
      true
    Returns:
      the editable property
    See Also:
      - `isEditable()`
      - `setEditable(boolean)`

  - ### isEditable

    public final boolean isEditable()
    Gets the value of the `editable` property.
    Property description:
      Indicates whether this RichTextArea can be edited by the user, provided the model is also writable. Changing the value of this property with a view-only model or a null model has no effect.
    Default value:
      true
    Returns:
      the value of the `editable` property
    See Also:
      - `setEditable(boolean)`
      - `editableProperty()`

  - ### setEditable

    public final void setEditable(boolean on)
    Sets the value of the `editable` property.
    Property description:
      Indicates whether this RichTextArea can be edited by the user, provided the model is also writable. Changing the value of this property with a view-only model or a null model has no effect.
    Default value:
      true
    Parameters:
      `on` - the value for the `editable` property
    See Also:
      - `isEditable()`
      - `editableProperty()`

  - ### highlightCurrentParagraphProperty

    public final BooleanProperty highlightCurrentParagraphProperty()
    Indicates whether the current paragraph will be visually highlighted.

    This property can be styled with CSS using `-fx-highlight-current-paragraph` name.

    Default value:
      false
    Returns:
      the highlight current paragraph property
    See Also:
      - `isHighlightCurrentParagraph()`
      - `setHighlightCurrentParagraph(boolean)`

  - ### isHighlightCurrentParagraph

    public final boolean isHighlightCurrentParagraph()
    Gets the value of the `highlightCurrentParagraph` property.
    Property description:
      Indicates whether the current paragraph will be visually highlighted.

      This property can be styled with CSS using `-fx-highlight-current-paragraph` name.

    Default value:
      false
    Returns:
      the value of the `highlightCurrentParagraph` property
    See Also:
      - `setHighlightCurrentParagraph(boolean)`
      - `highlightCurrentParagraphProperty()`

  - ### setHighlightCurrentParagraph

    public final void setHighlightCurrentParagraph(boolean on)
    Sets the value of the `highlightCurrentParagraph` property.
    Property description:
      Indicates whether the current paragraph will be visually highlighted.

      This property can be styled with CSS using `-fx-highlight-current-paragraph` name.

    Default value:
      false
    Parameters:
      `on` - the value for the `highlightCurrentParagraph` property
    See Also:
      - `isHighlightCurrentParagraph()`
      - `highlightCurrentParagraphProperty()`

  - ### leftDecoratorProperty

    public final ObjectProperty<SideDecorator> leftDecoratorProperty()
    Specifies the left-side paragraph decorator. The value can be null.
    Default value:
      null
    Returns:
      the left decorator property
    See Also:
      - `getLeftDecorator()`
      - `setLeftDecorator(SideDecorator)`

  - ### getLeftDecorator

    public final SideDecorator getLeftDecorator()
    Gets the value of the `leftDecorator` property.
    Property description:
      Specifies the left-side paragraph decorator. The value can be null.
    Default value:
      null
    Returns:
      the value of the `leftDecorator` property
    See Also:
      - `setLeftDecorator(SideDecorator)`
      - `leftDecoratorProperty()`

  - ### setLeftDecorator

    public final void setLeftDecorator(SideDecorator d)
    Sets the value of the `leftDecorator` property.
    Property description:
      Specifies the left-side paragraph decorator. The value can be null.
    Default value:
      null
    Parameters:
      `d` - the value for the `leftDecorator` property
    See Also:
      - `getLeftDecorator()`
      - `leftDecoratorProperty()`

  - ### modelProperty

    public final ObjectProperty<StyledTextModel> modelProperty()
    Determines the `StyledTextModel` to use with this RichTextArea. The model can be null, which results in an empty, uneditable control.

    Note: Subclasses may impose additional restrictions on the type of the model they require.

    Default value:
      an instance of `RichTextModel`
    Returns:
      the model property
    See Also:
      - `getModel()`
      - `setModel(StyledTextModel)`

  - ### setModel

    public final void setModel(StyledTextModel m)
    Sets the value of the `model` property.
    Property description:
      Determines the `StyledTextModel` to use with this RichTextArea. The model can be null, which results in an empty, uneditable control.

      Note: Subclasses may impose additional restrictions on the type of the model they require.

    Default value:
      an instance of `RichTextModel`
    Parameters:
      `m` - the value for the `model` property
    See Also:
      - `getModel()`
      - `modelProperty()`

  - ### getModel

    public final StyledTextModel getModel()
    Gets the value of the `model` property.
    Property description:
      Determines the `StyledTextModel` to use with this RichTextArea. The model can be null, which results in an empty, uneditable control.

      Note: Subclasses may impose additional restrictions on the type of the model they require.

    Default value:
      an instance of `RichTextModel`
    Returns:
      the value of the `model` property
    See Also:
      - `setModel(StyledTextModel)`
      - `modelProperty()`

  - ### validateModel

    protected void validateModel(StyledTextModel m)
    Validates the model property value. The subclass should override this method if it restricts the type of model that is supported, and throw an `IllegalArgumentException` if the model is not supported. A `null` value should always be acceptable and never generate an exception.
    Parameters:
      `m` - the model (can be null)

  - ### redoableProperty

    public final ReadOnlyBooleanProperty redoableProperty()
    The property describes if it's currently possible to redo the latest change of the content that was undone.
    Default value:
      false
    Returns:
      the read-only property
    See Also:
      - `isRedoable()`

  - ### isRedoable

    public final boolean isRedoable()
    Gets the value of the `redoable` property.
    Property description:
      The property describes if it's currently possible to redo the latest change of the content that was undone.
    Default value:
      false
    Returns:
      the value of the `redoable` property
    See Also:
      - `redoableProperty()`

  - ### rightDecoratorProperty

    public final ObjectProperty<SideDecorator> rightDecoratorProperty()
    Specifies the right-side paragraph decorator. The value can be null.
    Default value:
      null
    Returns:
      the right decorator property
    See Also:
      - `getRightDecorator()`
      - `setRightDecorator(SideDecorator)`

  - ### getRightDecorator

    public final SideDecorator getRightDecorator()
    Gets the value of the `rightDecorator` property.
    Property description:
      Specifies the right-side paragraph decorator. The value can be null.
    Default value:
      null
    Returns:
      the value of the `rightDecorator` property
    See Also:
      - `setRightDecorator(SideDecorator)`
      - `rightDecoratorProperty()`

  - ### setRightDecorator

    public final void setRightDecorator(SideDecorator d)
    Sets the value of the `rightDecorator` property.
    Property description:
      Specifies the right-side paragraph decorator. The value can be null.
    Default value:
      null
    Parameters:
      `d` - the value for the `rightDecorator` property
    See Also:
      - `getRightDecorator()`
      - `rightDecoratorProperty()`

  - ### selectionProperty

    public final ReadOnlyProperty<SelectionSegment> selectionProperty()
    Tracks the current selection. The `SelectionSegment` consists of two values - the caret and the anchor positions which may get changed independently. This property allows for tracking the selection as an single entity. A null value for the selection segment causes both the caret and the anchor positions to become null.

    Note: `selectionProperty()`, `anchorPositionProperty()`, and `caretPositionProperty()` are logically connected. When a change occurs, the anchor position is updated first, followed by the caret position, followed by the selection segment.

    Default value:
      null
    Returns:
      the selection property
    See Also:
      - `getSelection()`

  - ### getSelection

    public final SelectionSegment getSelection()
    Gets the value of the `selection` property.
    Property description:
      Tracks the current selection. The `SelectionSegment` consists of two values - the caret and the anchor positions which may get changed independently. This property allows for tracking the selection as an single entity. A null value for the selection segment causes both the caret and the anchor positions to become null.

      Note: `selectionProperty()`, `anchorPositionProperty()`, and `caretPositionProperty()` are logically connected. When a change occurs, the anchor position is updated first, followed by the caret position, followed by the selection segment.

    Default value:
      null
    Returns:
      the value of the `selection` property
    See Also:
      - `selectionProperty()`

  - ### undoableProperty

    public final ReadOnlyBooleanProperty undoableProperty()
    The property describes if it's currently possible to undo the latest change of the content that was done.
    Default value:
      false
    Returns:
      the read-only property
    See Also:
      - `isUndoable()`

  - ### isUndoable

    public final boolean isUndoable()
    Gets the value of the `undoable` property.
    Property description:
      The property describes if it's currently possible to undo the latest change of the content that was done.
    Default value:
      false
    Returns:
      the value of the `undoable` property
    See Also:
      - `undoableProperty()`

  - ### useContentHeightProperty

    public final BooleanProperty useContentHeightProperty()
    Determines whether the preferred height is the same as the content height. When set to true, the vertical scroll bar is disabled.

    This property can be styled with CSS using `-fx-use-content-height` name.

    Default value:
      false
    Returns:
      the use content height property
    See Also:
      - `isUseContentHeight()`
      - `setUseContentHeight(boolean)`

  - ### isUseContentHeight

    public final boolean isUseContentHeight()
    Gets the value of the `useContentHeight` property.
    Property description:
      Determines whether the preferred height is the same as the content height. When set to true, the vertical scroll bar is disabled.

      This property can be styled with CSS using `-fx-use-content-height` name.

    Default value:
      false
    Returns:
      the value of the `useContentHeight` property
    See Also:
      - `setUseContentHeight(boolean)`
      - `useContentHeightProperty()`

  - ### setUseContentHeight

    public final void setUseContentHeight(boolean on)
    Sets the value of the `useContentHeight` property.
    Property description:
      Determines whether the preferred height is the same as the content height. When set to true, the vertical scroll bar is disabled.

      This property can be styled with CSS using `-fx-use-content-height` name.

    Default value:
      false
    Parameters:
      `on` - the value for the `useContentHeight` property
    See Also:
      - `isUseContentHeight()`
      - `useContentHeightProperty()`

  - ### useContentWidthProperty

    public final BooleanProperty useContentWidthProperty()
    Determines whether the preferred width is the same as the content width. When set to true, the horizontal scroll bar is disabled.

    This property can be styled with CSS using `-fx-use-content-width` name.

    Default value:
      false
    Returns:
      the use content width property
    See Also:
      - `isUseContentWidth()`
      - `setUseContentWidth(boolean)`

  - ### isUseContentWidth

    public final boolean isUseContentWidth()
    Gets the value of the `useContentWidth` property.
    Property description:
      Determines whether the preferred width is the same as the content width. When set to true, the horizontal scroll bar is disabled.

      This property can be styled with CSS using `-fx-use-content-width` name.

    Default value:
      false
    Returns:
      the value of the `useContentWidth` property
    See Also:
      - `setUseContentWidth(boolean)`
      - `useContentWidthProperty()`

  - ### setUseContentWidth

    public final void setUseContentWidth(boolean on)
    Sets the value of the `useContentWidth` property.
    Property description:
      Determines whether the preferred width is the same as the content width. When set to true, the horizontal scroll bar is disabled.

      This property can be styled with CSS using `-fx-use-content-width` name.

    Default value:
      false
    Parameters:
      `on` - the value for the `useContentWidth` property
    See Also:
      - `isUseContentWidth()`
      - `useContentWidthProperty()`

  - ### wrapTextProperty

    public final BooleanProperty wrapTextProperty()
    Indicates whether text should be wrapped in this RichTextArea. If a run of text exceeds the width of the `RichTextArea`, then this variable indicates whether the text should wrap onto another line. Setting this property to `true` hides the horizontal scroll bar.

    This property can be styled with CSS using `-fx-wrap-text` name.

    Default value:
      false
    Returns:
      the wrap text property
    See Also:
      - `isWrapText()`
      - `setWrapText(boolean)`

  - ### isWrapText

    public final boolean isWrapText()
    Gets the value of the `wrapText` property.
    Property description:
      Indicates whether text should be wrapped in this RichTextArea. If a run of text exceeds the width of the `RichTextArea`, then this variable indicates whether the text should wrap onto another line. Setting this property to `true` hides the horizontal scroll bar.

      This property can be styled with CSS using `-fx-wrap-text` name.

    Default value:
      false
    Returns:
      the value of the `wrapText` property
    See Also:
      - `setWrapText(boolean)`
      - `wrapTextProperty()`

  - ### setWrapText

    public final void setWrapText(boolean value)
    Sets the value of the `wrapText` property.
    Property description:
      Indicates whether text should be wrapped in this RichTextArea. If a run of text exceeds the width of the `RichTextArea`, then this variable indicates whether the text should wrap onto another line. Setting this property to `true` hides the horizontal scroll bar.

      This property can be styled with CSS using `-fx-wrap-text` name.

    Default value:
      false
    Parameters:
      `value` - the value for the `wrapText` property
    See Also:
      - `isWrapText()`
      - `wrapTextProperty()`

  - ### getClassCssMetaData

    public static List<CssMetaData<? extends Styleable,?>> getClassCssMetaData()
    Gets the `CssMetaData` associated with this class, which may include the `CssMetaData` of its superclasses.
    Returns:
      the `CssMetaData`

  - ### getControlCssMetaData

    public List<CssMetaData<? extends Styleable,?>> getControlCssMetaData()
    Description copied from class: `Control`
    Gets the unmodifiable list of the control's CSS-styleable properties.
    Overrides:
      `getControlCssMetaData` in class `Control`
    Returns:
      the unmodifiable list of the control's CSS-styleable properties

  - ### appendText

    public final TextPos appendText(String text, StyleAttributeMap attrs)
    Appends the styled text to the end of the document. Any embedded `"\n"` or `"\r\n"` sequences result in a new paragraph being added.

    It is up to the model to decide whether to accept all, some, or none of the `StyleAttribute`s.

    Parameters:
      `text` - the text to append
      `attrs` - the style attributes
    Returns:
      the text position at the end of the appended text, or null if editing is disabled
    Throws:
      `NullPointerException` - if the model is `null`
      `UnsupportedOperationException` - if the model is not `writable`

  - ### appendText

    public final TextPos appendText(String text)
    Appends the styled text to the end of the document. Any embedded `"\n"` or `"\r\n"` sequences result in a new paragraph being added.

    This convenience method is equivalent to calling `appendText(text, StyleAttributeMap.EMPTY);`

    Parameters:
      `text` - the text to append
    Returns:
      the text position at the end of the appended text, or null if editing is disabled
    Throws:
      `NullPointerException` - if the model is `null`
      `UnsupportedOperationException` - if the model is not `writable`

  - ### appendText

    public final TextPos appendText(StyledInput in)
    Appends the styled content to the end of the document. Any embedded `"\n"` or `"\r\n"` sequences result in a new paragraph being added.
    Parameters:
      `in` - the input stream
    Returns:
      the text position at the end of the appended text, or null if editing is disabled
    Throws:
      `NullPointerException` - if the model is `null`
      `UnsupportedOperationException` - if the model is not `writable`

  - ### applyStyle

    public void applyStyle(TextPos start, TextPos end, StyleAttributeMap attrs)
    Applies the specified style to the selected range. The specified attributes will be merged, overriding the existing ones. When applying paragraph attributes, the affected range might extend beyond `start` and `end` to include whole paragraphs.
    Parameters:
      `start` - the start of text range
      `end` - the end of text range
      `attrs` - the style attributes to apply
    Throws:
      `NullPointerException` - if the model is `null`
      `UnsupportedOperationException` - if the model is not `writable`

  - ### backspace

    public void backspace()
    When selection exists, deletes selected text. Otherwise, deletes the character preceding the caret, possibly breaking up the grapheme clusters.

    This method does nothing if the control is not editable or the model is not writable, or the model or the caret position is `null`.

    This action can be changed by remapping the default behavior via `InputMap`.

    See Also:
      - `RichTextArea.Tag.BACKSPACE`

  - ### clear

    public final void clear()
    Clears the document, creating an undo entry.
    Throws:
      `NullPointerException` - if the model is `null`
      `UnsupportedOperationException` - if the model is not `writable`

  - ### clearSelection

    public final void clearSelection()
    Clears existing selection, if any. This method is an alias for `getSelectionModel().clear()`.

  - ### clearUndoRedo

    public final void clearUndoRedo()
    Clears the undo-redo stack of the underlying model. This method does nothing if the model is `null`.

  - ### copy

    public void copy()
    When selection exists, copies the selected rich text to the clipboard in all the formats supported by the model.

    This method does nothing if the model or the caret position is `null`.

    This action can be changed by remapping the default behavior via `InputMap`.

    See Also:
      - `RichTextArea.Tag.COPY`

  - ### copy

    public final void copy(DataFormat format)
    Copies the selected text in the specified format to the clipboard. This method does nothing if no selection exists or when the data format is not supported by the model.
    Parameters:
      `format` - the data format to use

  - ### cut

    public void cut()
    Transfers the currently selected text to the clipboard, removing the current selection.

    This method does nothing if the control is not editable or the model is not writable, or the model or the caret position is `null`.

    This action can be changed by remapping the default behavior via `InputMap`.

    See Also:
      - `RichTextArea.Tag.CUT`

  - ### delete

    public void delete()
    When selection exists, deletes selected text. Otherwise, deletes the symbol at the caret. When the symbol at the caret is a grapheme cluster, deletes the whole cluster.

    This method does nothing if the control is not editable or the model is not writable, or the model or the caret position is `null`.

    This action can be changed by remapping the default behavior via `InputMap`.

    See Also:
      - `RichTextArea.Tag.DELETE`

  - ### deleteParagraph

    public void deleteParagraph()
    When selection exists, deletes selected paragraphs. Otherwise, deletes the paragraph at the caret.

    This method does nothing if the control is not editable or the model is not writable, or the model or the caret position is `null`.

    This action can be changed by remapping the default behavior via `InputMap`.

    See Also:
      - `RichTextArea.Tag.DELETE_PARAGRAPH`

  - ### deleteParagraphStart

    public void deleteParagraphStart()
    Deletes text from the caret position to the start of the paragraph, ignoring existing selection.

    This method does nothing if the control is not editable or the model is not writable, or the model or the caret position is `null`.

    This action can be changed by remapping the default behavior via `InputMap`.

    See Also:
      - `RichTextArea.Tag.DELETE_PARAGRAPH_START`

  - ### deleteWordNextEnd

    public void deleteWordNextEnd()
    Deletes from the caret positon to the end of next word, ignoring existing selection. When the caret is in an empty paragraph, deletes the paragraph.

    This method does nothing if the control is not editable or the model is not writable, or the model or the caret position is `null`.

    This action can be changed by remapping the default behavior via `InputMap`.

    See Also:
      - `RichTextArea.Tag.DELETE_WORD_NEXT_END`

  - ### deleteWordNextStart

    public void deleteWordNextStart()
    Deletes from the caret positon to the start of next word, ignoring existing selection. When the caret is in an empty paragraph, deletes the paragraph.

    This method does nothing if the control is not editable or the model is not writable, or the model or the caret position is `null`.

    This action can be changed by remapping the default behavior via `InputMap`.

    See Also:
      - `RichTextArea.Tag.DELETE_WORD_NEXT_START`

  - ### deleteWordPrevious

    public void deleteWordPrevious()
    Deletes (multiple) empty paragraphs or text from the caret position to the start of the previous word, ignoring existing selection.

    This method does nothing if the control is not editable or the model is not writable, or the model or the caret position is `null`.

    This action can be changed by remapping the default behavior via `InputMap`.

    See Also:
      - `RichTextArea.Tag.DELETE_WORD_PREVIOUS`

  - ### deselect

    public void deselect()
    Clears the selected text range by moving anchor to the caret position.

    This action can be changed by remapping the default behavior via `InputMap`.

    See Also:
      - `RichTextArea.Tag.DESELECT`

  - ### errorFeedback

    public void errorFeedback()
    Provides audio and/or visual error feedback. The default implementation does nothing. This action can be changed by remapping the default behavior via `InputMap`.
    See Also:
      - `RichTextArea.Tag.ERROR_FEEDBACK`

  - ### execute

    public final void execute(FunctionTag tag)
    Executes a function mapped to the specified function tag. This method does nothing if no function is mapped to the tag, or the function has been unbound.
    Parameters:
      `tag` - the function tag

  - ### executeDefault

    public final void executeDefault(FunctionTag tag)
    Executes the default function mapped to the specified tag. This method does nothing if no default mapping exists.
    Parameters:
      `tag` - the function tag

  - ### extendSelection

    public final void extendSelection(TextPos pos)
    Extends selection to the specified position. Internally, this method will normalized the position to be within the document boundaries. Calling this method produces the same result as `select(pos, pos)` if no prior selection exists. This method does nothing if the model is null.
    Parameters:
      `pos` - the text position

  - ### getActiveStyleAttributeMap

    public final StyleAttributeMap getActiveStyleAttributeMap()
    Returns `StyleAttributeMap` which contains character and paragraph attributes.

    When selection exists, returns the attributes at the first selected character.

    When no selection exists, returns the attributes at the character which immediately precedes the caret. When at the beginning of the document, returns the attributes of the first character. If the model uses CSS styles, this method resolves individual attributes (bold, font size, etc.) for this instance of `RichTextArea`.

    Returns:
      the non-null `StyleAttributeMap` instance

  - ### getDocumentEnd

    public final TextPos getDocumentEnd()
    Returns a TextPos corresponding to the end of the document. When the model is null, returns `TextPos.ZERO`.
    Returns:
      the text position

  - ### getInputMap

    public final InputMap getInputMap()
    Returns the input map instance.
    Returns:
      the input map instance

  - ### getParagraphCount

    public final int getParagraphCount()
    Returns the number of paragraphs in the model. This method returns 0 if the model is `null`.
    Returns:
      the paragraph count

  - ### getParagraphEnd

    public final TextPos getParagraphEnd(int index)
    Returns a TextPos corresponding to the end of paragraph. When the model is null, returns `TextPos.ZERO`.
    Parameters:
      `index` - paragraph index
    Returns:
      text position

  - ### getPlainText

    public final String getPlainText(int index)
    Returns the plain text at the specified paragraph index. The value of `index` must be between 0 (inclusive) and the value returned by `getParagraphCount()` (exclusive).
    Parameters:
      `index` - the paragraph index
    Returns:
      the non-null plain text string
    Throws:
      `IndexOutOfBoundsException` - if the index is outside of the range supported by the model

  - ### getStyleHandlerRegistry

    public StyleHandlerRegistry getStyleHandlerRegistry()
    Returns the style handler registry for this control. Applications should not normally call this method as it is intended for use by the skin subclasses.
    Returns:
      the style handler registry

  - ### getTextPosition

    public final TextPos getTextPosition(double screenX, double screenY)
    Finds a text position corresponding to the specified screen coordinates. This method returns `null` if the specified coordinates are outside of the content area.
    Parameters:
      `screenX` - the screen x coordinate
      `screenY` - the screen y coordinate
    Returns:
      the text position, or null

  - ### hasNonEmptySelection

    public final boolean hasNonEmptySelection()
    This convenience method returns true when a non-empty selection exists.
    Returns:
      true when an non-empty selection exists

  - ### insertLineBreak

    public void insertLineBreak()
    Inserts a line break at the caret. If selection exists, first deletes the selected text.

    This method does nothing if the control is not editable or the model is not writable, or the model or the caret position is `null`.

    This action can be changed by remapping the default behavior via `InputMap`.

    See Also:
      - `RichTextArea.Tag.INSERT_LINE_BREAK`

  - ### insertTab

    public void insertTab()
    Inserts a tab symbol at the caret. If selection exists, first deletes the selected text.

    This method does nothing if the control is not editable or the model is not writable, or the model or the caret position is `null`.

    This action can be changed by remapping the default behavior via `InputMap`.

    See Also:
      - `RichTextArea.Tag.INSERT_TAB`

  - ### insertText

    public final TextPos insertText(TextPos pos, String text, StyleAttributeMap attrs)
    Inserts the styled text at the specified position. Any embedded `"\n"` or `"\r\n"` sequences result in a new paragraph being added.
    Parameters:
      `pos` - the insert position
      `text` - the text to inser
      `attrs` - the style attributes
    Returns:
      the text position at the end of the appended text, or null if editing is disabled
    Throws:
      `NullPointerException` - if the model is `null`
      `UnsupportedOperationException` - if the model is not `writable`

  - ### insertText

    public final TextPos insertText(TextPos pos, StyledInput in)
    Inserts the styled content at the specified position.
    Parameters:
      `pos` - the insert position
      `in` - the input stream
    Returns:
      the text position at the end of the appended text, or null if editing is disabled
    Throws:
      `NullPointerException` - if the model is `null`
      `UnsupportedOperationException` - if the model is not `writable`

  - ### moveDocumentEnd

    public void moveDocumentEnd()
    Moves the caret to after the last character of the text, clearing an existing selection.

    This action can be changed by remapping the default behavior via `InputMap`.

    See Also:
      - `RichTextArea.Tag.MOVE_TO_DOCUMENT_END`

  - ### moveDocumentStart

    public void moveDocumentStart()
    Moves the caret to before the first character of the text, clearing an existing selection.

    This action can be changed by remapping the default behavior via `InputMap`.

    See Also:
      - `RichTextArea.Tag.MOVE_TO_DOCUMENT_START`

  - ### moveDown

    public void moveDown()
    Moves the caret one visual line down, clearing an existing selection.

    This method does nothing when the caret position is `null`.

    This action can be changed by remapping the default behavior via `InputMap`.

    See Also:
      - `RichTextArea.Tag.MOVE_DOWN`

  - ### moveLeft

    public void moveLeft()
    Moves the caret left, clearing an existing selection range.

    This method does nothing when the caret position is `null`.

    This action can be changed by remapping the default behavior via `InputMap`.

    See Also:
      - `RichTextArea.Tag.MOVE_LEFT`

  - ### moveLineEnd

    public void moveLineEnd()
    Moves the caret to the end of the visual text line at caret, clearing an existing selection.

    This method does nothing when the caret position is `null`.

    This action can be changed by remapping the default behavior via `InputMap`.

    See Also:
      - `RichTextArea.Tag.MOVE_TO_LINE_END`

  - ### moveLineStart

    public void moveLineStart()
    Moves the caret to the start of the visual text line at caret, clearing an existing selection.

    This method does nothing when the caret position is `null`.

    This action can be changed by remapping the default behavior via `InputMap`.

    See Also:
      - `RichTextArea.Tag.MOVE_TO_LINE_START`

  - ### moveParagraphDown

    public void moveParagraphDown()
    Moves the caret to the end of the current paragraph, or, if already there, to the end of the next paragraph.

    This method does nothing when the caret position is `null`.

    This action can be changed by remapping the default behavior via `InputMap`.

    See Also:
      - `RichTextArea.Tag.MOVE_PARAGRAPH_DOWN`

  - ### moveParagraphEnd

    public void moveParagraphEnd()
    Moves the caret to the end of the paragraph at caret, clearing an existing selection.

    This method does nothing when the caret position is `null`.

    This action can be changed by remapping the default behavior via `InputMap`.

    See Also:
      - `RichTextArea.Tag.MOVE_TO_PARAGRAPH_END`

  - ### moveParagraphStart

    public void moveParagraphStart()
    Moves the caret to the start of the current paragraph, clearing an existing selection.

    This method does nothing when the caret position is `null`.

    This action can be changed by remapping the default behavior via `InputMap`.

    See Also:
      - `RichTextArea.Tag.MOVE_TO_PARAGRAPH_START`

  - ### moveParagraphUp

    public void moveParagraphUp()
    Moves the caret to the start of the current paragraph, or, if already there, to the start of the previous paragraph.

    This method does nothing when the caret position is `null`.

    This action can be changed by remapping the default behavior via `InputMap`.

    See Also:
      - `RichTextArea.Tag.MOVE_PARAGRAPH_UP`

  - ### moveRight

    public void moveRight()
    Moves the caret to the next symbol, clearing an existing selection.

    This method does nothing when the caret position is `null`.

    This action can be changed by remapping the default behavior via `InputMap`.

    See Also:
      - `RichTextArea.Tag.MOVE_RIGHT`

  - ### moveUp

    public void moveUp()
    Moves the caret one visual line up, clearing an existing selection.

    This method does nothing when the caret position is `null`.

    This action can be changed by remapping the default behavior via `InputMap`.

    See Also:
      - `RichTextArea.Tag.MOVE_UP`

  - ### moveWordLeft

    public void moveWordLeft()
    Moves the caret to the beginning of previous word in a left-to-right setting (or the beginning of the next word in a right-to-left setting), clearing an existing selection.

    This method does nothing when the caret position is `null`.

    This action can be changed by remapping the default behavior via `InputMap`.

    See Also:
      - `RichTextArea.Tag.MOVE_WORD_LEFT`

  - ### moveWordNextEnd

    public void moveWordNextEnd()
    Moves the caret to the end of the next word, clearing an existing selection.

    This method does nothing when the caret position is `null`.

    This action can be changed by remapping the default behavior via `InputMap`.

    See Also:
      - `RichTextArea.Tag.MOVE_WORD_NEXT_END`

  - ### moveWordNextStart

    public void moveWordNextStart()
    Moves the caret to the start of next word, clearing an existing selection.

    This method does nothing when the caret position is `null`.

    This action can be changed by remapping the default behavior via `InputMap`.

    See Also:
      - `RichTextArea.Tag.MOVE_WORD_NEXT_START`

  - ### moveWordPrevious

    public void moveWordPrevious()
    Moves the caret to the beginning of previous word, clearing an existing selection.

    This method does nothing when the caret position is `null`.

    This action can be changed by remapping the default behavior via `InputMap`.

    See Also:
      - `RichTextArea.Tag.MOVE_WORD_PREVIOUS`

  - ### moveWordRight

    public void moveWordRight()
    Moves the caret to the beginning of next word in a left-to-right setting (or the beginning of the previous word in a right-to-left setting), clearing an existing selection.

    This method does nothing when the caret position is `null`.

    This action can be changed by remapping the default behavior via `InputMap`.

    See Also:
      - `RichTextArea.Tag.MOVE_WORD_RIGHT`

  - ### pageDown

    public void pageDown()
    Move caret one visual page down, clearing an existing selection.

    This method does nothing when the caret position is `null`.

    This action can be changed by remapping the default behavior via `InputMap`.

    See Also:
      - `RichTextArea.Tag.PAGE_DOWN`

  - ### pageUp

    public void pageUp()
    Move caret one visual page up, clearing an existing selection.

    This method does nothing when the caret position is `null`.

    This action can be changed by remapping the default behavior via `InputMap`.

    See Also:
      - `RichTextArea.Tag.PAGE_UP`

  - ### paste

    public void paste()
    Pastes the clipboard content at the caret, or, if selection exists, replacing the selected text. This method clears the selection afterward. It is up to the model to pick the best data format to paste.

    This method does nothing if the control is not editable or the model is not writable, or the model or the caret position is `null`.

    This action can be changed by remapping the default behavior via `InputMap`.

    See Also:
      - `RichTextArea.Tag.PASTE`

  - ### paste

    public void paste(DataFormat format)
    Pastes the clipboard content at the caret, or, if selection exists, replacing the selected text.

    This method does nothing if the control is not editable or the model is not writable, or the model is `null`, or if the specified format is not supported by the model.

    Parameters:
      `format` - the data format to use

  - ### pastePlainText

    public final void pastePlainText()
    Pastes the plain text clipboard content at the caret, or, if selection exists, replacing the selected text.

    This method does nothing if the control is not editable or the model is not writable, or the model or the caret position is `null`.

    This action can be changed by remapping the default behavior via `InputMap`.

    See Also:
      - `RichTextArea.Tag.PASTE_PLAIN_TEXT`

  - ### read

    public final void read(DataFormat f, InputStream in) throws IOException
    Calls the model to replace the current document with the content read from the stream using the specified `DataFormat`. Any existing content is discarded and undo/redo buffer is cleared.

    This method does not close the input stream. This method does nothing if the model is `null`.

    Parameters:
      `f` - the data format
      `in` - the input stream
    Throws:
      `IOException` - if an I/O error occurs
      `UnsupportedOperationException` - when the data format is not supported by the model

  - ### read

    public final void read(InputStream in) throws IOException
    Calls the model to replace the current document with the content read from the input stream. The model picks the best `DataFormat` to use based on priority. Any existing content is discarded and undo/redo buffer is cleared.

    This method does not close the input stream. This method does nothing if the model is `null`.

    Parameters:
      `in` - the input stream
    Throws:
      `IOException` - if an I/O error occurs
      `UnsupportedOperationException` - when the data format is not supported by the model

  - ### redo

    public void redo()
    If possible, redoes the last undone modification. If `isRedoable()` returns false, then calling this method has no effect.

    This action can be changed by remapping the default behavior via `InputMap`.

    See Also:
      - `RichTextArea.Tag.REDO`

  - ### replaceText

    public final TextPos replaceText(TextPos start, TextPos end, String text, boolean allowUndo)
    Replaces the specified range with the new text.
    Parameters:
      `start` - the start text position
      `end` - the end text position
      `text` - the input text
      `allowUndo` - when true, creates an undo-redo entry
    Returns:
      the new caret position at the end of inserted text, or null if the change cannot be made
    Throws:
      `NullPointerException` - if the model is `null`
      `UnsupportedOperationException` - if the model is not `writable`

  - ### replaceText

    public final TextPos replaceText(TextPos start, TextPos end, StyledInput in, boolean createUndo)
    Replaces the specified range with the new input.
    Parameters:
      `start` - the start text position
      `end` - the end text position
      `in` - the input stream
      `createUndo` - when true, creates an undo-redo entry
    Returns:
      the new caret position at the end of inserted text, or null if the change cannot be made
    Throws:
      `NullPointerException` - if the model is `null`
      `UnsupportedOperationException` - if the model is not `writable`

  - ### select

    public final void select(TextPos pos)
    Moves both the caret and the anchor to the specified position, clearing any existing selection. This method is equivalent to `select(pos, pos)`.
    Parameters:
      `pos` - the text position

  - ### select

    public final void select(TextPos anchor, TextPos caret)
    Selects the specified range and places the caret at the new position. Both positions will be internally clamped to be within the document boundaries. This method does nothing if the model is null.
    Parameters:
      `anchor` - the new selection anchor position
      `caret` - the new caret position

  - ### selectAll

    public void selectAll()
    Selects all the text in the document: the anchor is set at the document start, while the caret is positioned at the end of the document.

    This action can be changed by remapping the default behavior via `InputMap`.

    See Also:
      - `RichTextArea.Tag.SELECT_ALL`

  - ### selectDown

    public void selectDown()
    Extends selection one visual text line down.

    This method does nothing when the caret position is `null`.

    This action can be changed by remapping the default behavior via `InputMap`.

    See Also:
      - `RichTextArea.Tag.SELECT_DOWN`

  - ### selectLeft

    public void selectLeft()
    Extends selection one symbol to the left.

    This method does nothing when the caret position is `null`.

    This action can be changed by remapping the default behavior via `InputMap`.

    See Also:
      - `RichTextArea.Tag.SELECT_LEFT`

  - ### selectPageDown

    public void selectPageDown()
    Extends selection one visible page down.

    This method does nothing when the caret position is `null`.

    This action can be changed by remapping the default behavior via `InputMap`.

    See Also:
      - `RichTextArea.Tag.SELECT_PAGE_DOWN`

  - ### selectPageUp

    public void selectPageUp()
    Extends selection one visible page up.

    This method does nothing when the caret position is `null`.

    This action can be changed by remapping the default behavior via `InputMap`.

    See Also:
      - `RichTextArea.Tag.SELECT_PAGE_UP`

  - ### selectParagraph

    public void selectParagraph()
    Selects the current paragraph.

    This method does nothing when the caret position is `null`.

    This action can be changed by remapping the default behavior via `InputMap`.

    See Also:
      - `RichTextArea.Tag.SELECT_PARAGRAPH`

  - ### selectParagraphDown

    public void selectParagraphDown()
    Extends selection to the end of the current paragraph, or, if already at the end, to the end of the next paragraph.

    This method does nothing when the caret position is `null`.

    This action can be changed by remapping the default behavior via `InputMap`.

    See Also:
      - `RichTextArea.Tag.SELECT_PARAGRAPH_DOWN`

  - ### selectParagraphEnd

    public void selectParagraphEnd()
    Selects from the current position to the paragraph end.

    This method does nothing when the caret position is `null`.

    This action can be changed by remapping the default behavior via `InputMap`.

    See Also:
      - `RichTextArea.Tag.SELECT_PARAGRAPH_END`

  - ### selectParagraphStart

    public void selectParagraphStart()
    Selects from the current position to the paragraph start.

    This method does nothing when the caret position is `null`.

    This action can be changed by remapping the default behavior via `InputMap`.

    See Also:
      - `RichTextArea.Tag.SELECT_PARAGRAPH_START`

  - ### selectParagraphUp

    public void selectParagraphUp()
    Extends selection to the start of the current paragraph, or, if already at the start, to the start of the previous paragraph.

    This method does nothing when the caret position is `null`.

    This action can be changed by remapping the default behavior via `InputMap`.

    See Also:
      - `RichTextArea.Tag.SELECT_PARAGRAPH_UP`

  - ### selectRight

    public void selectRight()
    Extends selection one symbol (or grapheme cluster) to the right.

    This method does nothing when the caret position is `null`.

    This action can be changed by remapping the default behavior via `InputMap`.

    See Also:
      - `RichTextArea.Tag.SELECT_RIGHT`

  - ### selectToDocumentEnd

    public void selectToDocumentEnd()
    Extends selection to the end of the document.

    This method does nothing when the caret position is `null`.

    This action can be changed by remapping the default behavior via `InputMap`.

    See Also:
      - `RichTextArea.Tag.SELECT_TO_DOCUMENT_END`

  - ### selectToDocumentStart

    public void selectToDocumentStart()
    Extends selection to the start of the document.

    This action can be changed by remapping the default behavior via `InputMap`.

    See Also:
      - `RichTextArea.Tag.SELECT_TO_DOCUMENT_START`

  - ### selectToLineEnd

    public void selectToLineEnd()
    Extends selection to the end of the visual text line at caret.

    This method does nothing when the caret position is `null`.

    This action can be changed by remapping the default behavior via `InputMap`.

    See Also:
      - `RichTextArea.Tag.SELECT_TO_LINE_END`

  - ### selectToLineStart

    public void selectToLineStart()
    Extends selection to the start of the visual text line at caret.

    This action can be changed by remapping the default behavior via `InputMap`.

    See Also:
      - `RichTextArea.Tag.SELECT_TO_LINE_START`

  - ### selectUp

    public void selectUp()
    Extends selection one visual text line up.

    This method does nothing when the caret position is `null`.

    This action can be changed by remapping the default behavior via `InputMap`.

    See Also:
      - `RichTextArea.Tag.SELECT_UP`

  - ### selectWord

    public void selectWord()
    Selects a word at the caret position.

    This method does nothing when the caret position is `null`.

    This action can be changed by remapping the default behavior via `InputMap`.

    See Also:
      - `RichTextArea.Tag.SELECT_WORD`

  - ### selectWordLeft

    public void selectWordLeft()
    Moves the caret to the beginning of previous word in a left-to-right setting, or to the beginning of the next word in a right-to-left setting. This does not cause the selection to be cleared. Rather, the anchor stays put and the caretPosition is moved to the beginning of next word.

    This method does nothing when the caret position is `null`.

    This action can be changed by remapping the default behavior via `InputMap`.

    See Also:
      - `RichTextArea.Tag.SELECT_WORD_LEFT`

  - ### selectWordNextEnd

    public void selectWordNextEnd()
    Extends selection to the end of the next word.

    This method does nothing when the caret position is `null`.

    This action can be changed by remapping the default behavior via `InputMap`.

    See Also:
      - `RichTextArea.Tag.SELECT_WORD_NEXT_END`

  - ### selectWordNextStart

    public void selectWordNextStart()
    Moves the caret to the start of the next word. This does not cause the selection to be cleared. Rather, the anchor stays put and the caretPosition is moved to the beginning of next word.

    This method does nothing when the caret position is `null`.

    This action can be changed by remapping the default behavior via `InputMap`.

    See Also:
      - `RichTextArea.Tag.SELECT_WORD_NEXT`

  - ### selectWordPrevious

    public void selectWordPrevious()
    Moves the caret to the beginning of previous word. This does not cause the selection to be cleared. Rather, the anchor stays put and the caretPosition is moved to the beginning of previous word.

    This method does nothing when the caret position is `null`.

    This action can be changed by remapping the default behavior via `InputMap`.

    See Also:
      - `RichTextArea.Tag.SELECT_WORD_PREVIOUS`

  - ### selectWordRight

    public void selectWordRight()
    Moves the caret to the beginning of next word in a left-to-right setting, or to the beginning of the previous word in a right-to-left setting. This does not cause the selection to be cleared. Rather, the anchor stays put and the caretPosition is moved to the beginning of next word.

    This method does nothing when the caret position is `null`.

    This action can be changed by remapping the default behavior via `InputMap`.

    See Also:
      - `RichTextArea.Tag.SELECT_WORD_RIGHT`

  - ### setStyle

    public final void setStyle(TextPos start, TextPos end, StyleAttributeMap attrs)
    Sets the specified style to the selected range. All the existing attributes in the selected range will be cleared. When setting the paragraph attributes, the affected range might be wider than one specified.
    Parameters:
      `start` - the start of text range
      `end` - the end of text range
      `attrs` - the style attributes to set
    Throws:
      `NullPointerException` - if the model is `null`
      `UnsupportedOperationException` - if the model is not `writable`

  - ### undo

    public void undo()
    If possible, undoes the last modification. If `isUndoable()` returns false, then calling this method has no effect.

    This method does nothing if the control is not editable or the model is not writable, or the model or the caret position is `null`. This action can be changed by remapping the default behavior via `InputMap`.

    See Also:
      - `RichTextArea.Tag.UNDO`

  - ### write

    public final void write(DataFormat f, OutputStream out) throws IOException
    Calls the model to writes the current document to the output stream using the specified `DataFormat`.

    This method does not close the output stream. This method does nothing if the model is `null`.

    Parameters:
      `f` - the data format
      `out` - the output stream
    Throws:
      `IOException` - if an I/O error occurs
      `UnsupportedOperationException` - when the data format is not supported by the model

  - ### write

    public final void write(OutputStream out) throws IOException
    Calls the model to write the current document to the output stream, using the highest priority `DataFormat` as determined by the model.

    This method does not close the output stream. This method does nothing if the model is `null`.

    Parameters:
      `out` - the output stream
    Throws:
      `IOException` - if an I/O error occurs
      `UnsupportedOperationException` - when no suitable data format can be found

  - ### createDefaultSkin

    protected RichTextAreaSkin createDefaultSkin()
    Description copied from class: `Control`
    Create a new instance of the default skin for this control. This is called to create a skin for the control if no skin is provided via CSS `-fx-skin` or set explicitly in a sub-class with `setSkin(...)`.
    Overrides:
      `createDefaultSkin` in class `Control`
    Returns:
      new instance of default skin for this control. If null then the control will have no skin unless one is provided by css.