Class SyntaxHighlightingCodeArea
- java.lang.Object
-
- javafx.scene.Node
-
- javafx.scene.Parent
-
- javafx.scene.layout.Region
-
- org.fxmisc.richtext.GenericStyledArea<PS,java.lang.String,S>
-
- org.fxmisc.richtext.StyledTextArea<java.util.Collection<java.lang.String>,java.util.Collection<java.lang.String>>
-
- org.fxmisc.richtext.StyleClassedTextArea
-
- org.fxmisc.richtext.CodeArea
-
- net.sourceforge.pmd.util.fxdesigner.util.codearea.SyntaxHighlightingCodeArea
-
- All Implemented Interfaces:
javafx.css.Styleable
,javafx.event.EventTarget
,org.fxmisc.flowless.Virtualized
,org.fxmisc.richtext.ClipboardActions<java.util.Collection<java.lang.String>,java.lang.String,java.util.Collection<java.lang.String>>
,org.fxmisc.richtext.EditActions<java.util.Collection<java.lang.String>,java.lang.String,java.util.Collection<java.lang.String>>
,org.fxmisc.richtext.model.TwoDimensional
,org.fxmisc.richtext.NavigationActions<java.util.Collection<java.lang.String>,java.lang.String,java.util.Collection<java.lang.String>>
,org.fxmisc.richtext.StyleActions<java.util.Collection<java.lang.String>,java.util.Collection<java.lang.String>>
,org.fxmisc.richtext.TextEditingArea<java.util.Collection<java.lang.String>,java.lang.String,java.util.Collection<java.lang.String>>
,org.fxmisc.richtext.UndoActions
,org.fxmisc.richtext.ViewActions<java.util.Collection<java.lang.String>,java.lang.String,java.util.Collection<java.lang.String>>
- Direct Known Subclasses:
HighlightLayerCodeArea
public class SyntaxHighlightingCodeArea extends org.fxmisc.richtext.CodeArea
Code area that can handle syntax highlighting. Syntax highlighting is performed asynchronously by another thread. It can be enabled by providing aSyntaxHighlighter
tosetSyntaxHighlighter(SyntaxHighlighter)
, and disabled by passing anull
reference to that method.- Since:
- 6.0.0
- Author:
- Clément Fournier
- See Also:
AvailableSyntaxHighlighters
-
-
Field Summary
Fields Modifier and Type Field Description protected org.reactfx.value.Val<org.fxmisc.richtext.model.StyleSpans<java.util.Collection<java.lang.String>>>
syntaxHighlight
Read-only view on the current highlighting spans.
-
Constructor Summary
Constructors Constructor Description SyntaxHighlightingCodeArea()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected static java.util.Collection<java.lang.String>
additiveOverlay(java.util.Collection<java.lang.String> style1, java.util.Collection<java.lang.String> style2)
Overlay operation that stacks up the style classes of the two overlaid spans.protected void
clearSyntaxHighlighting()
Removes the current syntax highlighting span.protected org.fxmisc.richtext.model.StyleSpans<java.util.Collection<java.lang.String>>
emptySpan()
void
setSyntaxHighlighter(SyntaxHighlighter highlighter)
Enables syntax highlighting if disabled and sets it to use the given highlighter.protected org.fxmisc.richtext.model.StyleSpans<java.util.Collection<java.lang.String>>
styleSyntaxHighlightChange(java.util.Optional<org.fxmisc.richtext.model.StyleSpans<java.util.Collection<java.lang.String>>> oldSyntax, org.fxmisc.richtext.model.StyleSpans<java.util.Collection<java.lang.String>> newSyntax)
Given the old value of the highlighting spans, and a newly computed value, computes the spans as they should be applied to the codearea.org.reactfx.value.Val<java.lang.Boolean>
syntaxHighlightingEnabledProperty()
protected void
updateSyntaxHighlightingSynchronously()
Forces synchronous updating of the syntax highlighting.TextAwareNodeWrapper
wrapNode(net.sourceforge.pmd.lang.ast.Node node)
Wraps a node into a convenience layer that can for example provide the rich text associated with it.-
Methods inherited from interface org.fxmisc.richtext.EditActions
append, appendText, clear, deleteNextChar, deletePreviousChar, deleteText, deleteText, deleteText, insert, insert, insertText, insertText, moveSelectedText, replace, replaceSelection, replaceSelection, replaceText
-
Methods inherited from class org.fxmisc.richtext.GenericStyledArea
addCaret, addSelection, allParToVisibleParIndex, autoScrollOnDragDesiredProperty, beingUpdatedProperty, contextMenuObjectProperty, contextMenuXOffsetProperty, contextMenuYOffsetProperty, createMultiChange, createMultiChange, displaceCaret, dispose, editableProperty, estimatedScrollXProperty, estimatedScrollYProperty, getAbsolutePosition, getApplyParagraphStyle, getCaretBoundsOnScreen, getCaretSelectionBind, getCharacterBoundsOnScreen, getClassCssMetaData, getContent, getContextMenu, getContextMenuXOffset, getContextMenuYOffset, getCssMetaData, getDocument, getInitialParagraphStyle, getInitialTextStyle, getOnInsideSelectionMousePressReleased, getOnNewSelectionDragFinished, getOnOutsideSelectionMousePressed, getOnSelectionDropped, getParagraphBoundsOnScreen, getParagraphLinesCount, getParagraphs, getParagraphSelection, getParagraphStyleForInsertionAt, getSegOps, getStyleAtPosition, getStyleAtPosition, getStyleCodecs, getStyleOfChar, getStyleOfChar, getStyleRangeAtPosition, getStyleRangeAtPosition, getStyleSpans, getStyleSpans, getStyleSpans, getText, getText, getText, getTextStyleForInsertionAt, getUndoManager, getViewportHeight, getVisibleParagraphBoundsOnScreen, getVisibleParagraphs, hit, isAutoScrollOnDragDesired, isContextMenuPresent, isEditable, isPreserveStyle, isWrapText, layoutChildren, lengthProperty, lineEnd, lineIndex, lineStart, mouseOverTextDelayProperty, multiPlainChanges, multiRichChanges, nextPage, offsetToPosition, onInsideSelectionMousePressReleasedProperty, onInsideSelectionMousePressReleaseProperty, onNewSelectionDragFinishedProperty, onNewSelectionDragProperty, onOutsideSelectionMousePressedProperty, onOutsideSelectionMousePressProperty, onSelectionDragProperty, onSelectionDroppedProperty, onSelectionDropProperty, paragraphGraphicFactoryProperty, plainTextChanges, position, prevPage, removeCaret, removeSelection, replace, replace, replaceText, requestFollowCaret, richChanges, scrollBy, scrollXBy, scrollXToPixel, scrollYBy, scrollYToPixel, setAutoScrollOnDragDesired, setContextMenu, setContextMenuXOffset, setContextMenuYOffset, setEditable, setOnInsideSelectionMousePressReleased, setOnNewSelectionDragFinished, setOnOutsideSelectionMousePressed, setOnSelectionDropped, setParagraphStyle, setStyle, setStyle, setStyle, setStyleCodecs, setStyleSpans, setStyleSpans, setUndoManager, setWrapText, showParagraphAtBottom, showParagraphAtTop, showParagraphInViewport, showParagraphRegion, subDocument, subDocument, textProperty, totalHeightEstimateProperty, totalWidthEstimateProperty, useInitialStyleForInsertionProperty, viewportDirtyEvents, visibleParToAllParIndex, wrapTextProperty
-
Methods inherited from interface org.fxmisc.richtext.NavigationActions
deselect, end, moveTo, moveTo, moveTo, moveTo, nextChar, paragraphEnd, paragraphStart, previousChar, selectAll, selectParagraph, selectWord, start, wordBreaksBackwards, wordBreaksForwards
-
Methods inherited from 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, getAccessibleHelp, getAccessibleRole, getAccessibleRoleDescription, getAccessibleText, getBlendMode, getBoundsInLocal, getBoundsInParent, getCacheHint, getClip, getContentBias, getCursor, getDepthTest, getEffect, getEffectiveNodeOrientation, getEventDispatcher, getId, getInitialCursor, getInitialFocusTraversable, 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, 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, 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, relocate, removeEventFilter, removeEventHandler, requestFocus, 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 inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from class javafx.scene.Parent
getBaselineOffset, getChildren, getChildrenUnmodifiable, getManagedChildren, getStylesheets, isNeedsLayout, layout, lookup, needsLayoutProperty, queryAccessibleAttribute, requestLayout, requestParentLayout, setNeedsLayout, updateBounds
-
Methods inherited from class javafx.scene.layout.Region
backgroundProperty, borderProperty, cacheShapeProperty, centerShapeProperty, computeMaxHeight, computeMaxWidth, computeMinHeight, computeMinWidth, computePrefHeight, computePrefWidth, getBackground, getBorder, getHeight, getInsets, getMaxHeight, getMaxWidth, getMinHeight, getMinWidth, getOpaqueInsets, getPadding, getPrefHeight, getPrefWidth, getShape, getUserAgentStylesheet, getWidth, heightProperty, insetsProperty, isCacheShape, isCenterShape, isResizable, 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 inherited from interface org.fxmisc.richtext.StyleActions
clearParagraphStyle, clearStyle, clearStyle, clearStyle, getStyleSpans, getStyleSpans, getUseInitialStyleForInsertion, setUseInitialStyleForInsertion
-
Methods inherited from class org.fxmisc.richtext.StyledTextArea
createStyledTextNode, createStyledTextNode
-
Methods inherited from interface org.fxmisc.richtext.TextEditingArea
anchorProperty, caretBoundsProperty, caretColumnProperty, caretPositionProperty, currentParagraphProperty, getAnchor, getCaretBounds, getCaretColumn, getCaretPosition, getCurrentParagraph, getLength, getParagraph, getParagraphLength, getParagraphSelection, getSelectedText, getSelection, getSelectionBounds, getShowCaret, getText, getText, isBeingUpdated, replace, replace, replace, replace, replaceText, replaceText, selectedTextProperty, selectionBoundsProperty, selectionProperty, selectRange, selectRange, setShowCaret, showCaretProperty, subDocument, subDocument
-
Methods inherited from interface org.fxmisc.richtext.UndoActions
isRedoAvailable, isUndoAvailable, redo, redoAvailableProperty, undo, undoAvailableProperty
-
Methods inherited from interface org.fxmisc.richtext.ViewActions
firstVisibleParToAllParIndex, getMouseOverTextDelay, getOnInsideSelectionMousePressRelease, getOnNewSelectionDrag, getOnOutsideSelectionMousePress, getOnSelectionDrag, getOnSelectionDrop, getParagraphGraphicFactory, hideContextMenu, lastVisibleParToAllParIndex, selectLine, setMouseOverTextDelay, setOnInsideSelectionMousePressRelease, setOnNewSelectionDrag, setOnOutsideSelectionMousePress, setOnSelectionDrag, setOnSelectionDrop, setParagraphGraphicFactory
-
-
-
-
Method Detail
-
setSyntaxHighlighter
public void setSyntaxHighlighter(SyntaxHighlighter highlighter)
Enables syntax highlighting if disabled and sets it to use the given highlighter. If the argument is null, then this method disables syntax highlighting.
-
syntaxHighlightingEnabledProperty
public org.reactfx.value.Val<java.lang.Boolean> syntaxHighlightingEnabledProperty()
-
clearSyntaxHighlighting
protected void clearSyntaxHighlighting()
Removes the current syntax highlighting span.
-
styleSyntaxHighlightChange
protected org.fxmisc.richtext.model.StyleSpans<java.util.Collection<java.lang.String>> styleSyntaxHighlightChange(java.util.Optional<org.fxmisc.richtext.model.StyleSpans<java.util.Collection<java.lang.String>>> oldSyntax, org.fxmisc.richtext.model.StyleSpans<java.util.Collection<java.lang.String>> newSyntax)
Given the old value of the highlighting spans, and a newly computed value, computes the spans as they should be applied to the codearea. The default behaviour simply returns the newest spans, which works flawlessly when there is no other style layer in the game. Subclasses are free to override, to get a chance to preserve additional style layers.
-
updateSyntaxHighlightingSynchronously
protected void updateSyntaxHighlightingSynchronously()
Forces synchronous updating of the syntax highlighting. This can be done when we suspect the highlighting is outdated but we really need the most up to date one, for example because we want to overlay other spans on it.
-
emptySpan
protected org.fxmisc.richtext.model.StyleSpans<java.util.Collection<java.lang.String>> emptySpan()
-
additiveOverlay
protected static java.util.Collection<java.lang.String> additiveOverlay(java.util.Collection<java.lang.String> style1, java.util.Collection<java.lang.String> style2)
Overlay operation that stacks up the style classes of the two overlaid spans.
-
wrapNode
public TextAwareNodeWrapper wrapNode(net.sourceforge.pmd.lang.ast.Node node)
Wraps a node into a convenience layer that can for example provide the rich text associated with it.
-
-