Class CodeEditorBase

  • All Implemented Interfaces:
    java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible
    Direct Known Subclasses:
    UILibraryHelper.CodeArea

    public class CodeEditorBase
    extends javax.swing.JPanel
    This is the base class for all code editing controls.
    Since:
    3.4
    Author:
    Chris Jennings
    See Also:
    Serialized Form
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static interface  CodeEditorBase.PopupMenuBuilder
      Interface implemented by code editor users to create custom popup menus.
      static class  CodeEditorBase.Result
      The result of a search or replace operation.
      • Nested classes/interfaces inherited from class javax.swing.JPanel

        javax.swing.JPanel.AccessibleJPanel
      • Nested classes/interfaces inherited from class javax.swing.JComponent

        javax.swing.JComponent.AccessibleJComponent
      • Nested classes/interfaces inherited from class java.awt.Container

        java.awt.Container.AccessibleAWTContainer
      • Nested classes/interfaces inherited from class java.awt.Component

        java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
    • Field Summary

      • Fields inherited from class javax.swing.JComponent

        listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
      • Fields inherited from class java.awt.Component

        accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
      • Fields inherited from interface java.awt.image.ImageObserver

        ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
    • Constructor Summary

      Constructors 
      Constructor Description
      CodeEditorBase()
      Creates a new code editor control.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addCaretListener​(javax.swing.event.CaretListener listener)  
      void addDocumentListener​(javax.swing.event.DocumentListener listener)  
      void addFocusListener​(java.awt.event.FocusListener listener)  
      void addKeyBinding​(java.lang.String keyStroke, java.awt.event.ActionListener action)
      Add a key binding to trigger an editor action.
      void addKeyBinding​(java.lang.String keyStroke, java.lang.Runnable action)
      Add a key binding using a string description of the key.
      void addKeyBinding​(java.lang.String keyStroke, java.lang.String action)
      Add a key binding to trigger an editor action.
      void addKeyBinding​(java.lang.String keyStroke, javax.swing.Action action)
      Add a key binding to trigger an editor action.
      void addKeyBinding​(javax.swing.KeyStroke ks, java.awt.event.ActionListener action)
      Add a key binding to trigger an editor action.
      void addKeyBinding​(javax.swing.KeyStroke keyStroke, java.lang.Runnable action)
      Add a key binding to trigger an editor action.
      void addKeyBinding​(javax.swing.KeyStroke ks, java.lang.String action)
      Add a key binding to trigger an editor action.
      void addKeyBinding​(javax.swing.KeyStroke ks, javax.swing.Action action)
      Add a key binding to trigger an editor action.
      protected void addKeyBindings()  
      void beginCompoundEdit()
      Begins a sequence of zero or more document edits that will be treated as a single action when undoing and redoing.
      CodeEditorBase.Result beginSearch​(java.lang.String pattern, boolean matchCase, boolean wholeWord, boolean regexp, boolean wrap)
      Begins a search of the document.
      boolean canPerformAction​(java.lang.String actionName)  
      boolean canRedo()
      Returns whether there is an undone edit can currently be redone.
      boolean canUndo()
      Returns whether there are edits that can be undone.
      void clearUndoHistory()
      Clears the undo history, making undo impossible until another edit occurs.
      void endCompoundEdit()
      Ends a previously started compound edit operation.
      void endSearch()
      Ends the current search, if any.
      CodeEditorBase.Result findNext​(boolean forward)
      Searches for the next match of the current search.
      AbbreviationTable getAbbreviationTable()
      Returns the current abbreviation table for this editor.
      javax.swing.Action getAction​(java.lang.String actionName)
      Returns a named editor action.
      javax.swing.Action[] getActions()  
      int getCaretLine()
      Returns the line number of the text insertion caret.
      int getCaretOffsetFromLineStart()
      Returns the offset of the text insertion caret from the start of its line.
      int getCaretPosition()
      Returns the position of the text insertion caret for the text component.
      CodeSupport getCodeSupport()
      Returns the currently installed code support.
      CodeType getCodeType()
      Returns the code type used for syntax highlighting and related features.
      javax.swing.text.Document getDocument()
      Returns the edited document.
      java.io.File getFile()
      Returns the file associated with this editor, if any.
      int getFirstDisplayedLine()
      Returns the line number of the line at the top of the view.
      java.awt.Font getFont()  
      int getLength()
      Returns the document length, in characters.
      int getLineCount()
      Returns the number of lines in the document.
      int getLineEndOffset​(int line)
      Returns the document offset at which the specified line ends.
      int getLineLength​(int line)
      Returns the length of the specified line.
      int getLineOfOffset​(int offset)
      Returns the zero-based line number of the specified document offset.
      int getLineStartOffset​(int line)
      Returns the document offset at which the specified line begins.
      java.lang.String getLineText()
      Returns the text of the current line, that is, the line containing the caret.
      java.lang.String getLineText​(int line)
      Returns the text of the specified line.
      int getMarkPosition()
      Returns the position of the mark for the text component.
      CodeEditorBase.PopupMenuBuilder getPopupMenuBuilder()
      Returns the popup menu builder, which can customize the popup menu before it is displayed.
      java.lang.String[] getSelectedLineText​(boolean doNotIncludeLineIfCaretAtStart)
      Returns the selected lines as an array of strings.
      java.lang.String getSelectedText()
      Returns the currently selected text.
      int getSelectionEnd()
      Returns the selected text's end position.
      int getSelectionEndLine()
      Returns the line of the selection end.
      int getSelectionStart()
      Returns the selected text's start position.
      int getSelectionStartLine()
      Returns the line of the selection start.
      java.lang.String getText()
      Returns the contents of the editor.
      java.lang.String getText​(int start, int length)
      Returns the text of the specified document region.
      java.lang.String getTextRange​(int start, int end)
      Returns the text of the document region specified by two offsets.
      boolean hasSelection()
      Returns true if the editor currently has a selection.
      void insert​(java.lang.String text, int offset)
      Inserts the specified text at the given offset.
      boolean isCodeFoldingEnabled()
      Returns whether or not code folding is enabled for supported code types.
      boolean isContentFeedbackVisible()
      Sets whether feedback on the document content is visible.
      boolean isEditable()
      Returns whether this editor is editable.
      boolean isNumberLineVisible()
      Returns whether line numbers are shown.
      boolean isWhitespaceVisible()
      Returns whether white space should be visible.
      static javax.swing.KeyStroke parseKeyStroke​(java.lang.String keyStroke)
      Converts a string to a single key stroke.
      boolean performAction​(java.lang.String actionName)  
      void redo()
      Redoes the most recently undone edit.
      void removeCaretListener​(javax.swing.event.CaretListener listener)  
      void removeDocumentListener​(javax.swing.event.DocumentListener listener)  
      void removeFocusListener​(java.awt.event.FocusListener listener)  
      CodeEditorBase.Result replaceAll​(java.lang.String replacement)
      Replaces all occurrences of the current search.
      CodeEditorBase.Result replaceNext​(boolean forward, java.lang.String replacement)
      Replaces the next match of the current search.
      void replaceRange​(java.lang.String text, int start, int end)
      Replaces the specified text range with new text.
      void replaceSelection​(java.lang.String text)
      Replaces the selection with new text.
      void requestFocus()  
      boolean requestFocus​(boolean temporary)  
      void requestFocus​(java.awt.event.FocusEvent.Cause cause)  
      boolean requestFocusInWindow()  
      boolean requestFocusInWindow​(java.awt.event.FocusEvent.Cause cause)  
      void scrollToLine​(int line)
      Scroll the editor view to display the specified line.
      void scrollToOffset​(int offset)
      Scroll the editor view to display the specified offset.
      void select​(int start, int end)
      Sets the current selection range.
      void selectAll()
      Selects the entire document.
      void setAbbreviationTable​(AbbreviationTable table)
      Sets the abbreviation table for this editor, replacing any default table determined by the code type.
      void setCaretLine​(int line)
      Moves the caret to the start of the specified line.
      void setCaretPosition​(int offset)
      Sets the position of the text insertion caret for the text component.
      void setCodeFoldingEnabled​(boolean enable)
      Sets whether or not code folding is enabled for supported code types.
      void setCodeSupport​(CodeSupport support)
      Installs code editing support.
      void setCodeType​(CodeType type)
      Changes the code type used for syntax highlighting and enables any additional support features that are available for the language.
      void setCodeType​(CodeType type, boolean enableAdvancedFeatures)
      Changes the code type used for syntax highlighting.
      void setContentFeedbackVisible​(boolean visible)
      Sets whether feedback on the document content, such as icons marking rows with errors, is visible.
      void setEditable​(boolean editable)
      Sets whether this editor should be editable.
      void setFile​(java.io.File file)
      Associates the contents of the editor with a file.
      void setFont​(java.awt.Font font)  
      void setInitialText​(java.lang.String text)
      Sets the initial contents of the editor.
      void setMarkPosition​(int offset)
      Sets the position of the mark for the text component.
      void setNumberLineVisible​(boolean visible)
      Sets whether line numbers are shown.
      void setPopupMenuBuilder​(CodeEditorBase.PopupMenuBuilder pmb)
      Sets a popup menu builder, which can customize the popup menu before it is displayed.
      void setSelectedLineText​(java.lang.String[] lines)
      Replaces the selection with the lines in the provided array.
      void setSelectedText​(java.lang.String text)
      Replaces the selection with the specified text, selecting the new text.
      void setText​(java.lang.String text)
      Sets the contents of the editor.
      void setWhitespaceVisible​(boolean visible)
      Sets whether white space should be visible.
      void type​(javax.swing.KeyStroke keyStroke)
      Simulates pressing the specified key in the editor.
      void undo()
      Undoes the most recent edit.
      • Methods inherited from class javax.swing.JPanel

        getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
      • Methods inherited from class javax.swing.JComponent

        addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
      • Methods inherited from class java.awt.Container

        add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree
      • Methods inherited from class java.awt.Component

        action, add, addComponentListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • CodeEditorBase

        public CodeEditorBase()
        Creates a new code editor control.
    • Method Detail

      • addKeyBindings

        protected void addKeyBindings()
      • requestFocus

        public void requestFocus()
        Overrides:
        requestFocus in class javax.swing.JComponent
      • requestFocus

        public void requestFocus​(java.awt.event.FocusEvent.Cause cause)
        Overrides:
        requestFocus in class java.awt.Component
      • requestFocus

        public boolean requestFocus​(boolean temporary)
        Overrides:
        requestFocus in class javax.swing.JComponent
      • requestFocusInWindow

        public boolean requestFocusInWindow()
        Overrides:
        requestFocusInWindow in class javax.swing.JComponent
      • requestFocusInWindow

        public boolean requestFocusInWindow​(java.awt.event.FocusEvent.Cause cause)
        Overrides:
        requestFocusInWindow in class java.awt.Component
      • addDocumentListener

        public final void addDocumentListener​(javax.swing.event.DocumentListener listener)
      • removeDocumentListener

        public final void removeDocumentListener​(javax.swing.event.DocumentListener listener)
      • addCaretListener

        public final void addCaretListener​(javax.swing.event.CaretListener listener)
      • removeCaretListener

        public final void removeCaretListener​(javax.swing.event.CaretListener listener)
      • addFocusListener

        public final void addFocusListener​(java.awt.event.FocusListener listener)
        Overrides:
        addFocusListener in class java.awt.Component
      • removeFocusListener

        public final void removeFocusListener​(java.awt.event.FocusListener listener)
        Overrides:
        removeFocusListener in class java.awt.Component
      • getFont

        public java.awt.Font getFont()
        Specified by:
        getFont in interface java.awt.MenuContainer
        Overrides:
        getFont in class java.awt.Component
      • setFont

        public void setFont​(java.awt.Font font)
        Overrides:
        setFont in class javax.swing.JComponent
      • getAction

        public javax.swing.Action getAction​(java.lang.String actionName)
        Returns a named editor action.
        Parameters:
        actionName - the name of the action to return
        Returns:
        the action matching the name, or null
      • getActions

        public javax.swing.Action[] getActions()
      • canPerformAction

        public boolean canPerformAction​(java.lang.String actionName)
      • performAction

        public boolean performAction​(java.lang.String actionName)
      • setAbbreviationTable

        public void setAbbreviationTable​(AbbreviationTable table)
        Sets the abbreviation table for this editor, replacing any default table determined by the code type.
        Parameters:
        table - the new table, or null to disable abbreviations
      • getAbbreviationTable

        public AbbreviationTable getAbbreviationTable()
        Returns the current abbreviation table for this editor.
        Returns:
        the current table, or null if none is set
      • getDocument

        public final javax.swing.text.Document getDocument()
        Returns the edited document.
        Returns:
        the document object
      • addKeyBinding

        public void addKeyBinding​(java.lang.String keyStroke,
                                  java.lang.Runnable action)
        Add a key binding using a string description of the key.
        Parameters:
        keyStroke - the key stroke that should trigger the action
        action - the action to perform
      • addKeyBinding

        public void addKeyBinding​(javax.swing.KeyStroke keyStroke,
                                  java.lang.Runnable action)
        Add a key binding to trigger an editor action.
        Parameters:
        keyStroke - the key stroke that should trigger the action
        action - the action to perform
      • addKeyBinding

        public void addKeyBinding​(java.lang.String keyStroke,
                                  java.awt.event.ActionListener action)
        Add a key binding to trigger an editor action.
        Parameters:
        keyStroke - the key stroke that should trigger the action
        action - the action to perform
      • addKeyBinding

        public void addKeyBinding​(javax.swing.KeyStroke ks,
                                  java.awt.event.ActionListener action)
        Add a key binding to trigger an editor action.
        Parameters:
        keyStroke - the key stroke that should trigger the action
        action - the action to perform
      • addKeyBinding

        public void addKeyBinding​(java.lang.String keyStroke,
                                  javax.swing.Action action)
        Add a key binding to trigger an editor action.
        Parameters:
        keyStroke - the key stroke that should trigger the action
        action - the action to perform
      • addKeyBinding

        public void addKeyBinding​(javax.swing.KeyStroke ks,
                                  javax.swing.Action action)
        Add a key binding to trigger an editor action.
        Parameters:
        keyStroke - the key stroke that should trigger the action
        action - the action to perform
      • addKeyBinding

        public void addKeyBinding​(java.lang.String keyStroke,
                                  java.lang.String action)
        Add a key binding to trigger an editor action.
        Parameters:
        keyStroke - the key stroke that should trigger the action
        action - the name of the action to perform, which must be in the action map
      • addKeyBinding

        public void addKeyBinding​(javax.swing.KeyStroke ks,
                                  java.lang.String action)
        Add a key binding to trigger an editor action.
        Parameters:
        keyStroke - the key stroke that should trigger the action
        action - the name of the action to perform, which must be in the action map
      • setCodeType

        public void setCodeType​(CodeType type)
        Changes the code type used for syntax highlighting and enables any additional support features that are available for the language.
        Parameters:
        type - the new type of code being edited; if null, PLAIN type is used
      • setCodeType

        public void setCodeType​(CodeType type,
                                boolean enableAdvancedFeatures)
        Changes the code type used for syntax highlighting. If advanced editing features are requested, the editor may also install additional features such as code completion and syntax checking, where supported. Otherwise, only basic syntax highlighting is provided.
        Parameters:
        type - the new type of code being edited; if null, PLAIN type is used
        enableAdvancedFeatures - if true, enables additional high-level language support where available; if false, provides only basic syntax highlighting support
      • getCodeType

        public CodeType getCodeType()
        Returns the code type used for syntax highlighting and related features.
        Returns:
        the type of code being edited
      • setCodeSupport

        public final void setCodeSupport​(CodeSupport support)
        Installs code editing support. A default support package is installed by setting the code type, but this can be used to install custom support.
        Parameters:
        support - the code support to apply to the editor
      • getCodeSupport

        public final CodeSupport getCodeSupport()
        Returns the currently installed code support.
        Returns:
        the installed code support
      • setFile

        public void setFile​(java.io.File file)
        Associates the contents of the editor with a file. The editor itself does not use this information, but an attached code support may use this information to offer advanced editing support.
        Parameters:
        file - the new, or null to remove any prior association
      • getFile

        public java.io.File getFile()
        Returns the file associated with this editor, if any.
        Returns:
        the associated file, or null
      • setEditable

        public void setEditable​(boolean editable)
        Sets whether this editor should be editable. If false, the editor is read-only.
        Parameters:
        editable - whether to allow modifications to the document
      • isEditable

        public boolean isEditable()
        Returns whether this editor is editable. If false, the editor is read-only.
        Returns:
        whether the editor allows modifications
      • setInitialText

        public void setInitialText​(java.lang.String text)
        Sets the initial contents of the editor. This treats the text as if it were the initial content of a new editor (for example, as if editing a newly opened file). It is similar to calling setText(java.lang.String) except that the caret is moved to the start of the document and the undo history is cleared.
        Parameters:
        text - the text to set
      • setText

        public void setText​(java.lang.String text)
        Sets the contents of the editor.
        Parameters:
        text - the new text to edit
      • getText

        public java.lang.String getText()
        Returns the contents of the editor.
        Returns:
        the edited text
      • getText

        public java.lang.String getText​(int start,
                                        int length)
        Returns the text of the specified document region.
        Parameters:
        start - the start offset
        length - the length of the desired region
        Returns:
        the text in the specified range
      • getTextRange

        public java.lang.String getTextRange​(int start,
                                             int end)
        Returns the text of the document region specified by two offsets.
        Parameters:
        start - the start offset
        end - the end offset
        Returns:
        the text between the two offsets, inclusive
      • getLineText

        public java.lang.String getLineText​(int line)
        Returns the text of the specified line.
        Parameters:
        line - the zero-based line
        Returns:
        the line text
      • getLineText

        public java.lang.String getLineText()
        Returns the text of the current line, that is, the line containing the caret.
        Returns:
        the line text
      • getLineLength

        public int getLineLength​(int line)
        Returns the length of the specified line.
        Parameters:
        line - the zero-based line number
        Returns:
        the line length in characters
      • getSelectedText

        public java.lang.String getSelectedText()
        Returns the currently selected text.
        Returns:
        the current selection, or an empty string if there is none
      • setSelectedText

        public void setSelectedText​(java.lang.String text)
        Replaces the selection with the specified text, selecting the new text.
        Parameters:
        text - the text to insert
      • getSelectedLineText

        public java.lang.String[] getSelectedLineText​(boolean doNotIncludeLineIfCaretAtStart)
        Returns the selected lines as an array of strings.
        Parameters:
        doNotIncludeLineIfCaretAtStart - if the selection ends at offset 0 within a line (i.e., it immediately follows a newline), then the line that includes the selection end will not be included
        Returns:
        an array of strings, where each string is one line of the selection
      • setSelectedLineText

        public void setSelectedLineText​(java.lang.String[] lines)
        Replaces the selection with the lines in the provided array.
        Parameters:
        lines - the lines of text, one per line per element
      • insert

        public void insert​(java.lang.String text,
                           int offset)
        Inserts the specified text at the given offset.
        Parameters:
        text - the text to insert
        offset - the document offset
      • replaceSelection

        public void replaceSelection​(java.lang.String text)
        Replaces the selection with new text. If there is no selection, inserts text at the caret position.
        Parameters:
        text - the text to insert
      • replaceRange

        public void replaceRange​(java.lang.String text,
                                 int start,
                                 int end)
        Replaces the specified text range with new text.
        Parameters:
        text - the text to insert
        start - the start offset of the range to replace
        end - the end offset of the range to replace
      • getLength

        public int getLength()
        Returns the document length, in characters.
        Returns:
        the number of characters in the document
      • getSelectionStart

        public int getSelectionStart()
        Returns the selected text's start position. Returns 0 for an empty document, or the value of dot if no selection.
        Returns:
        the selection start offset
      • getSelectionEnd

        public int getSelectionEnd()
        Returns the selected text's end position. Returns 0 if the document is empty, or the value of dot if there is no selection.
        Returns:
        the selection end offset
      • getSelectionStartLine

        public int getSelectionStartLine()
        Returns the line of the selection start.
        Returns:
        the selection start line
      • getSelectionEndLine

        public int getSelectionEndLine()
        Returns the line of the selection end.
        Returns:
        the selection end line
      • select

        public void select​(int start,
                           int end)
        Sets the current selection range. If the start and end are the same, any current selection will be cleared.
        Parameters:
        start - the start offset
        end - the end offset
      • selectAll

        public void selectAll()
        Selects the entire document.
      • hasSelection

        public boolean hasSelection()
        Returns true if the editor currently has a selection.
      • beginCompoundEdit

        public void beginCompoundEdit()
        Begins a sequence of zero or more document edits that will be treated as a single action when undoing and redoing. This should always be used in a try-finally block with the finally clause calling endCompoundEdit().
      • endCompoundEdit

        public void endCompoundEdit()
        Ends a previously started compound edit operation.
      • canUndo

        public boolean canUndo()
        Returns whether there are edits that can be undone.
      • undo

        public void undo()
        Undoes the most recent edit.
      • canRedo

        public boolean canRedo()
        Returns whether there is an undone edit can currently be redone.
      • redo

        public void redo()
        Redoes the most recently undone edit.
      • clearUndoHistory

        public void clearUndoHistory()
        Clears the undo history, making undo impossible until another edit occurs.
      • getLineCount

        public int getLineCount()
        Returns the number of lines in the document.
      • getLineOfOffset

        public int getLineOfOffset​(int offset)
        Returns the zero-based line number of the specified document offset.
        Parameters:
        offset - the offset from the document start
        Returns:
        the line number containing that offset
      • getLineStartOffset

        public int getLineStartOffset​(int line)
        Returns the document offset at which the specified line begins.
        Parameters:
        line - the zero-based line number
        Returns:
        the line start offset
      • getLineEndOffset

        public int getLineEndOffset​(int line)
        Returns the document offset at which the specified line ends.
        Parameters:
        line - the zero-based line number
        Returns:
        the line end offset
      • getCaretPosition

        public int getCaretPosition()
        Returns the position of the text insertion caret for the text component.
        Returns:
        the position of the text insertion caret for the text component ≥ 0
      • setCaretPosition

        public void setCaretPosition​(int offset)
        Sets the position of the text insertion caret for the text component.
        Parameters:
        offset - the new caret position, from 0 to the document length
      • getMarkPosition

        public int getMarkPosition()
        Returns the position of the mark for the text component. This is the end of the selection that is opposite the caret.
        Returns:
        the position of the mark for the text component ≥ 0
      • setMarkPosition

        public void setMarkPosition​(int offset)
        Sets the position of the mark for the text component.
        Parameters:
        offset - the position of the mark for the text component ≥ 0
      • getCaretLine

        public int getCaretLine()
        Returns the line number of the text insertion caret.
        Returns:
        the line number ≥ 0
      • setCaretLine

        public void setCaretLine​(int line)
        Moves the caret to the start of the specified line.
        Parameters:
        line - the zero-based line number
      • getCaretOffsetFromLineStart

        public int getCaretOffsetFromLineStart()
        Returns the offset of the text insertion caret from the start of its line.
        Returns:
        the offset of the text insertion caret from the line start offset ≥ 0
      • getFirstDisplayedLine

        public int getFirstDisplayedLine()
        Returns the line number of the line at the top of the view.
        Returns:
        the first visible line ≥ 0
      • scrollToLine

        public void scrollToLine​(int line)
        Scroll the editor view to display the specified line.
        Parameters:
        line - the line number ≥ 0
      • scrollToOffset

        public void scrollToOffset​(int offset)
        Scroll the editor view to display the specified offset.
        Parameters:
        offset - the offset to scroll into view
      • setWhitespaceVisible

        public void setWhitespaceVisible​(boolean visible)
        Sets whether white space should be visible.
        Parameters:
        visible - if true, white space is rendered as symbols
        See Also:
        isWhitespaceVisible()
      • isWhitespaceVisible

        public boolean isWhitespaceVisible()
        Returns whether white space should be visible.
        Returns:
        true if white space is rendered as symbols
        See Also:
        setWhitespaceVisible(boolean)
      • setNumberLineVisible

        public void setNumberLineVisible​(boolean visible)
        Sets whether line numbers are shown.
        Parameters:
        visible - if true, lines are numbered
        See Also:
        isNumberLineVisible()
      • isNumberLineVisible

        public boolean isNumberLineVisible()
        Returns whether line numbers are shown.
        Returns:
        true if lines are numbered
        See Also:
        setNumberLineVisible(boolean)
      • setContentFeedbackVisible

        public void setContentFeedbackVisible​(boolean visible)
        Sets whether feedback on the document content, such as icons marking rows with errors, is visible.
        Parameters:
        visible - if true, feedback will be visible
        See Also:
        isContentFeedbackVisible()
      • isContentFeedbackVisible

        public boolean isContentFeedbackVisible()
        Sets whether feedback on the document content is visible.
        Returns:
        true if feedback is visible
        See Also:
        setContentFeedbackVisible(boolean)
      • setCodeFoldingEnabled

        public void setCodeFoldingEnabled​(boolean enable)
        Sets whether or not code folding is enabled for supported code types.
        Parameters:
        enable - if true, code blocks can be hidden by clicking the fold control in the margin
        See Also:
        isCodeFoldingEnabled()
      • isCodeFoldingEnabled

        public boolean isCodeFoldingEnabled()
        Returns whether or not code folding is enabled for supported code types.
        Returns:
        true if code blocks can be hidden by clicking the fold control in the margin
        See Also:
        setCodeFoldingEnabled(boolean)
      • setPopupMenuBuilder

        public void setPopupMenuBuilder​(CodeEditorBase.PopupMenuBuilder pmb)
        Sets a popup menu builder, which can customize the popup menu before it is displayed.
        Parameters:
        pmb - the menu builder to set, or null to use a default menu
      • getPopupMenuBuilder

        public CodeEditorBase.PopupMenuBuilder getPopupMenuBuilder()
        Returns the popup menu builder, which can customize the popup menu before it is displayed.
        Returns:
        the menu builder, or null if none is set
      • type

        public void type​(javax.swing.KeyStroke keyStroke)
        Simulates pressing the specified key in the editor.
        Parameters:
        keyStroke - the non-null key to simulate
      • beginSearch

        public CodeEditorBase.Result beginSearch​(java.lang.String pattern,
                                                 boolean matchCase,
                                                 boolean wholeWord,
                                                 boolean regexp,
                                                 boolean wrap)
        Begins a search of the document. When a new search is started or the parameters of an ongoing search are changed, this will restart searching from the current position, selecting the initial match if any. In this case, the method will return a CodeEditorBase.Result that describes the initial match (or no match if none occurs). If this is called with the same parameters as an ongoing search, null is returned and no initial search is performed. (A return value of null does not, therefore, mean that there are no matches.)
        Parameters:
        pattern - the pattern to search for
        matchCase - true if the search should be case sensitive
        wholeWord - true to match only whole words
        regexp - true if the pattern is a regular expression
        wrap - true if the search should wrap around the document start or end
      • findNext

        public CodeEditorBase.Result findNext​(boolean forward)
        Searches for the next match of the current search.
        Parameters:
        forward - if true, searches forward through the document; else backward
        Returns:
        the result of the search operation
      • replaceNext

        public CodeEditorBase.Result replaceNext​(boolean forward,
                                                 java.lang.String replacement)
        Replaces the next match of the current search.
        Parameters:
        forward - if true, searches forward through the document; else backward
        replacement - the string to replace the next match with
        Returns:
        the result of the search operation
      • replaceAll

        public CodeEditorBase.Result replaceAll​(java.lang.String replacement)
        Replaces all occurrences of the current search.
        Parameters:
        replacement - the string to replace all occurrences with
        Returns:
        the result of the search operation
      • endSearch

        public void endSearch()
        Ends the current search, if any.
      • parseKeyStroke

        public static javax.swing.KeyStroke parseKeyStroke​(java.lang.String keyStroke)
        Converts a string to a single key stroke. The string may use one of two formats: the verbose format use by the KeyStroke class, or a compact format that requires less typing. The compact format uses the form [modifiers*+]key. Here,modifiers represents a sequence of one or more modifier keys. Each modifier is represented by a single letter:

        P Platform-specific menu accelerator key (Control on most platforms; Command on OS X)
        M Meta (Command)
        C Control
        A Alt
        S Shift
        G AltGr (not recommended for shortcut keys)

        Examples:
        HOME
        ctrl X
        ctrl alt DELETE
        C+X
        CA+DELETE

        Parameters:
        keyStroke - the string description of the key stroke, in one of the two supported formats
        Returns:
        a KeyStroke for the string description, or null