org.eclipse.xtext.ui.editor
Class XtextEditor.SmartLineStartAction

java.lang.Object
  extended by org.eclipse.core.commands.common.EventManager
      extended by org.eclipse.jface.action.AbstractAction
          extended by org.eclipse.jface.action.Action
              extended by org.eclipse.ui.texteditor.TextNavigationAction
                  extended by org.eclipse.xtext.ui.editor.XtextEditor.SmartLineStartAction
All Implemented Interfaces:
org.eclipse.jface.action.IAction
Enclosing class:
XtextEditor

protected class XtextEditor.SmartLineStartAction
extends org.eclipse.ui.texteditor.TextNavigationAction

This action implements smart home. Instead of going to the start of a line it does the following: - if smart home/end is enabled and the caret is after the line's first non-whitespace then the caret is moved directly before it, taking comments into account. - if the caret is before the line's first non-whitespace the caret is moved to the beginning of the line - if the caret is at the beginning of the line see first case.


Field Summary
 
Fields inherited from interface org.eclipse.jface.action.IAction
AS_CHECK_BOX, AS_DROP_DOWN_MENU, AS_PUSH_BUTTON, AS_RADIO_BUTTON, AS_UNSPECIFIED, CHECKED, DESCRIPTION, ENABLED, HANDLED, IMAGE, RESULT, TEXT, TOOL_TIP_TEXT
 
Constructor Summary
XtextEditor.SmartLineStartAction(org.eclipse.swt.custom.StyledText textWidget, boolean doSelect)
          Creates a new smart line start action
 
Method Summary
protected  int getLineStartPosition(org.eclipse.jface.text.IDocument document, java.lang.String line, int length, int offset)
          Computes the offset of the line start position.
 
Methods inherited from class org.eclipse.ui.texteditor.TextNavigationAction
addPropertyChangeListener, fireSelectionChanged, fireSelectionChanged, getAccelerator, getDescription, getDisabledImageDescriptor, getHelpListener, getHoverImageDescriptor, getImageDescriptor, getMenuCreator, getStyle, getText, getTextWidget, getToolTipText, isChecked, isEnabled, removePropertyChangeListener, runWithEvent, setAccelerator, setChecked, setDescription, setDisabledImageDescriptor, setEnabled, setHelpListener, setHoverImageDescriptor, setImageDescriptor, setMenuCreator, setText, setToolTipText
 
Methods inherited from class org.eclipse.jface.action.Action
convertAccelerator, convertAccelerator, findKeyCode, findKeyString, findModifier, findModifierString, getActionDefinitionId, getId, isHandled, notifyResult, removeAcceleratorText, removeMnemonics, setActionDefinitionId, setId
 
Methods inherited from class org.eclipse.jface.action.AbstractAction
firePropertyChange, firePropertyChange
 
Methods inherited from class org.eclipse.core.commands.common.EventManager
addListenerObject, clearListeners, getListeners, isListenerAttached, removeListenerObject
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

XtextEditor.SmartLineStartAction

public XtextEditor.SmartLineStartAction(org.eclipse.swt.custom.StyledText textWidget,
                                        boolean doSelect)
Creates a new smart line start action

Parameters:
textWidget - the styled text widget
doSelect - a boolean flag which tells if the text up to the beginning of the line should be selected
Method Detail

getLineStartPosition

protected int getLineStartPosition(org.eclipse.jface.text.IDocument document,
                                   java.lang.String line,
                                   int length,
                                   int offset)
Computes the offset of the line start position.

Parameters:
document - the document where to compute the line start position
line - the line to determine the start position of
length - the length of the line
offset - the caret position in the document
Returns:
the offset of the line start