Class RSyntaxTextArea

All Implemented Interfaces:
ImageObserver, MenuContainer, Printable, Serializable, Accessible, Scrollable, SyntaxConstants
Direct Known Subclasses:
TextEditorPane

public class RSyntaxTextArea extends RTextArea implements SyntaxConstants
An extension of RTextArea that adds syntax highlighting of certain programming languages to its list of features. Languages currently supported include:
  • ActionScript
  • Assembler (X86)
  • Assembler (6502)
  • BBCode
  • C
  • C++
  • CSS
  • C#
  • Clojure
  • Dart
  • Delphi
  • DTD
  • Fortran
  • Groovy
  • HTML
  • htaccess
  • Java
  • JavaScript
  • .jshintrc
  • JSP
  • Kotlin
  • LaTeX
  • Lisp
  • Lua
  • Make
  • MXML
  • NSIS
  • Perl
  • PHP
  • Properties files
  • Protobuf files
  • Python
  • Ruby
  • SAS
  • Scala
  • SQL
  • Tcl
  • UNIX shell scripts
  • Visual Basic
  • Windows batch
  • XML files
Other added features include:
  • Code folding
  • Bracket matching
  • Auto-indentation
  • Copy as RTF
  • Clickable hyperlinks (if the language scanner being used supports it)
  • A pluggable "parser" system that can be used to implement syntax validation, spell checking, etc.
It is recommended that you use an instance of RTextScrollPane instead of a regular JScrollPane as this class allows you to add line numbers and bookmarks easily to your text area.
See Also:
  • Field Details

    • ANIMATE_BRACKET_MATCHING_PROPERTY

      public static final String ANIMATE_BRACKET_MATCHING_PROPERTY
      See Also:
    • ANTIALIAS_PROPERTY

      public static final String ANTIALIAS_PROPERTY
      See Also:
    • AUTO_INDENT_PROPERTY

      public static final String AUTO_INDENT_PROPERTY
      See Also:
    • BRACKET_MATCHING_PROPERTY

      public static final String BRACKET_MATCHING_PROPERTY
      See Also:
    • CLEAR_WHITESPACE_LINES_PROPERTY

      public static final String CLEAR_WHITESPACE_LINES_PROPERTY
      See Also:
    • CLOSE_CURLY_BRACES_PROPERTY

      public static final String CLOSE_CURLY_BRACES_PROPERTY
      See Also:
    • CLOSE_MARKUP_TAGS_PROPERTY

      public static final String CLOSE_MARKUP_TAGS_PROPERTY
      See Also:
    • CODE_FOLDING_PROPERTY

      public static final String CODE_FOLDING_PROPERTY
      See Also:
    • EOL_VISIBLE_PROPERTY

      public static final String EOL_VISIBLE_PROPERTY
      See Also:
    • FOCUSABLE_TIPS_PROPERTY

      public static final String FOCUSABLE_TIPS_PROPERTY
      See Also:
    • FRACTIONAL_FONTMETRICS_PROPERTY

      public static final String FRACTIONAL_FONTMETRICS_PROPERTY
      See Also:
    • HIGHLIGHT_SECONDARY_LANGUAGES_PROPERTY

      public static final String HIGHLIGHT_SECONDARY_LANGUAGES_PROPERTY
      See Also:
    • INSERT_PAIRED_CHARS_PROPERTY

      public static final String INSERT_PAIRED_CHARS_PROPERTY
      See Also:
    • MARK_OCCURRENCES_PROPERTY

      public static final String MARK_OCCURRENCES_PROPERTY
      See Also:
    • MARKED_OCCURRENCES_CHANGED_PROPERTY

      public static final String MARKED_OCCURRENCES_CHANGED_PROPERTY
      See Also:
    • PAINT_MATCHED_BRACKET_PAIR_PROPERTY

      public static final String PAINT_MATCHED_BRACKET_PAIR_PROPERTY
      See Also:
    • PARSER_NOTICES_PROPERTY

      public static final String PARSER_NOTICES_PROPERTY
      See Also:
    • SYNTAX_SCHEME_PROPERTY

      public static final String SYNTAX_SCHEME_PROPERTY
      See Also:
    • SYNTAX_STYLE_PROPERTY

      public static final String SYNTAX_STYLE_PROPERTY
      See Also:
    • TAB_LINE_COLOR_PROPERTY

      public static final String TAB_LINE_COLOR_PROPERTY
      See Also:
    • TAB_LINES_PROPERTY

      public static final String TAB_LINES_PROPERTY
      See Also:
    • USE_SELECTED_TEXT_COLOR_PROPERTY

      public static final String USE_SELECTED_TEXT_COLOR_PROPERTY
      See Also:
    • VISIBLE_WHITESPACE_PROPERTY

      public static final String VISIBLE_WHITESPACE_PROPERTY
      See Also:
    • DEFAULT_BRACKET_MATCH_BG_COLOR

      private static final Color DEFAULT_BRACKET_MATCH_BG_COLOR
    • DEFAULT_BRACKET_MATCH_BORDER_COLOR

      private static final Color DEFAULT_BRACKET_MATCH_BORDER_COLOR
    • DEFAULT_SELECTION_COLOR

      private static final Color DEFAULT_SELECTION_COLOR
    • MSG

      private static final String MSG
      See Also:
    • foldingMenu

      private JMenu foldingMenu
    • toggleCurrentFoldAction

      private static RecordableTextAction toggleCurrentFoldAction
    • collapseAllCommentFoldsAction

      private static RecordableTextAction collapseAllCommentFoldsAction
    • collapseAllFoldsAction

      private static RecordableTextAction collapseAllFoldsAction
    • expandAllFoldsAction

      private static RecordableTextAction expandAllFoldsAction
    • syntaxStyleKey

      private String syntaxStyleKey
      The key for the syntax style to be highlighting.
    • syntaxScheme

      private SyntaxScheme syntaxScheme
      The colors used for syntax highlighting.
    • codeTemplateManager

      private static CodeTemplateManager codeTemplateManager
      Handles code templates.
    • templatesEnabled

      private static boolean templatesEnabled
      Whether templates are enabled.
    • match

      private Rectangle match
      The rectangle surrounding the "matched bracket" if bracket matching is enabled.
    • dotRect

      private Rectangle dotRect
      The rectangle surrounding the current offset if both bracket matching and "match both brackets" are enabled.
    • bracketInfo

      private Point bracketInfo
      Used to store the location of the bracket at the caret position (either just before or just after it) and the location of its match.
    • matchedBracketBGColor

      private Color matchedBracketBGColor
      Colors used for the "matched bracket" if bracket matching is enabled.
    • matchedBracketBorderColor

      private Color matchedBracketBorderColor
    • lastBracketMatchPos

      private int lastBracketMatchPos
      The location of the last matched bracket.
    • bracketMatchingEnabled

      private boolean bracketMatchingEnabled
      Whether bracket matching is enabled.
    • animateBracketMatching

      private boolean animateBracketMatching
      Whether bracket matching is animated.
    • paintMatchedBracketPair

      private boolean paintMatchedBracketPair
      Whether both brackets are highlighted when bracket matching.
    • bracketRepaintTimer

      private RSyntaxTextArea.BracketMatchingTimer bracketRepaintTimer
    • matchedBracketPopupTimer

      private RSyntaxTextArea.MatchedBracketPopupTimer matchedBracketPopupTimer
    • metricsNeverRefreshed

      private boolean metricsNeverRefreshed
    • autoIndentEnabled

      private boolean autoIndentEnabled
      Whether auto-indent is on.
    • closeCurlyBraces

      private boolean closeCurlyBraces
      Whether curly braces should be closed on Enter key presses, (if the current language supports it).
    • closeMarkupTags

      private boolean closeMarkupTags
      Whether closing markup tags should be automatically completed when "</" is typed (if the current language is a markup language).
    • clearWhitespaceLines

      private boolean clearWhitespaceLines
      Whether lines with nothing but whitespace are "made empty".
    • whitespaceVisible

      private boolean whitespaceVisible
      Whether we are displaying visible whitespace (spaces and tabs).
    • eolMarkersVisible

      private boolean eolMarkersVisible
      Whether EOL markers should be visible at the end of each line.
    • paintTabLines

      private boolean paintTabLines
      Whether tab lines are enabled.
    • tabLineColor

      private Color tabLineColor
      The color to use when painting tab lines.
    • hyperlinksEnabled

      private boolean hyperlinksEnabled
      Whether hyperlinks are enabled (must be supported by the syntax scheme being used).
    • hyperlinkFG

      private Color hyperlinkFG
      The color to use when painting hyperlinks.
    • linkScanningMask

      private int linkScanningMask
      Mask used to determine if the correct key is being held down to scan for hyperlinks (ctrl, meta, etc.).
    • highlightSecondaryLanguages

      private boolean highlightSecondaryLanguages
      Whether secondary languages have their backgrounds colored.
    • useSelectedTextColor

      private boolean useSelectedTextColor
      Whether the "selected text" color should be used with selected text.
    • markOccurrencesSupport

      private MarkOccurrencesSupport markOccurrencesSupport
      Handles "mark occurrences" support.
    • markOccurrencesColor

      private Color markOccurrencesColor
      The color used to render "marked occurrences".
    • markOccurrencesDelay

      private int markOccurrencesDelay
      The delay before occurrences are marked in the editor.
    • paintMarkOccurrencesBorder

      private boolean paintMarkOccurrencesBorder
      Whether a border should be painted around marked occurrences.
    • defaultFontMetrics

      private FontMetrics defaultFontMetrics
      Metrics of the text area's font.
    • parserManager

      private ParserManager parserManager
      Manages running the parser.
    • cachedTip

      private String cachedTip
    • cachedTipLoc

      private Point cachedTipLoc
      Used to work around an issue with Apple JVMs.
    • hoveredOverLinkOffset

      private int hoveredOverLinkOffset
    • linkGenerator

      private LinkGenerator linkGenerator
    • linkGeneratorResult

      private LinkGeneratorResult linkGeneratorResult
    • rhsCorrection

      private int rhsCorrection
    • foldManager

      private FoldManager foldManager
    • useFocusableTips

      private boolean useFocusableTips
      Whether "focusable" tool tips are used instead of standard ones.
    • focusableTip

      private FocusableTip focusableTip
      The last focusable tip displayed.
    • aaHints

      private Map<?,?> aaHints
      Cached desktop anti-aliasing hints, if anti-aliasing is enabled.
    • tokenPainter

      private TokenPainter tokenPainter
      Renders tokens.
    • showMatchedBracketPopup

      private boolean showMatchedBracketPopup
      Whether a popup showing matched bracket lines when they're off-screen.
    • lineHeight

      private int lineHeight
    • maxAscent

      private int maxAscent
    • fractionalFontMetricsEnabled

      private boolean fractionalFontMetricsEnabled
    • secondaryLanguageBackgrounds

      private Color[] secondaryLanguageBackgrounds
    • insertPairedCharacters

      private boolean insertPairedCharacters
  • Constructor Details

    • RSyntaxTextArea

      public RSyntaxTextArea()
      Constructor.
    • RSyntaxTextArea

      public RSyntaxTextArea(RSyntaxDocument doc)
      Constructor.
      Parameters:
      doc - The document for the editor.
    • RSyntaxTextArea

      public RSyntaxTextArea(String text)
      Constructor.
      Parameters:
      text - The initial text to display.
    • RSyntaxTextArea

      public RSyntaxTextArea(int rows, int cols)
      Constructor.
      Parameters:
      rows - The number of rows to display.
      cols - The number of columns to display.
      Throws:
      IllegalArgumentException - If either rows or cols is negative.
    • RSyntaxTextArea

      public RSyntaxTextArea(String text, int rows, int cols)
      Constructor.
      Parameters:
      text - The initial text to display.
      rows - The number of rows to display.
      cols - The number of columns to display.
      Throws:
      IllegalArgumentException - If either rows or cols is negative.
    • RSyntaxTextArea

      public RSyntaxTextArea(RSyntaxDocument doc, String text, int rows, int cols)
      Constructor.
      Parameters:
      doc - The document for the editor.
      text - The initial text to display.
      rows - The number of rows to display.
      cols - The number of columns to display.
      Throws:
      IllegalArgumentException - If either rows or cols is negative.
    • RSyntaxTextArea

      public RSyntaxTextArea(int textMode)
      Creates a new RSyntaxTextArea.
      Parameters:
      textMode - Either INSERT_MODE or OVERWRITE_MODE.
  • Method Details

    • addActiveLineRangeListener

      public void addActiveLineRangeListener(ActiveLineRangeListener l)
      Adds an "active line range" listener to this text area.
      Parameters:
      l - The listener to add.
      See Also:
    • addHyperlinkListener

      public void addHyperlinkListener(HyperlinkListener l)
      Adds a hyperlink listener to this text area. Assuming hyperlinks are enabled, this listener will receive events when the mouse enters, leaves, and clicks on hyperlinks when the scanning mask modifier button (e.g. the control key) is pressed.
      Parameters:
      l - The listener to add.
      See Also:
    • addNotify

      public void addNotify()
      Updates the font metrics the first time we're displayed.
      Overrides:
      addNotify in class RTextAreaBase
    • addParser

      public void addParser(Parser parser)
      Adds the parser to "validate" the source code in this text area. This can be anything from a spell checker to a "compiler" that verifies source code.
      Parameters:
      parser - The new parser. A value of null will do nothing.
      See Also:
    • appendFoldingMenu

      protected void appendFoldingMenu(JPopupMenu popup)
      Appends a submenu with code folding options to this text component's popup menu.
      Parameters:
      popup - The popup menu to append to.
      See Also:
    • calculateLineHeight

      private void calculateLineHeight()
      Recalculates the height of a line in this text area and the maximum ascent of all fonts displayed.
    • clearParsers

      public void clearParsers()
      Removes all parsers from this text area.
      See Also:
    • cloneTokenList

      private TokenImpl cloneTokenList(Token t)
      Clones a token list. This is necessary as tokens are reused in RSyntaxDocument, so we can't simply use the ones we are handed from it.
      Parameters:
      t - The token list to clone.
      Returns:
      The clone of the token list.
    • configurePopupMenu

      protected void configurePopupMenu(JPopupMenu popupMenu)
      Overridden to toggle the enabled state of various RSyntaxTextArea-specific menu items. If you set the popup menu via RTextArea.setPopupMenu(JPopupMenu), you will want to override this method, especially if you removed any of the menu items in the default popup menu.
      Overrides:
      configurePopupMenu in class RTextArea
      Parameters:
      popupMenu - The popup menu. This will never be null.
      See Also:
    • copyAsStyledText

      public void copyAsStyledText(Theme theme)
      Copies the currently selected text to the system clipboard, with style information from the specified theme. Does nothing for null or empty selections.
      Parameters:
      theme - The theme to use for the color and font information. This may be null, in which case this text area's current styles are used.
      See Also:
    • copyAsStyledText

      public void copyAsStyledText()
      Copies the currently selected text to the system clipboard, with any necessary style information (font, foreground color and background color). Does nothing for null or empty selections.
      See Also:
    • createDefaultModel

      protected Document createDefaultModel()
      Returns the document to use for an RSyntaxTextArea.
      Overrides:
      createDefaultModel in class RTextArea
      Returns:
      The document.
    • createHyperlinkEvent

      private HyperlinkEvent createHyperlinkEvent(HyperlinkEvent.EventType type)
    • createMouseListener

      protected RTextAreaBase.RTAMouseListener createMouseListener()
      Returns the caret event/mouse listener for RTextAreas.
      Overrides:
      createMouseListener in class RTextArea
      Returns:
      The caret event/mouse listener.
    • createPopupMenu

      protected JPopupMenu createPopupMenu()
      Overridden to add menu items related to cold folding.
      Overrides:
      createPopupMenu in class RTextArea
      Returns:
      The popup menu.
      See Also:
    • createRstaPopupMenuActions

      private static void createRstaPopupMenuActions()
      See createPopupMenuActions() in RTextArea. TODO: Remove these horrible hacks and move localizing of actions into the editor kits, where it should be! The context menu should contain actions from the editor kits.
    • copyActionAttributes

      private static void copyActionAttributes(RecordableTextAction from, RecordableTextAction to)
    • createRTextAreaUI

      protected RTextAreaUI createRTextAreaUI()
      Returns a real UI to install on this text area.
      Overrides:
      createRTextAreaUI in class RTextArea
      Returns:
      The UI.
    • doBracketMatching

      protected final void doBracketMatching()
      If the caret is on a bracket, this method finds the matching bracket, and if it exists, highlights it.
    • fireCaretUpdate

      protected void fireCaretUpdate(CaretEvent e)
      Notifies all listeners that a caret change has occurred.
      Overrides:
      fireCaretUpdate in class RTextArea
      Parameters:
      e - The caret event.
    • fireActiveLineRangeEvent

      private void fireActiveLineRangeEvent(int min, int max)
      Notifies all listeners that the active line range has changed.
      Parameters:
      min - The minimum "active" line, or -1.
      max - The maximum "active" line, or -1.
    • fireHyperlinkUpdate

      protected void fireHyperlinkUpdate(HyperlinkEvent.EventType type)
      Notifies all listeners that have registered interest in notification on this event type. The listener list is processed last to first.
      Parameters:
      type - The type of event to fire.
    • fireMarkedOccurrencesChanged

      void fireMarkedOccurrencesChanged()
      Notifies listeners that the marked occurrences for this text area have changed.
    • fireParserNoticesChange

      void fireParserNoticesChange()
      Fires a notification that the parser notices for this text area have changed.
    • foldToggled

      public void foldToggled(Fold fold)
      Called whenever a fold is collapsed or expanded. This causes the text editor to revalidate. This method is here because of poor design and should be removed.
      Parameters:
      fold - The fold that was collapsed or expanded.
    • forceReparsing

      public void forceReparsing(int parser)
      Forces the given Parser to reparse the content of this text area. This should only be called on the EDT.

      This method can be useful when a Parser can be configured as to what notices it returns. For example, if a Java language parser can be configured to set whether no serialVersionUID is a warning, error, or ignored, this method can be called after changing the expected notice type to have the document reparsed.

      Parameters:
      parser - The index of the Parser to re-run.
      See Also:
    • forceReparsing

      public boolean forceReparsing(Parser parser)
      Forces reparsing with a specific parser. Note that if this parser is not installed on this text area, nothing will happen. This method should only be called on the EDT.
      Parameters:
      parser - The parser that should reparse this text area's contents. This should be installed on this text area.
      Returns:
      Whether the parser was installed on this text area.
      See Also:
    • getAnimateBracketMatching

      public boolean getAnimateBracketMatching()
      Returns whether bracket matching should be animated.
      Returns:
      Whether bracket matching should be animated.
      See Also:
    • getAntiAliasingEnabled

      public boolean getAntiAliasingEnabled()
      Returns whether anti-aliasing is enabled in this editor.
      Returns:
      Whether anti-aliasing is enabled in this editor.
      See Also:
    • getBackgroundForToken

      public Color getBackgroundForToken(Token token)
      Returns the background color for a token.
      Parameters:
      token - The token.
      Returns:
      The background color to use for that token. If this value is null then this token has no special background color.
      See Also:
    • getCloseCurlyBraces

      public boolean getCloseCurlyBraces()
      Returns whether curly braces should be automatically closed when a newline is entered after an opening curly brace. Note that this property is only honored for languages that use curly braces to denote code blocks.
      Returns:
      Whether curly braces should be automatically closed.
      See Also:
    • getCloseMarkupTags

      public boolean getCloseMarkupTags()
      Returns whether closing markup tags should be automatically completed when "</" is typed. Note that this property is only honored for markup languages, such as HTML, XML and PHP.
      Returns:
      Whether closing markup tags should be automatically completed.
      See Also:
    • getCodeTemplateManager

      public static CodeTemplateManager getCodeTemplateManager()
      Returns the code template manager for all instances of RSyntaxTextArea. The manager is lazily created.
      Returns:
      The code template manager.
      See Also:
    • getDefaultBracketMatchBGColor

      public static Color getDefaultBracketMatchBGColor()
      Returns the default bracket-match background color.
      Returns:
      The color.
      See Also:
    • getDefaultBracketMatchBorderColor

      public static Color getDefaultBracketMatchBorderColor()
      Returns the default bracket-match border color.
      Returns:
      The color.
      See Also:
    • getDefaultSelectionColor

      public static Color getDefaultSelectionColor()
      Returns the default selection color for this text area. This color was chosen because it's light and RSyntaxTextArea does not change text color between selected/unselected text for contrast like regular JTextAreas do.
      Returns:
      The default selection color.
    • getDefaultSyntaxScheme

      public SyntaxScheme getDefaultSyntaxScheme()
      Returns the "default" syntax highlighting color scheme. The colors used are somewhat standard among syntax highlighting text editors.
      Returns:
      The default syntax highlighting color scheme.
      See Also:
    • getEOLMarkersVisible

      public boolean getEOLMarkersVisible()
      Returns whether an EOL marker should be drawn at the end of each line.
      Returns:
      Whether EOL markers should be visible.
      See Also:
    • getFoldManager

      public FoldManager getFoldManager()
      Returns the fold manager for this text area.
      Returns:
      The fold manager.
    • getFontForTokenType

      public Font getFontForTokenType(int type)
      Returns the font for tokens of the specified type.
      Parameters:
      type - The type of token.
      Returns:
      The font to use for that token type.
      See Also:
    • getFontMetricsForTokenType

      public FontMetrics getFontMetricsForTokenType(int type)
      Returns the font metrics for tokens of the specified type.
      Parameters:
      type - The type of token.
      Returns:
      The font metrics to use for that token type.
      See Also:
    • getForegroundForToken

      public Color getForegroundForToken(Token t)
      Returns the foreground color to use when painting a token.
      Parameters:
      t - The token.
      Returns:
      The foreground color to use for that token. This value is never null.
      See Also:
    • getForegroundForTokenType

      public Color getForegroundForTokenType(int type)
      Returns the foreground color to use when painting a token. This does not take into account whether the token is a hyperlink.
      Parameters:
      type - The token type.
      Returns:
      The foreground color to use for that token. This value is never null.
      See Also:
    • getFractionalFontMetricsEnabled

      public boolean getFractionalFontMetricsEnabled()
      Returns whether fractional font metrics are enabled for this text area.
      Returns:
      Whether fractional font metrics are enabled.
      See Also:
    • getGraphics2D

      private Graphics2D getGraphics2D(Graphics g)
      Returns a Graphics2D version of the specified graphics that has been initialized with the proper rendering hints.
      Parameters:
      g - The graphics context for which to get a Graphics2D.
      Returns:
      The Graphics2D.
    • getHighlightSecondaryLanguages

      public boolean getHighlightSecondaryLanguages()
      Returns whether "secondary" languages should have their backgrounds colored differently to visually differentiate them. This feature imposes a fair performance penalty.
      Returns:
      Whether secondary languages have their backgrounds colored differently.
      See Also:
    • getHyperlinkForeground

      public Color getHyperlinkForeground()
      Returns the color to use when painting hyperlinks.
      Returns:
      The color to use when painting hyperlinks.
      See Also:
    • getHyperlinksEnabled

      public boolean getHyperlinksEnabled()
      Returns whether hyperlinks are enabled for this text area.
      Returns:
      Whether hyperlinks are enabled for this text area.
      See Also:
    • getInsertPairedCharacters

      public boolean getInsertPairedCharacters()
      Returns whether paired characters should be inserted when there is a selection. For example, If the following text is selected:

      something

      And the double quote character, ", is typed, the selection will be replaced with:

      "something"

      If enabled, this occurs for the following characters:
      • "
      • '
      • [
      • (
      • &#123;
      Returns:
      Whether to insert paired characters if a relevant key is typed while there is a selection.
      See Also:
    • getLastVisibleOffset

      public int getLastVisibleOffset()
      Returns the last visible offset in this text area. This may not be the length of the document if code folding is enabled.
      Returns:
      The last visible offset in this text area.
    • getLineHeight

      public int getLineHeight()
      Returns the height to use for a line of text in this text area.
      Overrides:
      getLineHeight in class RTextAreaBase
      Returns:
      The height of a line of text in this text area.
    • getLinkGenerator

      public LinkGenerator getLinkGenerator()
    • getMarkAllHighlightRanges

      public List<DocumentRange> getMarkAllHighlightRanges()
      Returns a list of "mark all" highlights in the text area. If there are no such highlights, this will be an empty list.
      Returns:
      The list of "mark all" highlight ranges.
    • getMarkedOccurrences

      public List<DocumentRange> getMarkedOccurrences()
      Returns a list of "marked occurrences" in the text area. If there are no marked occurrences, this will be an empty list.
      Returns:
      The list of marked occurrences.
    • getMarkOccurrences

      public boolean getMarkOccurrences()
      Returns whether "Mark Occurrences" is enabled.
      Returns:
      Whether "Mark Occurrences" is enabled.
      See Also:
    • getMarkOccurrencesColor

      public Color getMarkOccurrencesColor()
      Returns the color used for "mark occurrences" highlights.
      Returns:
      The mark occurrences color.
      See Also:
    • getMarkOccurrencesDelay

      public int getMarkOccurrencesDelay()
      Returns the delay between when the caret is moved and when "marked occurrences" are highlighted.
      Returns:
      The "mark occurrences" delay, in milliseconds.
      See Also:
    • getMarkOccurrencesOfTokenType

      boolean getMarkOccurrencesOfTokenType(int type)
      Returns whether tokens of the specified type should have "mark occurrences" enabled for the current programming language.
      Parameters:
      type - The token type.
      Returns:
      Whether tokens of this type should have "mark occurrences" enabled.
    • getMatchedBracketBGColor

      public Color getMatchedBracketBGColor()
      Gets the color used as the background for a matched bracket.
      Returns:
      The color used. If this is null, no special background is painted behind a matched bracket.
      See Also:
    • getMatchedBracketBorderColor

      public Color getMatchedBracketBorderColor()
      Gets the color used as the border for a matched bracket.
      Returns:
      The color used.
      See Also:
    • getDotRectangle

      Rectangle getDotRectangle()
      Returns the caret's offset's rectangle, or null if there is currently no matched bracket, bracket matching is disabled, or "paint both matched brackets" is disabled. This should never be called by the programmer directly.
      Returns:
      The rectangle surrounding the matched bracket.
      See Also:
    • getMatchRectangle

      Rectangle getMatchRectangle()
      Returns the matched bracket's rectangle, or null if there is currently no matched bracket. This should never be called by the programmer directly.
      Returns:
      The rectangle surrounding the matched bracket.
      See Also:
    • getMaxAscent

      public int getMaxAscent()
      Overridden to return the max ascent for any font used in the editor.
      Overrides:
      getMaxAscent in class RTextArea
      Returns:
      The max ascent value.
    • getPaintMatchedBracketPair

      public boolean getPaintMatchedBracketPair()
      Returns whether the bracket at the caret position is painted as a "match" when a matched bracket is found. Note that this property does nothing if isBracketMatchingEnabled() returns false.
      Returns:
      Whether both brackets in a bracket pair are highlighted when bracket matching is enabled.
      See Also:
    • getPaintTabLines

      public boolean getPaintTabLines()
      Returns whether tab lines are painted.
      Returns:
      Whether tab lines are painted.
      See Also:
    • getPaintTokenBackgrounds

      boolean getPaintTokenBackgrounds(int line, float y)
      Returns whether to paint the backgrounds of tokens on the specified line (assuming they are not obstructed by e.g. selection).
      Parameters:
      line - The line number.
      y - The y-offset of the line. This is used when line wrap is enabled, since each logical line can be rendered as several physical lines.
      Returns:
      Whether to paint the token backgrounds on this line.
    • getParser

      public Parser getParser(int index)
      Returns the specified parser.
      Parameters:
      index - The Parser to retrieve.
      Returns:
      The Parser.
      See Also:
    • getParserCount

      public int getParserCount()
      Returns the number of parsers operating on this text area.
      Returns:
      The parser count.
      See Also:
    • getParserDelay

      public int getParserDelay()
      Returns the currently set parser delay. This is the delay that must occur between edits for any registered Parsers to run.
      Returns:
      The currently set parser delay, in milliseconds.
      See Also:
    • getParserNotices

      public List<ParserNotice> getParserNotices()
      Returns a list of the current parser notices for this text area. This method (like most Swing methods) should only be called on the EDT.
      Returns:
      The list of notices. This will be an empty list if there are none.
    • getRightHandSideCorrection

      public int getRightHandSideCorrection()
      Workaround for JTextComponents allowing the caret to be rendered entirely off-screen if the entire "previous" character fit entirely.
      Returns:
      The amount of space to add to the x-axis preferred span.
      See Also:
    • getShouldIndentNextLine

      public boolean getShouldIndentNextLine(int line)
      If auto-indent is enabled, this method returns whether a new line after this one should be indented (based on the standard indentation rules for the current programming language). For example, in Java, for a line containing:
       for (int i=0; i<10; i++) {
       
      the following line should be indented.
      Parameters:
      line - The line to check.
      Returns:
      Whether a line inserted after this one should be auto-indented. If auto-indentation is disabled, this will always return false.
      See Also:
    • getShowMatchedBracketPopup

      public boolean getShowMatchedBracketPopup()
      Returns whether a small popup window should display the text on the line containing a matched bracket whenever a matched bracket is off- screen.
      Returns:
      Whether to show the popup.
      See Also:
    • getSyntaxEditingStyle

      public String getSyntaxEditingStyle()
      Returns what type of syntax highlighting this editor is doing.
      Returns:
      The style being used, such as SyntaxConstants.SYNTAX_STYLE_JAVA.
      See Also:
    • getSyntaxScheme

      public SyntaxScheme getSyntaxScheme()
      Returns all the colors currently being used in syntax highlighting by this text component.
      Returns:
      An instance of SyntaxScheme that represents the colors currently being used for syntax highlighting.
      See Also:
    • getTabLineColor

      public Color getTabLineColor()
      Returns the color used to paint tab lines.
      Returns:
      The color used to paint tab lines.
      See Also:
    • getPaintMarkOccurrencesBorder

      public boolean getPaintMarkOccurrencesBorder()
      Returns whether a border is painted around marked occurrences.
      Returns:
      Whether a border is painted.
      See Also:
    • getSecondaryLanguageBackground

      public Color getSecondaryLanguageBackground(int index)
      Returns the background color for the specified secondary language.
      Parameters:
      index - The language index. Note that these are 1-based, not 0-based, and should be in the range 1-getSecondaryLanguageCount(), inclusive.
      Returns:
      The color, or null if none.
      See Also:
    • getSecondaryLanguageCount

      public int getSecondaryLanguageCount()
      Returns the number of secondary language backgrounds.
      Returns:
      The number of secondary language backgrounds.
      See Also:
    • getTemplatesEnabled

      public static boolean getTemplatesEnabled()
      Returns whether templates are enabled for all instances of RSyntaxTextArea.

      For more flexible boilerplate code insertion, consider using the TemplateCompletion class in the AutoComplete add-on library.

      Returns:
      Whether templates are enabled.
      See Also:
    • getTextAsRtf

      private byte[] getTextAsRtf(int start, int end)
    • getTokenListFor

      public Token getTokenListFor(int startOffs, int endOffs)
      Returns a token list for the given range in the document.
      Parameters:
      startOffs - The starting offset in the document.
      endOffs - The end offset in the document.
      Returns:
      The first token in the token list.
    • getTokenListForLine

      public Token getTokenListForLine(int line)
      Returns a list of tokens representing the given line.
      Parameters:
      line - The line number to get tokens for.
      Returns:
      A linked list of tokens representing the line's text.
    • getTokenPainter

      TokenPainter getTokenPainter()
      Returns the painter to use for rendering tokens.
      Returns:
      The painter to use for rendering tokens.
    • getToolTipText

      public String getToolTipText(MouseEvent e)
      Returns the tool tip to display for a mouse event at the given location. This method is overridden to give a registered parser a chance to display a tool tip (such as an error description when the mouse is over an error highlight).
      Overrides:
      getToolTipText in class RTextArea
      Parameters:
      e - The mouse event.
      Returns:
      The tool tip text, or null if none.
      See Also:
    • getToolTipTextImpl

      protected String getToolTipTextImpl(MouseEvent e)
      Does the dirty work of getting the tool tip text.
      Parameters:
      e - The mouse event.
      Returns:
      The tool tip text.
    • getUnderlineForToken

      public boolean getUnderlineForToken(Token t)
      Returns whether the specified token should be underlined. A token is underlined if its syntax style includes underlining, or if it is a hyperlink and hyperlinks are enabled.
      Parameters:
      t - The token.
      Returns:
      Whether the specified token should be underlined.
    • getUseFocusableTips

      public boolean getUseFocusableTips()
      Returns whether "focusable" tool tips are used instead of standard ones. Focusable tool tips are tool tips that the user can click on, resize, copy from, and click links in.
      Returns:
      Whether to use focusable tool tips.
      See Also:
    • getUseSelectedTextColor

      public boolean getUseSelectedTextColor()
      Returns whether selected text should use the "selected text color" property set via JTextComponent.setSelectedTextColor(Color). This is the typical behavior of text components. By default, RSyntaxTextArea does not do this, so that token styles are visible even in selected regions of text.
      Returns:
      Whether the "selected text" color is used when painting text in selected regions.
      See Also:
    • init

      protected void init()
      Called by constructors to initialize common properties of the text editor.
      Overrides:
      init in class RTextArea
    • isAutoIndentEnabled

      public boolean isAutoIndentEnabled()
      Returns whether auto-indent is enabled.
      Returns:
      Whether auto-indent is enabled.
      See Also:
    • isBracketMatchingEnabled

      public final boolean isBracketMatchingEnabled()
      Returns whether bracket matching is enabled.
      Returns:
      true iff bracket matching is enabled.
      See Also:
    • isClearWhitespaceLinesEnabled

      public boolean isClearWhitespaceLinesEnabled()
      Returns whether lines containing nothing but whitespace are made into blank lines when Enter is pressed in them.
      Returns:
      Whether whitespace-only lines are cleared when the user presses Enter on them.
      See Also:
    • isCodeFoldingEnabled

      public boolean isCodeFoldingEnabled()
      Returns whether code folding is enabled. Note that only certain languages support code folding; those that do not will ignore this property.
      Returns:
      Whether code folding is enabled.
      See Also:
    • isWhitespaceVisible

      public boolean isWhitespaceVisible()
      Returns whether whitespace (spaces and tabs) is visible.
      Returns:
      Whether whitespace is visible.
      See Also:
    • modelToToken

      public Token modelToToken(int offs)
      Returns the token at the specified position in the model.
      Parameters:
      offs - The position in the model.
      Returns:
      The token, or null if no token is at that position.
      See Also:
    • paintComponent

      protected void paintComponent(Graphics g)
      The paintComponent method is overridden so we apply any necessary rendering hints to the Graphics object.
      Overrides:
      paintComponent in class RTextAreaBase
      Parameters:
      g - The graphics context with which to paint.
    • refreshFontMetrics

      private void refreshFontMetrics(Graphics2D g2d)
    • redoLastAction

      public void redoLastAction()
      Description copied from class: RTextArea
      Attempt to redo the last action.
      Overrides:
      redoLastAction in class RTextArea
      See Also:
    • removeActiveLineRangeListener

      public void removeActiveLineRangeListener(ActiveLineRangeListener l)
      Removes an "active line range" listener from this text area.
      Parameters:
      l - The listener to remove.
      See Also:
    • removeHyperlinkListener

      public void removeHyperlinkListener(HyperlinkListener l)
      Removes a hyperlink listener from this text area.
      Parameters:
      l - The listener to remove.
      See Also:
    • removeNotify

      public void removeNotify()
      Overridden so we stop this text area's parsers, if any.
      Overrides:
      removeNotify in class JTextComponent
    • removeParser

      public boolean removeParser(Parser parser)
      Removes a parser from this text area.
      Parameters:
      parser - The Parser to remove.
      Returns:
      Whether the parser was found and removed.
      See Also:
    • restoreDefaultSyntaxScheme

      public void restoreDefaultSyntaxScheme()
      Sets the colors used for syntax highlighting to their defaults.
      See Also:
    • saveTemplates

      public static boolean saveTemplates()
      Attempts to save all currently-known templates to the current template directory, as set by setTemplateDirectory. Templates will be saved as XML files with names equal to their abbreviations; for example, a template that expands on the word "forb" will be saved as forb.xml.
      Returns:
      Whether the save was successful. The save will be unsuccessful if the template directory does not exist or if it has not been set (i.e., you have not yet called setTemplateDirectory).
      See Also:
    • setActiveLineRange

      public void setActiveLineRange(int min, int max)
      Sets the "active line range." Note that this RSyntaxTextArea itself does nothing with this information, but if it is contained inside an RTextScrollPane, the active line range may be displayed in the icon area of the Gutter.

      Note that basic users of RSyntaxTextArea will not call this method directly; rather, it is usually called by instances of LanguageSupport in the RSTALanguageSupport library. See https://github.com/bobbylight/RSTALanguageSupport for more information about this library.

      Parameters:
      min - The "minimum" line in the active line range, or -1 if the range is being cleared.
      max - The "maximum" line in the active line range, or -1 if the range is being cleared.
      See Also:
    • setAnimateBracketMatching

      public void setAnimateBracketMatching(boolean animate)
      Sets whether bracket matching should be animated. This fires a property change event of type ANIMATE_BRACKET_MATCHING_PROPERTY.
      Parameters:
      animate - Whether to animate bracket matching.
      See Also:
    • setAntiAliasingEnabled

      public void setAntiAliasingEnabled(boolean enabled)
      Sets whether anti-aliasing is enabled in this editor. This method fires a property change event of type ANTIALIAS_PROPERTY.
      Parameters:
      enabled - Whether anti-aliasing is enabled.
      See Also:
    • setAutoIndentEnabled

      public void setAutoIndentEnabled(boolean enabled)
      Sets whether auto-indent is enabled. This fires a property change event of type AUTO_INDENT_PROPERTY.
      Parameters:
      enabled - Whether auto-indent is enabled.
      See Also:
    • setBracketMatchingEnabled

      public void setBracketMatchingEnabled(boolean enabled)
      Sets whether bracket matching is enabled. This fires a property change event of type BRACKET_MATCHING_PROPERTY.
      Parameters:
      enabled - Whether bracket matching should be enabled.
      See Also:
    • setClearWhitespaceLinesEnabled

      public void setClearWhitespaceLinesEnabled(boolean enabled)
      Sets whether lines containing nothing but whitespace are made into blank lines when Enter is pressed in them. This method fires a property change event of type CLEAR_WHITESPACE_LINES_PROPERTY.
      Parameters:
      enabled - Whether whitespace-only lines are cleared when the user presses Enter on them.
      See Also:
    • setCloseCurlyBraces

      public void setCloseCurlyBraces(boolean close)
      Toggles whether curly braces should be automatically closed when a newline is entered after an opening curly brace. Note that this property is only honored for languages that use curly braces to denote code blocks.

      This method fires a property change event of type CLOSE_CURLY_BRACES_PROPERTY.

      Parameters:
      close - Whether curly braces should be automatically closed.
      See Also:
    • setCloseMarkupTags

      public void setCloseMarkupTags(boolean close)
      Sets whether closing markup tags should be automatically completed when "</" is typed. Note that this property is only honored for markup languages, such as HTML, XML and PHP.

      This method fires a property change event of type CLOSE_MARKUP_TAGS_PROPERTY.

      Parameters:
      close - Whether closing markup tags should be automatically completed.
      See Also:
    • setCodeFoldingEnabled

      public void setCodeFoldingEnabled(boolean enabled)
      Sets whether code folding is enabled. Note that only certain languages will support code folding out of the box. Those languages which do not support folding will ignore this property.

      This method fires a property change event of type CODE_FOLDING_PROPERTY.

      Parameters:
      enabled - Whether code folding should be enabled.
      See Also:
    • setDefaultAntiAliasingState

      private void setDefaultAntiAliasingState()
      Sets anti-aliasing to whatever the user's desktop value is.
      See Also:
    • setDocument

      public void setDocument(Document document)
      Sets the document used by this text area. This is overridden so that only instances of RSyntaxDocument are accepted; for all others, an exception will be thrown.
      Overrides:
      setDocument in class RTextArea
      Parameters:
      document - The new document for this text area.
      Throws:
      IllegalArgumentException - If the document is not an RSyntaxDocument.
    • setEOLMarkersVisible

      public void setEOLMarkersVisible(boolean visible)
      Sets whether EOL markers are visible at the end of each line. This method fires a property change of type EOL_VISIBLE_PROPERTY.
      Parameters:
      visible - Whether EOL markers are visible.
      See Also:
    • setFont

      public void setFont(Font font)
      Sets the font used by this text area.

      Note that if some token styles are using a different font family (not style, e.g. bold and italics don't count), they will not be changed by calling this method. In particular, if you are using multiple different fonts in your text area for different token types, and are looking for an easy way to increase or decrease all font sizes, use RSyntaxTextAreaEditorKit.IncreaseFontSizeAction and RSyntaxTextAreaEditorKit.DecreaseFontSizeAction rather than this method.

      Overrides:
      setFont in class RTextAreaBase
      Parameters:
      font - The font.
      See Also:
    • setFractionalFontMetricsEnabled

      public void setFractionalFontMetricsEnabled(boolean enabled)
      Sets whether fractional font metrics are enabled. This method fires a property change event of type FRACTIONAL_FONTMETRICS_PROPERTY.
      Parameters:
      enabled - Whether fractional font metrics are enabled.
      See Also:
    • setHighlighter

      public void setHighlighter(Highlighter h)
      Sets the highlighter used by this text area.
      Overrides:
      setHighlighter in class JTextComponent
      Parameters:
      h - The highlighter.
      Throws:
      IllegalArgumentException - If h is not an instance of RSyntaxTextAreaHighlighter.
    • setHighlightSecondaryLanguages

      public void setHighlightSecondaryLanguages(boolean highlight)
      Sets whether "secondary" languages should have their backgrounds colored differently to visually differentiate them. This feature imposes a fair performance penalty. This method fires a property change event of type HIGHLIGHT_SECONDARY_LANGUAGES_PROPERTY.
      Parameters:
      highlight - Whether to highlight secondary languages.
      See Also:
    • setHyperlinkForeground

      public void setHyperlinkForeground(Color fg)
      Sets the color to use when painting hyperlinks.
      Parameters:
      fg - The color to use when painting hyperlinks.
      Throws:
      NullPointerException - If fg is null.
      See Also:
    • setHyperlinksEnabled

      public void setHyperlinksEnabled(boolean enabled)
      Sets whether hyperlinks are enabled for this text area. This method fires a property change event of type HYPERLINKS_ENABLED_PROPERTY.
      Parameters:
      enabled - Whether hyperlinks are enabled.
      See Also:
    • setInsertPairedCharacters

      public void setInsertPairedCharacters(boolean insertPairedCharacters)
      Toggles whether paired characters should be inserted when there is a selection. For example, If the following text is selected:

      something

      And the double quote character, ", is typed, the selection can be replaced with:

      "something"

      If enabled, this occurs for the following characters:
      • "
      • '
      • [
      • (
      • &#123;
      Parameters:
      insertPairedCharacters - Whether to insert paired characters if a relevant key is typed while there is a selection.
      See Also:
    • setLinkGenerator

      public void setLinkGenerator(LinkGenerator generator)
    • setLinkScanningMask

      public void setLinkScanningMask(int mask)
      Sets the mask for the key used to toggle whether we are scanning for hyperlinks with mouse hovering. The default value is CTRL_DOWN_MASK.

      Note that this value will be ignored if setHyperlinksEnabled(boolean) is called and set to false. If you wish to disable hyperlinks, use that method rather than changing this mask value.

      Parameters:
      mask - The mask to use. This should be some bitwise combination of InputEvent.CTRL_DOWN_MASK, InputEvent.ALT_DOWN_MASK, InputEvent.SHIFT_DOWN_MASK or InputEvent.META_DOWN_MASK. For invalid values, behavior is undefined.
      See Also:
    • setMarkOccurrences

      public void setMarkOccurrences(boolean markOccurrences)
      Toggles whether "mark occurrences" is enabled. This method fires a property change event of type MARK_OCCURRENCES_PROPERTY.
      Parameters:
      markOccurrences - Whether "Mark Occurrences" should be enabled.
      See Also:
    • setMarkOccurrencesColor

      public void setMarkOccurrencesColor(Color color)
      Sets the "mark occurrences" color.
      Parameters:
      color - The new color. This cannot be null.
      See Also:
    • setMarkOccurrencesDelay

      public void setMarkOccurrencesDelay(int delay)
      Sets the delay between when the caret is moved and when "marked occurrences" are highlighted. It is recommended to set this to a value greater than 0 to debounce the "mark occurrences" operation, since it can be an expensive operation.
      Parameters:
      delay - The new delay, in milliseconds. This must be greater than or equal to 0.
      See Also:
    • setMatchedBracketBGColor

      public void setMatchedBracketBGColor(Color color)
      Sets the color used as the background for a matched bracket.
      Parameters:
      color - The color to use. If this is null, then no special background is painted behind a matched bracket.
      See Also:
    • setMatchedBracketBorderColor

      public void setMatchedBracketBorderColor(Color color)
      Sets the color used as the border for a matched bracket.
      Parameters:
      color - The color to use.
      See Also:
    • setPaintMarkOccurrencesBorder

      public void setPaintMarkOccurrencesBorder(boolean paintBorder)
      Toggles whether a border should be painted around marked occurrences.
      Parameters:
      paintBorder - Whether to paint a border.
      See Also:
    • setPaintMatchedBracketPair

      public void setPaintMatchedBracketPair(boolean paintPair)
      Sets whether the bracket at the caret position is painted as a "match" when a matched bracket is found. Note that this property does nothing if isBracketMatchingEnabled() returns false.

      This method fires a property change event of type PAINT_MATCHED_BRACKET_PAIR_PROPERTY.

      Parameters:
      paintPair - Whether both brackets in a bracket pair should be highlighted when bracket matching is enabled.
      See Also:
    • setPaintTabLines

      public void setPaintTabLines(boolean paint)
      Toggles whether tab lines are painted. This method fires a property change event of type TAB_LINES_PROPERTY.
      Parameters:
      paint - Whether tab lines are painted.
      See Also:
    • setParserDelay

      public void setParserDelay(int millis)
      Sets the parser delay. This is the delay that must occur between edits for any registered Parsers to run.
      Parameters:
      millis - The new parser delay, in milliseconds. This must be greater than zero.
      See Also:
    • setRightHandSideCorrection

      public void setRightHandSideCorrection(int rhsCorrection)
      Applications typically have no need to modify this value.

      Workaround for JTextComponents allowing the caret to be rendered entirely off-screen if the entire "previous" character fit entirely.

      Parameters:
      rhsCorrection - The amount of space to add to the x-axis preferred span. This should be non-negative.
      See Also:
    • setSecondaryLanguageBackground

      public void setSecondaryLanguageBackground(int index, Color color)
      Sets the background color to use for a secondary language.
      Parameters:
      index - The language index. Note that these are 1-based, not 0-based, and should be in the range 1-getSecondaryLanguageCount(), inclusive.
      color - The new color, or null for none.
      See Also:
    • setShowMatchedBracketPopup

      public void setShowMatchedBracketPopup(boolean show)
      Sets whether a small popup window should display the text on the line containing a matched bracket whenever a matched bracket is off- screen.
      Parameters:
      show - Whether to show the popup.
      See Also:
    • setSyntaxEditingStyle

      public void setSyntaxEditingStyle(String styleKey)
      Sets what type of syntax highlighting this editor is doing. This method fires a property change of type SYNTAX_STYLE_PROPERTY.
      Parameters:
      styleKey - The syntax editing style to use, for example, SyntaxConstants.SYNTAX_STYLE_NONE or SyntaxConstants.SYNTAX_STYLE_JAVA.
      See Also:
    • setSyntaxScheme

      public void setSyntaxScheme(SyntaxScheme scheme)
      Sets all the colors used in syntax highlighting to the colors specified. This uses a shallow copy of the color scheme so that multiple text areas can share the same color scheme and have their properties changed simultaneously.

      This method fires a property change event of type SYNTAX_SCHEME_PROPERTY.

      Parameters:
      scheme - The instance of SyntaxScheme to use.
      See Also:
    • setTemplateDirectory

      public static boolean setTemplateDirectory(String dir)
      If templates are enabled, all currently-known templates are forgotten and all templates are loaded from all files in the specified directory ending in "*.xml". If templates aren't enabled, nothing happens.
      Parameters:
      dir - The directory containing files ending in extension .xml that contain templates to load.
      Returns:
      true if the load was successful; false if either templates aren't currently enabled or the load failed somehow (most likely, the directory doesn't exist).
      See Also:
    • setTemplatesEnabled

      public static void setTemplatesEnabled(boolean enabled)
      Enables or disables templates.

      Templates are a set of "shorthand identifiers" that you can configure so that you only have to type a short identifier (such as "forb") to insert a larger amount of code into the document, such as:

         for (<caret>) {
      
         }
       
      Templates are a shared resource among all instances of RSyntaxTextArea; that is, templates can only be enabled/disabled for all text areas globally, not individually, and all text areas have access of the same templates. This should not be an issue; rather, it should be beneficial as it promotes uniformity among all text areas in an application.

      For more flexible boilerplate code insertion, consider using the TemplateCompletion class in the AutoComplete add-on library.

      Parameters:
      enabled - Whether templates should be enabled.
      See Also:
    • setTabLineColor

      public void setTabLineColor(Color c)
      Sets the color use to paint tab lines. This method fires a property change event of type TAB_LINE_COLOR_PROPERTY.
      Parameters:
      c - The color. If this value is null, the default (gray) is used.
      See Also:
    • setUseFocusableTips

      public void setUseFocusableTips(boolean use)
      Sets whether "focusable" tool tips are used instead of standard ones. Focusable tool tips are tool tips that the user can click on, resize, copy from, and clink links in. This method fires a property change event of type FOCUSABLE_TIPS_PROPERTY.
      Parameters:
      use - Whether to use focusable tool tips.
      See Also:
    • setUseSelectedTextColor

      public void setUseSelectedTextColor(boolean use)
      Sets whether selected text should use the "selected text color" property (set via JTextComponent.setSelectedTextColor(Color)). This is the typical behavior of text components. By default, RSyntaxTextArea does not do this, so that token styles are visible even in selected regions of text. This method fires a property change event of type USE_SELECTED_TEXT_COLOR_PROPERTY.
      Parameters:
      use - Whether to use the "selected text" color when painting text in selected regions.
      See Also:
    • setWhitespaceVisible

      public void setWhitespaceVisible(boolean visible)
      Sets whether whitespace is visible. This method fires a property change of type VISIBLE_WHITESPACE_PROPERTY.
      Parameters:
      visible - Whether whitespace should be visible.
      See Also:
    • stopScanningForLinks

      private void stopScanningForLinks()
      Resets the editor state after the user clicks on a hyperlink or releases the hyperlink modifier.
    • undoLastAction

      public void undoLastAction()
      Description copied from class: RTextArea
      Attempt to undo an "action" done in this text area.
      Overrides:
      undoLastAction in class RTextArea
      See Also:
    • viewToToken

      public Token viewToToken(Point p)
      Returns the token at the specified position in the view.
      Parameters:
      p - The position in the view.
      Returns:
      The token, or null if no token is at that position.
      See Also: