mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-21 21:52:10 +02:00
Bug 546395 - Added "copy qualified name" feature
Change-Id: I66b544cf7d9b05fcf1e9d5641cfd5d6060fa802c Signed-off-by: Marco Stornelli <marco.stornelli@gmail.com>
This commit is contained in:
parent
98ab473c5f
commit
fc25433621
13 changed files with 246 additions and 8 deletions
|
@ -2,7 +2,7 @@ Manifest-Version: 1.0
|
||||||
Bundle-ManifestVersion: 2
|
Bundle-ManifestVersion: 2
|
||||||
Bundle-Name: %pluginName
|
Bundle-Name: %pluginName
|
||||||
Bundle-SymbolicName: org.eclipse.cdt.ui; singleton:=true
|
Bundle-SymbolicName: org.eclipse.cdt.ui; singleton:=true
|
||||||
Bundle-Version: 6.4.200.qualifier
|
Bundle-Version: 6.5.0.qualifier
|
||||||
Bundle-Activator: org.eclipse.cdt.ui.CUIPlugin
|
Bundle-Activator: org.eclipse.cdt.ui.CUIPlugin
|
||||||
Bundle-Vendor: %providerName
|
Bundle-Vendor: %providerName
|
||||||
Bundle-Localization: plugin
|
Bundle-Localization: plugin
|
||||||
|
|
BIN
core/org.eclipse.cdt.ui/icons/dlcl16/cpyqual_menu.png
Normal file
BIN
core/org.eclipse.cdt.ui/icons/dlcl16/cpyqual_menu.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 433 B |
BIN
core/org.eclipse.cdt.ui/icons/elcl16/cpyqual_menu.png
Normal file
BIN
core/org.eclipse.cdt.ui/icons/elcl16/cpyqual_menu.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 543 B |
|
@ -82,6 +82,9 @@ asmEditor.description=Editor for Assembly Source Files
|
||||||
category.source.name=C/C++ Source
|
category.source.name=C/C++ Source
|
||||||
category.source.description= C/C++ Source Actions
|
category.source.description= C/C++ Source Actions
|
||||||
|
|
||||||
|
ActionDefinition.copyQualifiedName.name= Copy Qualified Name
|
||||||
|
ActionDefinition.copyQualifiedName.description= Copy a fully qualified name to the system clipboard
|
||||||
|
|
||||||
ActionDefinition.sourceQuickMenu.name= Show Source Quick Menu
|
ActionDefinition.sourceQuickMenu.name= Show Source Quick Menu
|
||||||
ActionDefinition.sourceQuickMenu.description= Shows the source quick menu
|
ActionDefinition.sourceQuickMenu.description= Shows the source quick menu
|
||||||
|
|
||||||
|
@ -681,4 +684,6 @@ semanticHighlightingExtensionPoint = Semantic Highlighting Extension Point
|
||||||
|
|
||||||
UserSettingEntries.name = CDT User Setting Entries
|
UserSettingEntries.name = CDT User Setting Entries
|
||||||
|
|
||||||
toolchains.preferences.name = Core Build Toolchains
|
toolchains.preferences.name = Core Build Toolchains
|
||||||
|
|
||||||
|
CopyQualifiedName.label= Cop&y Qualified Name
|
|
@ -1960,6 +1960,14 @@
|
||||||
id="org.eclipse.cdt.ui.actions.AddInclude">
|
id="org.eclipse.cdt.ui.actions.AddInclude">
|
||||||
</action>
|
</action>
|
||||||
<!-- Edit group -->
|
<!-- Edit group -->
|
||||||
|
<action
|
||||||
|
definitionId="org.eclipse.cdt.ui.edit.text.c.copy.qualified.name"
|
||||||
|
label="%CopyQualifiedName.label"
|
||||||
|
retarget="true"
|
||||||
|
menubarPath="org.eclipse.jdt.ui.source.menu/editGroup"
|
||||||
|
icon="$nl$/icons/elcl16/cpyqual_menu.png"
|
||||||
|
id="org.eclipse.cdt.ui.actions.CopyQualifiedName">
|
||||||
|
</action>
|
||||||
<action
|
<action
|
||||||
definitionId="org.eclipse.cdt.ui.edit.text.c.format"
|
definitionId="org.eclipse.cdt.ui.edit.text.c.format"
|
||||||
label="%FormatAction.label"
|
label="%FormatAction.label"
|
||||||
|
@ -2397,6 +2405,11 @@
|
||||||
schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
|
schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
|
||||||
contextId="org.eclipse.cdt.ui.cEditorScope"
|
contextId="org.eclipse.cdt.ui.cEditorScope"
|
||||||
commandId="org.eclipse.cdt.ui.edit.text.c.toggle.comment"/>
|
commandId="org.eclipse.cdt.ui.edit.text.c.toggle.comment"/>
|
||||||
|
<key
|
||||||
|
sequence="M1+Q"
|
||||||
|
schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
|
||||||
|
contextId="org.eclipse.cdt.ui.cEditorScope"
|
||||||
|
commandId="org.eclipse.cdt.ui.edit.text.c.copy.qualified.name"/>
|
||||||
<key
|
<key
|
||||||
sequence="M1+7"
|
sequence="M1+7"
|
||||||
schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
|
schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
|
||||||
|
@ -2956,6 +2969,12 @@
|
||||||
description="%category.source.description"
|
description="%category.source.description"
|
||||||
id="org.eclipse.cdt.ui.category.source">
|
id="org.eclipse.cdt.ui.category.source">
|
||||||
</category>
|
</category>
|
||||||
|
<command
|
||||||
|
name="%ActionDefinition.copyQualifiedName.name"
|
||||||
|
description="%ActionDefinition.copyQualifiedName.description"
|
||||||
|
categoryId="org.eclipse.cdt.ui.category.source"
|
||||||
|
id="org.eclipse.cdt.ui.edit.text.c.copy.qualified.name">
|
||||||
|
</command>
|
||||||
<command
|
<command
|
||||||
name="%ActionDefinition.format.name"
|
name="%ActionDefinition.format.name"
|
||||||
description="%ActionDefinition.format.description"
|
description="%ActionDefinition.format.description"
|
||||||
|
|
|
@ -574,6 +574,8 @@ public class CPluginImages {
|
||||||
public static final ImageDescriptor DESC_ELCL_NAVIGATE_FORWARD = createUnManaged(T_ELCL, "forward_nav.gif"); //$NON-NLS-1$
|
public static final ImageDescriptor DESC_ELCL_NAVIGATE_FORWARD = createUnManaged(T_ELCL, "forward_nav.gif"); //$NON-NLS-1$
|
||||||
public static final ImageDescriptor DESC_ELCL_OPEN_DECLARATION = createUnManaged(T_ELCL, "goto_input.gif"); //$NON-NLS-1$
|
public static final ImageDescriptor DESC_ELCL_OPEN_DECLARATION = createUnManaged(T_ELCL, "goto_input.gif"); //$NON-NLS-1$
|
||||||
|
|
||||||
|
public static final ImageDescriptor DESC_DLCL_COPY_QUALIFIED_NAME = createUnManaged(T_DLCL, "cpyqual_menu.png"); //$NON-NLS-1$
|
||||||
|
public static final ImageDescriptor DESC_ELCL_COPY_QUALIFIED_NAME = createUnManaged(T_ELCL, "cpyqual_menu.png"); //$NON-NLS-1$
|
||||||
// incorrectly defined descriptors
|
// incorrectly defined descriptors
|
||||||
/** @deprecated as of CDT 8.0. */
|
/** @deprecated as of CDT 8.0. */
|
||||||
@Deprecated
|
@Deprecated
|
||||||
|
|
|
@ -51,6 +51,7 @@ public interface ICHelpContextIds {
|
||||||
public static final String TOGGLE_MARK_OCCURRENCES_ACTION = PREFIX + "toggle_mark_occurrences_action_context"; //$NON-NLS-1$
|
public static final String TOGGLE_MARK_OCCURRENCES_ACTION = PREFIX + "toggle_mark_occurrences_action_context"; //$NON-NLS-1$
|
||||||
public static final String FORMAT_ALL = PREFIX + "format_all_action"; //$NON-NLS-1$
|
public static final String FORMAT_ALL = PREFIX + "format_all_action"; //$NON-NLS-1$
|
||||||
public static final String GOTO_MATCHING_BRACKET_ACTION = PREFIX + "goto_matching_bracket_action"; //$NON-NLS-1$
|
public static final String GOTO_MATCHING_BRACKET_ACTION = PREFIX + "goto_matching_bracket_action"; //$NON-NLS-1$
|
||||||
|
public static final String COPY_QUALIFIED_NAME_ACTION = PREFIX + "copy_qualified_name_action_context"; //$NON-NLS-1$
|
||||||
|
|
||||||
// Preference/property pages
|
// Preference/property pages
|
||||||
public static final String C_PREF_PAGE = PREFIX + "c_pref"; //$NON-NLS-1$
|
public static final String C_PREF_PAGE = PREFIX + "c_pref"; //$NON-NLS-1$
|
||||||
|
|
|
@ -105,6 +105,12 @@ public class ActionMessages extends NLS {
|
||||||
public static String ExpandAllAction_label;
|
public static String ExpandAllAction_label;
|
||||||
public static String ExpandAllAction_tooltip;
|
public static String ExpandAllAction_tooltip;
|
||||||
public static String ExpandAllAction_description;
|
public static String ExpandAllAction_description;
|
||||||
|
public static String CopyQualifiedNameAction_ToolTipText;
|
||||||
|
public static String CopyQualifiedNameAction_InfoDialogTitel;
|
||||||
|
public static String CopyQualifiedNameAction_ErrorDescription;
|
||||||
|
public static String CopyQualifiedNameAction_ActionName;
|
||||||
|
public static String CopyQualifiedNameAction_ErrorTitle;
|
||||||
|
public static String CopyQualifiedNameAction_NoElementToQualify;
|
||||||
|
|
||||||
static {
|
static {
|
||||||
// Initialize resource bundle.
|
// Initialize resource bundle.
|
||||||
|
|
|
@ -127,3 +127,10 @@ CollapseAllAction_description=Collapse All
|
||||||
ExpandAllAction_label=Expand All
|
ExpandAllAction_label=Expand All
|
||||||
ExpandAllAction_tooltip=Expand All
|
ExpandAllAction_tooltip=Expand All
|
||||||
ExpandAllAction_description=Expand All
|
ExpandAllAction_description=Expand All
|
||||||
|
|
||||||
|
CopyQualifiedNameAction_ToolTipText=Copy to fully qualified name to the system Clipboard
|
||||||
|
CopyQualifiedNameAction_InfoDialogTitel=Copy Qualified Name
|
||||||
|
CopyQualifiedNameAction_ErrorDescription=There was a problem when accessing the system clipboard. Retry?
|
||||||
|
CopyQualifiedNameAction_ActionName=Cop&y Qualified Name
|
||||||
|
CopyQualifiedNameAction_ErrorTitle=Problem Copying to Clipboard
|
||||||
|
CopyQualifiedNameAction_NoElementToQualify=No Element to qualify found in selection.
|
||||||
|
|
|
@ -0,0 +1,179 @@
|
||||||
|
/*******************************************************************************
|
||||||
|
* Copyright (c) 2019 Marco Stornelli
|
||||||
|
*
|
||||||
|
* This program and the accompanying materials
|
||||||
|
* are made available under the terms of the Eclipse Public License 2.0
|
||||||
|
* which accompanies this distribution, and is available at
|
||||||
|
* https://www.eclipse.org/legal/epl-2.0/
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: EPL-2.0
|
||||||
|
*******************************************************************************/
|
||||||
|
package org.eclipse.cdt.internal.ui.actions;
|
||||||
|
|
||||||
|
import org.eclipse.cdt.core.browser.IQualifiedTypeName;
|
||||||
|
import org.eclipse.cdt.core.dom.ast.ASTVisitor;
|
||||||
|
import org.eclipse.cdt.core.dom.ast.DOMException;
|
||||||
|
import org.eclipse.cdt.core.dom.ast.IASTName;
|
||||||
|
import org.eclipse.cdt.core.dom.ast.IASTNode;
|
||||||
|
import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
|
||||||
|
import org.eclipse.cdt.core.dom.ast.IBinding;
|
||||||
|
import org.eclipse.cdt.core.dom.ast.cpp.ICPPBinding;
|
||||||
|
import org.eclipse.cdt.core.model.ITranslationUnit;
|
||||||
|
import org.eclipse.cdt.internal.ui.CPluginImages;
|
||||||
|
import org.eclipse.cdt.internal.ui.ICHelpContextIds;
|
||||||
|
import org.eclipse.cdt.internal.ui.editor.CEditorMessages;
|
||||||
|
import org.eclipse.cdt.ui.CDTUITools;
|
||||||
|
import org.eclipse.cdt.ui.CUIPlugin;
|
||||||
|
import org.eclipse.core.runtime.CoreException;
|
||||||
|
import org.eclipse.jface.dialogs.MessageDialog;
|
||||||
|
import org.eclipse.jface.text.ITextSelection;
|
||||||
|
import org.eclipse.jface.viewers.ISelection;
|
||||||
|
import org.eclipse.jface.viewers.ISelectionProvider;
|
||||||
|
import org.eclipse.swt.SWTError;
|
||||||
|
import org.eclipse.swt.dnd.Clipboard;
|
||||||
|
import org.eclipse.swt.dnd.DND;
|
||||||
|
import org.eclipse.swt.dnd.TextTransfer;
|
||||||
|
import org.eclipse.swt.dnd.Transfer;
|
||||||
|
import org.eclipse.swt.widgets.Shell;
|
||||||
|
import org.eclipse.ui.PlatformUI;
|
||||||
|
import org.eclipse.ui.texteditor.ITextEditor;
|
||||||
|
import org.eclipse.ui.texteditor.TextEditorAction;
|
||||||
|
|
||||||
|
public class CopyQualifiedNameAction extends TextEditorAction {
|
||||||
|
|
||||||
|
private ITextEditor fEditor;
|
||||||
|
|
||||||
|
private static class NameVisitor extends ASTVisitor {
|
||||||
|
private String qualifiedName;
|
||||||
|
|
||||||
|
public NameVisitor() {
|
||||||
|
shouldVisitNames = true;
|
||||||
|
qualifiedName = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int visit(IASTName name) {
|
||||||
|
IBinding b = name.resolveBinding();
|
||||||
|
if (b instanceof ICPPBinding) {
|
||||||
|
try {
|
||||||
|
qualifiedName = String.join(IQualifiedTypeName.QUALIFIER, ((ICPPBinding) b).getQualifiedName());
|
||||||
|
} catch (DOMException e) {
|
||||||
|
CUIPlugin.log(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return PROCESS_ABORT;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getQualifiedName() {
|
||||||
|
return qualifiedName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public CopyQualifiedNameAction(ITextEditor editor) {
|
||||||
|
super(CEditorMessages.getBundleForConstructedKeys(), "CopyQualifiedName.", editor); //$NON-NLS-1$
|
||||||
|
fEditor = editor;
|
||||||
|
setText(ActionMessages.CopyQualifiedNameAction_ActionName);
|
||||||
|
setToolTipText(ActionMessages.CopyQualifiedNameAction_ToolTipText);
|
||||||
|
setDisabledImageDescriptor(CPluginImages.DESC_DLCL_COPY_QUALIFIED_NAME);
|
||||||
|
setImageDescriptor(CPluginImages.DESC_ELCL_COPY_QUALIFIED_NAME);
|
||||||
|
PlatformUI.getWorkbench().getHelpSystem().setHelp(this, ICHelpContextIds.COPY_QUALIFIED_NAME_ACTION);
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean isValidSelection(ITextSelection selection) {
|
||||||
|
if (selection == null || selection.isEmpty() || selection.getLength() <= 0)
|
||||||
|
return false;
|
||||||
|
final int offset = selection.getOffset();
|
||||||
|
final int length = selection.getLength();
|
||||||
|
ITranslationUnit translationUnit = (ITranslationUnit) CDTUITools
|
||||||
|
.getEditorInputCElement(fEditor.getEditorInput());
|
||||||
|
String qualName = null;
|
||||||
|
try {
|
||||||
|
IASTTranslationUnit ast = translationUnit.getAST(null, 0);
|
||||||
|
if (ast != null) {
|
||||||
|
IASTNode enclosingNode = ast.getNodeSelector(null).findEnclosingNode(offset, length);
|
||||||
|
NameVisitor n = new NameVisitor();
|
||||||
|
enclosingNode.accept(n);
|
||||||
|
qualName = n.getQualifiedName();
|
||||||
|
}
|
||||||
|
} catch (CoreException e) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return qualName != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void update() {
|
||||||
|
super.update();
|
||||||
|
if (isEnabled()) {
|
||||||
|
setEnabled(isValidSelection(getCurrentSelection()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the editor's selection, or <code>null</code> if no selection can be obtained or the
|
||||||
|
* editor is <code>null</code>.
|
||||||
|
*
|
||||||
|
* @return the selection of the action's editor, or <code>null</code>
|
||||||
|
*/
|
||||||
|
protected ITextSelection getCurrentSelection() {
|
||||||
|
if (fEditor != null) {
|
||||||
|
ISelectionProvider provider = fEditor.getSelectionProvider();
|
||||||
|
if (provider != null) {
|
||||||
|
ISelection selection = provider.getSelection();
|
||||||
|
if (selection instanceof ITextSelection)
|
||||||
|
return (ITextSelection) selection;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
ITextSelection textSelection = getCurrentSelection();
|
||||||
|
|
||||||
|
if (textSelection == null || !isValidSelection(textSelection)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
final int offset = textSelection.getOffset();
|
||||||
|
final int length = textSelection.getLength();
|
||||||
|
ITranslationUnit translationUnit = (ITranslationUnit) CDTUITools
|
||||||
|
.getEditorInputCElement(fEditor.getEditorInput());
|
||||||
|
String qualName = null;
|
||||||
|
try {
|
||||||
|
IASTTranslationUnit ast = translationUnit.getAST(null, 0);
|
||||||
|
if (ast != null) {
|
||||||
|
IASTNode enclosingNode = ast.getNodeSelector(null).findEnclosingNode(offset, length);
|
||||||
|
NameVisitor n = new NameVisitor();
|
||||||
|
enclosingNode.accept(n);
|
||||||
|
qualName = n.getQualifiedName();
|
||||||
|
}
|
||||||
|
} catch (CoreException e) {
|
||||||
|
CUIPlugin.log(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
final Shell shell = fEditor.getEditorSite().getShell();
|
||||||
|
|
||||||
|
if (qualName == null) {
|
||||||
|
MessageDialog.openInformation(shell, ActionMessages.CopyQualifiedNameAction_InfoDialogTitel,
|
||||||
|
ActionMessages.CopyQualifiedNameAction_NoElementToQualify);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Clipboard clipboard = new Clipboard(shell.getDisplay());
|
||||||
|
try {
|
||||||
|
clipboard.setContents(new String[] { qualName }, new Transfer[] { TextTransfer.getInstance() });
|
||||||
|
} catch (SWTError e) {
|
||||||
|
if (e.code != DND.ERROR_CANNOT_SET_CLIPBOARD) {
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
if (MessageDialog.openQuestion(shell, ActionMessages.CopyQualifiedNameAction_ErrorTitle,
|
||||||
|
ActionMessages.CopyQualifiedNameAction_ErrorDescription)) {
|
||||||
|
clipboard.setContents(new String[] { qualName }, new Transfer[] { TextTransfer.getInstance() });
|
||||||
|
}
|
||||||
|
} finally {
|
||||||
|
clipboard.dispose();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -315,4 +315,10 @@ public interface ICEditorActionDefinitionIds extends ITextEditorActionDefinition
|
||||||
* (value <code>"org.eclipse.cdt.ui.edit.text.c.select.last"</code>).
|
* (value <code>"org.eclipse.cdt.ui.edit.text.c.select.last"</code>).
|
||||||
*/
|
*/
|
||||||
public static final String SELECT_LAST = "org.eclipse.cdt.ui.edit.text.c.select.last"; //$NON-NLS-1$
|
public static final String SELECT_LAST = "org.eclipse.cdt.ui.edit.text.c.select.last"; //$NON-NLS-1$
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Action definition ID of the edit -> copy qualified name
|
||||||
|
* (value <code>"org.eclipse.cdt.ui.edit.text.c.copy.qualified.name"</code>).
|
||||||
|
*/
|
||||||
|
public static final String COPY_QUALIFIED_NAME = "org.eclipse.cdt.ui.edit.text.c.copy.qualified.name"; //$NON-NLS-1$
|
||||||
}
|
}
|
||||||
|
|
|
@ -494,4 +494,11 @@ public class CdtActionConstants {
|
||||||
* <code>"org.eclipse.cdt.ui.actions.ExceptionOccurrences"</code>).
|
* <code>"org.eclipse.cdt.ui.actions.ExceptionOccurrences"</code>).
|
||||||
*/
|
*/
|
||||||
public static final String FIND_EXCEPTION_OCCURRENCES = "org.eclipse.cdt.ui.actions.ExceptionOccurrences"; //$NON-NLS-1$
|
public static final String FIND_EXCEPTION_OCCURRENCES = "org.eclipse.cdt.ui.actions.ExceptionOccurrences"; //$NON-NLS-1$
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Source menu: name of standard action to copy fully qualified names (value
|
||||||
|
* <code>"org.eclipse.cdt.ui.actions.CopyQualifiedName"</code>).
|
||||||
|
* @since 6.5
|
||||||
|
*/
|
||||||
|
public static final String COPY_QUALIFIED_NAME = "org.eclipse.cdt.ui.actions.CopyQualifiedName"; //$NON-NLS-1$
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,6 +23,7 @@ import org.eclipse.cdt.core.model.ISourceReference;
|
||||||
import org.eclipse.cdt.internal.ui.IContextMenuConstants;
|
import org.eclipse.cdt.internal.ui.IContextMenuConstants;
|
||||||
import org.eclipse.cdt.internal.ui.actions.ActionMessages;
|
import org.eclipse.cdt.internal.ui.actions.ActionMessages;
|
||||||
import org.eclipse.cdt.internal.ui.actions.CDTQuickMenuCreator;
|
import org.eclipse.cdt.internal.ui.actions.CDTQuickMenuCreator;
|
||||||
|
import org.eclipse.cdt.internal.ui.actions.CopyQualifiedNameAction;
|
||||||
import org.eclipse.cdt.internal.ui.editor.AddIncludeAction;
|
import org.eclipse.cdt.internal.ui.editor.AddIncludeAction;
|
||||||
import org.eclipse.cdt.internal.ui.editor.CEditor;
|
import org.eclipse.cdt.internal.ui.editor.CEditor;
|
||||||
import org.eclipse.cdt.internal.ui.editor.ICEditorActionDefinitionIds;
|
import org.eclipse.cdt.internal.ui.editor.ICEditorActionDefinitionIds;
|
||||||
|
@ -134,7 +135,7 @@ public class GenerateActionGroup extends ActionGroup implements ISelectionChange
|
||||||
// private SortMembersAction fSortMembers;
|
// private SortMembersAction fSortMembers;
|
||||||
private SortLinesAction fSortLines;
|
private SortLinesAction fSortLines;
|
||||||
private FormatAllAction fFormatAll;
|
private FormatAllAction fFormatAll;
|
||||||
// private CopyQualifiedNameAction fCopyQualifiedNameAction;
|
private CopyQualifiedNameAction fCopyQualifiedNameAction;
|
||||||
//
|
//
|
||||||
private static final String QUICK_MENU_ID = "org.eclipse.cdt.ui.edit.text.c.source.quickMenu"; //$NON-NLS-1$
|
private static final String QUICK_MENU_ID = "org.eclipse.cdt.ui.edit.text.c.source.quickMenu"; //$NON-NLS-1$
|
||||||
|
|
||||||
|
@ -172,10 +173,10 @@ public class GenerateActionGroup extends ActionGroup implements ISelectionChange
|
||||||
fSortLines.setActionDefinitionId(ICEditorActionDefinitionIds.SORT_LINES);
|
fSortLines.setActionDefinitionId(ICEditorActionDefinitionIds.SORT_LINES);
|
||||||
editor.setAction("SortLines", fSortLines); //$NON-NLS-1$
|
editor.setAction("SortLines", fSortLines); //$NON-NLS-1$
|
||||||
|
|
||||||
// IAction pastAction= editor.getAction(ITextEditorActionConstants.PASTE);//IWorkbenchActionDefinitionIds.PASTE);
|
fCopyQualifiedNameAction = new CopyQualifiedNameAction(editor);
|
||||||
// fCopyQualifiedNameAction= new CopyQualifiedNameAction(editor, null, pastAction);
|
fCopyQualifiedNameAction.setActionDefinitionId(ICEditorActionDefinitionIds.COPY_QUALIFIED_NAME);
|
||||||
// fCopyQualifiedNameAction.setActionDefinitionId(CopyQualifiedNameAction.JAVA_EDITOR_ACTION_DEFINITIONS_ID);
|
editor.setAction("CopyQualifiedName", fCopyQualifiedNameAction); //$NON-NLS-1$
|
||||||
// editor.setAction("CopyQualifiedName", fCopyQualifiedNameAction); //$NON-NLS-1$
|
editor.markAsSelectionDependentAction("CopyQualifiedName", true); //$NON-NLS-1$
|
||||||
//
|
//
|
||||||
// fOverrideMethods= new OverrideMethodsAction(editor);
|
// fOverrideMethods= new OverrideMethodsAction(editor);
|
||||||
// fOverrideMethods.setActionDefinitionId(ICEditorActionDefinitionIds.OVERRIDE_METHODS);
|
// fOverrideMethods.setActionDefinitionId(ICEditorActionDefinitionIds.OVERRIDE_METHODS);
|
||||||
|
@ -307,6 +308,8 @@ public class GenerateActionGroup extends ActionGroup implements ISelectionChange
|
||||||
//
|
//
|
||||||
fFormatAll = new FormatAllAction(site);
|
fFormatAll = new FormatAllAction(site);
|
||||||
fFormatAll.setActionDefinitionId(ICEditorActionDefinitionIds.FORMAT);
|
fFormatAll.setActionDefinitionId(ICEditorActionDefinitionIds.FORMAT);
|
||||||
|
// fCopyQualifiedNameAction = new CopyQualifiedNameAction(site);
|
||||||
|
// fCopyQualifiedNameAction.setActionDefinitionId(ICEditorActionDefinitionIds.COPY_QUALIFIED_NAME);
|
||||||
//
|
//
|
||||||
// fCleanUp= new CleanUpAction(site);
|
// fCleanUp= new CleanUpAction(site);
|
||||||
// fCleanUp.setActionDefinitionId(ICEditorActionDefinitionIds.CLEAN_UP);
|
// fCleanUp.setActionDefinitionId(ICEditorActionDefinitionIds.CLEAN_UP);
|
||||||
|
@ -346,6 +349,7 @@ public class GenerateActionGroup extends ActionGroup implements ISelectionChange
|
||||||
// registerSelectionListener(fSelectionProvider, fSortMembers);
|
// registerSelectionListener(fSelectionProvider, fSortMembers);
|
||||||
registerSelectionListener(fSelectionProvider, fAddTaskAction);
|
registerSelectionListener(fSelectionProvider, fAddTaskAction);
|
||||||
// registerSelectionListener(fSelectionProvider, fCleanUp);
|
// registerSelectionListener(fSelectionProvider, fCleanUp);
|
||||||
|
// registerSelectionListener(fSelectionProvider, fCopyQualifiedNameAction);
|
||||||
|
|
||||||
selectionChanged(new SelectionChangedEvent(fSelectionProvider, selection));
|
selectionChanged(new SelectionChangedEvent(fSelectionProvider, selection));
|
||||||
registerSelectionListener(fSelectionProvider, this);
|
registerSelectionListener(fSelectionProvider, this);
|
||||||
|
@ -430,6 +434,7 @@ public class GenerateActionGroup extends ActionGroup implements ISelectionChange
|
||||||
added += addEditorAction(source, ITextEditorActionConstants.SHIFT_LEFT);
|
added += addEditorAction(source, ITextEditorActionConstants.SHIFT_LEFT);
|
||||||
added += addEditorAction(source, "Indent"); //$NON-NLS-1$
|
added += addEditorAction(source, "Indent"); //$NON-NLS-1$
|
||||||
added += addEditorAction(source, "Format"); //$NON-NLS-1$
|
added += addEditorAction(source, "Format"); //$NON-NLS-1$
|
||||||
|
added += addAction(source, fCopyQualifiedNameAction);
|
||||||
source.add(new Separator(GROUP_ORGANIZE));
|
source.add(new Separator(GROUP_ORGANIZE));
|
||||||
added += addAction(source, fAddInclude);
|
added += addAction(source, fAddInclude);
|
||||||
added += addAction(source, fOrganizeIncludes);
|
added += addAction(source, fOrganizeIncludes);
|
||||||
|
@ -456,6 +461,7 @@ public class GenerateActionGroup extends ActionGroup implements ISelectionChange
|
||||||
// added+= addAction(source, fAddCppDocStub);
|
// added+= addAction(source, fAddCppDocStub);
|
||||||
source.add(new Separator(GROUP_EDIT));
|
source.add(new Separator(GROUP_EDIT));
|
||||||
added += addAction(source, fFormatAll);
|
added += addAction(source, fFormatAll);
|
||||||
|
added += addAction(source, fCopyQualifiedNameAction);
|
||||||
source.add(new Separator(GROUP_ORGANIZE));
|
source.add(new Separator(GROUP_ORGANIZE));
|
||||||
added += addAction(source, fAddInclude);
|
added += addAction(source, fAddInclude);
|
||||||
added += addAction(source, fOrganizeIncludes);
|
added += addAction(source, fOrganizeIncludes);
|
||||||
|
@ -515,7 +521,7 @@ public class GenerateActionGroup extends ActionGroup implements ISelectionChange
|
||||||
actionBar.setGlobalActionHandler(IDEActionFactory.ADD_TASK.getId(), fAddTaskAction);
|
actionBar.setGlobalActionHandler(IDEActionFactory.ADD_TASK.getId(), fAddTaskAction);
|
||||||
actionBar.setGlobalActionHandler(CdtActionConstants.FORMAT, fFormatAll);
|
actionBar.setGlobalActionHandler(CdtActionConstants.FORMAT, fFormatAll);
|
||||||
} else {
|
} else {
|
||||||
// actionBar.setGlobalActionHandler(CopyQualifiedNameAction.ACTION_HANDLER_ID, fCopyQualifiedNameAction);
|
actionBar.setGlobalActionHandler(CdtActionConstants.COPY_QUALIFIED_NAME, fCopyQualifiedNameAction);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue