Class InsertLineAction

All Implemented Interfaces:
IAction, IUpdate

public class InsertLineAction extends TextEditorAction
This action implements smart return. Instead of breaking the line where we are, we do the following:

Smart Enter

  • if the caret is on a line containing any non-whitespace, a line is inserted below the current one and the caret moved to it,
  • if the caret is on a whitespace-only line, a line is inserted below the current line, but the caret stays in its position.

Smart Enter Inverse

  • if the caret is on a line containing any non-whitespace, we insert a line above the current one and move the caret to it (i.e. it stays at the same offset in the widget),
  • if the caret is on a whitespace-only line, a line is inserted above the current line, but the caret stays in its logical position (i.e., it gets shifted one line down in the document, but keeps its position relative to the content following the caret).
Since:
3.0
  • Field Details

    • fAbove

      protected boolean fAbove
      true if this action inserts a line above the current (Smart Enter Inverse), false otherwise
  • Constructor Details

    • InsertLineAction

      public InsertLineAction(ResourceBundle bundle, String prefix, ITextEditor textEditor, boolean above)
      Creates a new smart enter action.
      Parameters:
      bundle - the resource bundle
      prefix - the prefix to use to get properties from bundle
      textEditor - the editor that the action acts upon
      above - whether new lines are inserted above or below the caret's line.
  • Method Details

    • update

      public void update()
      Description copied from class: TextEditorAction
      Always enables this action if it is connected to a text editor. If the associated editor is null, the action is disabled. Subclasses may override.
      Specified by:
      update in interface IUpdate
      Overrides:
      update in class TextEditorAction
    • run

      public void run()
      Description copied from class: Action
      The default implementation of this IAction method does nothing. Subclasses should override this method if they do not need information from the triggering event, or override runWithEvent(Event) if they do.
      Specified by:
      run in interface IAction
      Overrides:
      run in class Action
      See Also: