org.eclipse.xtext.ui.editor.toggleComments
Class ToggleSLCommentAction
java.lang.Object
org.eclipse.core.commands.common.EventManager
org.eclipse.jface.action.AbstractAction
org.eclipse.jface.action.Action
org.eclipse.ui.texteditor.ResourceAction
org.eclipse.ui.texteditor.TextEditorAction
org.eclipse.xtext.ui.editor.toggleComments.ToggleSLCommentAction
- All Implemented Interfaces:
- org.eclipse.jface.action.IAction, org.eclipse.ui.texteditor.IUpdate
- Direct Known Subclasses:
- RichStringAwareToggleCommentAction
public class ToggleSLCommentAction
- extends org.eclipse.ui.texteditor.TextEditorAction
This implementation has been copied from org.eclipse.jdt.internal.ui.javaeditor.ToggleCommentAction.
- Author:
- Sebastian Zarnekow - Initial contribution and API
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 |
ToggleSLCommentAction(java.util.ResourceBundle bundle,
java.lang.String prefix,
org.eclipse.ui.texteditor.ITextEditor editor)
Creates and initializes the action for the given text editor. |
Method Summary |
void |
configure(org.eclipse.jface.text.source.ISourceViewer sourceViewer,
org.eclipse.jface.text.source.SourceViewerConfiguration configuration)
|
protected java.lang.String |
getDocumentPartitioning()
|
protected int |
getFirstCompleteLineOfRegion(org.eclipse.jface.text.IRegion region,
org.eclipse.jface.text.IDocument document)
Returns the index of the first line whose start offset is in the given text range. |
protected org.eclipse.jface.text.ITextOperationTarget |
getOperationTarget()
|
protected java.util.Map<java.lang.String,java.lang.String[]> |
getPrefixesMap()
|
protected org.eclipse.jface.text.IRegion |
getTextBlockFromSelection(org.eclipse.jface.text.ITextSelection selection,
org.eclipse.jface.text.IDocument document)
Creates a region describing the text block (something that starts at
the beginning of a line) completely containing the current selection. |
protected boolean |
isBlockCommented(int startLine,
int endLine,
java.lang.String[] prefixes,
org.eclipse.jface.text.IDocument document)
Determines whether each line is prefixed by one of the prefixes. |
protected boolean |
isSelectionCommented(org.eclipse.jface.viewers.ISelection selection)
Is the given selection single-line commented? |
void |
run()
Implementation of the IAction prototype. |
void |
setEditor(org.eclipse.ui.texteditor.ITextEditor editor)
|
void |
update()
Implementation of the IUpdate prototype method discovers
the operation through the current editor's
ITextOperationTarget adapter, and sets the enabled state
accordingly. |
Methods inherited from class org.eclipse.ui.texteditor.TextEditorAction |
canModifyEditor, getTextEditor, validateEditorInputState |
Methods inherited from class org.eclipse.ui.texteditor.ResourceAction |
getString, initialize, setHelpContextId |
Methods inherited from class org.eclipse.jface.action.Action |
convertAccelerator, convertAccelerator, findKeyCode, findKeyString, findModifier, findModifierString, getAccelerator, getActionDefinitionId, getDescription, getDisabledImageDescriptor, getHelpListener, getHoverImageDescriptor, getId, getImageDescriptor, getMenuCreator, getStyle, getText, getToolTipText, isChecked, isEnabled, isHandled, notifyResult, removeAcceleratorText, removeMnemonics, runWithEvent, setAccelerator, setActionDefinitionId, setChecked, setDescription, setDisabledImageDescriptor, setEnabled, setHelpListener, setHoverImageDescriptor, setId, setImageDescriptor, setMenuCreator, setText, setToolTipText |
Methods inherited from class org.eclipse.jface.action.AbstractAction |
addPropertyChangeListener, firePropertyChange, firePropertyChange, removePropertyChangeListener |
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 |
Methods inherited from interface org.eclipse.jface.action.IAction |
addPropertyChangeListener, removePropertyChangeListener |
ToggleSLCommentAction
public ToggleSLCommentAction(java.util.ResourceBundle bundle,
java.lang.String prefix,
org.eclipse.ui.texteditor.ITextEditor editor)
- Creates and initializes the action for the given text editor. The action
configures its visual representation from the given resource bundle.
- Parameters:
bundle
- the resource bundleprefix
- a prefix to be prepended to the various resource keys
(described in ResourceAction
constructor), or
null
if noneeditor
- the text editor- See Also:
ResourceAction.ResourceAction(ResourceBundle, String, int)
run
public void run()
- Implementation of the
IAction
prototype. Checks if the selected
lines are all commented or not and uncomments/comments them respectively.
- Specified by:
run
in interface org.eclipse.jface.action.IAction
- Overrides:
run
in class org.eclipse.jface.action.Action
isSelectionCommented
protected boolean isSelectionCommented(org.eclipse.jface.viewers.ISelection selection)
- Is the given selection single-line commented?
- Parameters:
selection
- Selection to check
- Returns:
true
iff all selected lines are commented- Since:
- 2.1
getTextBlockFromSelection
protected org.eclipse.jface.text.IRegion getTextBlockFromSelection(org.eclipse.jface.text.ITextSelection selection,
org.eclipse.jface.text.IDocument document)
- Creates a region describing the text block (something that starts at
the beginning of a line) completely containing the current selection.
- Parameters:
selection
- The selection to usedocument
- The document
- Returns:
- the region describing the text block comprising the given selection
- Since:
- 2.1
getFirstCompleteLineOfRegion
protected int getFirstCompleteLineOfRegion(org.eclipse.jface.text.IRegion region,
org.eclipse.jface.text.IDocument document)
- Returns the index of the first line whose start offset is in the given text range.
- Parameters:
region
- the text range in characters where to find the linedocument
- The document
- Returns:
- the first line whose start index is in the given range, -1 if there is no such line
- Since:
- 2.1
isBlockCommented
protected boolean isBlockCommented(int startLine,
int endLine,
java.lang.String[] prefixes,
org.eclipse.jface.text.IDocument document)
- Determines whether each line is prefixed by one of the prefixes.
- Parameters:
startLine
- Start line in documentendLine
- End line in documentprefixes
- Possible comment prefixesdocument
- The document
- Returns:
true
iff each line from startLine
to and including endLine
is prepended by one
of the prefixes
, ignoring whitespace at the
begin of line- Since:
- 2.1
update
public void update()
- Implementation of the
IUpdate
prototype method discovers
the operation through the current editor's
ITextOperationTarget
adapter, and sets the enabled state
accordingly.
- Specified by:
update
in interface org.eclipse.ui.texteditor.IUpdate
- Overrides:
update
in class org.eclipse.ui.texteditor.TextEditorAction
setEditor
public void setEditor(org.eclipse.ui.texteditor.ITextEditor editor)
- Overrides:
setEditor
in class org.eclipse.ui.texteditor.TextEditorAction
configure
public void configure(org.eclipse.jface.text.source.ISourceViewer sourceViewer,
org.eclipse.jface.text.source.SourceViewerConfiguration configuration)
getPrefixesMap
protected java.util.Map<java.lang.String,java.lang.String[]> getPrefixesMap()
- Since:
- 2.1
getDocumentPartitioning
protected java.lang.String getDocumentPartitioning()
- Since:
- 2.1
getOperationTarget
protected org.eclipse.jface.text.ITextOperationTarget getOperationTarget()
- Since:
- 2.1