mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-06-09 10:46:02 +02:00
- First go at adding selection search to CDT. You can now search for Declarations, References in Workspace, WorkingSets triggered from the CEditor, CView or COutline.
- Added Dependency NPE check + test - Selection Parser change from John - Cleaned up search properties file
This commit is contained in:
parent
f070a52e93
commit
2e497d6a54
19 changed files with 886 additions and 96 deletions
|
@ -1,3 +1,6 @@
|
|||
2004-02-25 Bogdan Gheorghe
|
||||
Added DependencyTests::testUpdateDependencyNPE
|
||||
|
||||
2004-02-25 John Camelon
|
||||
Updates for new ISourceElementRequestor interface updates.
|
||||
|
||||
|
|
|
@ -33,7 +33,9 @@ import org.eclipse.cdt.internal.core.search.PathCollector;
|
|||
import org.eclipse.cdt.internal.core.search.PatternSearchJob;
|
||||
import org.eclipse.cdt.internal.core.search.indexing.IndexManager;
|
||||
import org.eclipse.cdt.internal.core.search.matching.CSearchPattern;
|
||||
import org.eclipse.cdt.internal.core.search.processing.IJob;
|
||||
import org.eclipse.cdt.internal.core.sourcedependency.DependencyQueryJob;
|
||||
import org.eclipse.cdt.internal.core.sourcedependency.UpdateDependency;
|
||||
import org.eclipse.cdt.testplugin.CProjectHelper;
|
||||
import org.eclipse.cdt.testplugin.CTestPlugin;
|
||||
import org.eclipse.core.resources.IFile;
|
||||
|
@ -72,6 +74,7 @@ import org.eclipse.core.runtime.Platform;
|
|||
suite.addTest(new DependencyTests("testDepHeaderChangeReindex"));
|
||||
suite.addTest(new DependencyTests("testDepSourceChangeTable"));
|
||||
suite.addTest(new DependencyTests("testDepHeaderChangeTable"));
|
||||
suite.addTest(new DependencyTests("testUpdateDependancyNPE"));
|
||||
return suite;
|
||||
}
|
||||
/**
|
||||
|
@ -535,6 +538,16 @@ import org.eclipse.core.runtime.Platform;
|
|||
compareArrays(iPath,beforeModel);
|
||||
|
||||
}
|
||||
|
||||
public void testUpdateDependancyNPE() {
|
||||
IResource nonExistantResource = ResourcesPlugin.getWorkspace().getRoot().getProject("non-existant-project-aha");
|
||||
|
||||
assertFalse(nonExistantResource.exists());
|
||||
assertNull(nonExistantResource.getLocation());
|
||||
|
||||
IJob job = new UpdateDependency(nonExistantResource);
|
||||
assertFalse(job.execute(new NullProgressMonitor()));
|
||||
}
|
||||
|
||||
|
||||
public void testDepHeaderChangeReindex() throws Exception{
|
||||
|
@ -570,7 +583,7 @@ import org.eclipse.core.runtime.Platform;
|
|||
|
||||
|
||||
private String[] convertToLocalPath(String[] model) {
|
||||
IPath defaultPath = Platform.getLocation();
|
||||
IPath defaultPath = Platform.getInstanceLocation();
|
||||
String[] tempLocalArray = new String[model.length];
|
||||
for (int i=0;i<model.length;i++){
|
||||
StringBuffer buffer = new StringBuffer();
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2004-02-25 Bogdan Gheorghe
|
||||
- Check to see if the resource has a location before using it in
|
||||
UpdateDependency
|
||||
|
||||
2003-11-10 Bogdan Gheorghe
|
||||
- Added a null resource check in UpdateDependency to fix up
|
||||
a potential NPE in the test suite
|
||||
|
|
|
@ -60,11 +60,14 @@ public class UpdateDependency implements IJob {
|
|||
*/
|
||||
public boolean execute(IProgressMonitor progress) {
|
||||
if (resource == null) return false;
|
||||
|
||||
IPath location = resource.getLocation();
|
||||
if (location == null) return false;
|
||||
|
||||
PathCollector pathCollector = new PathCollector();
|
||||
//SubProgressMonitor subMonitor = (progressMonitor == null ) ? null : new SubProgressMonitor( progressMonitor, 5 );
|
||||
ICSearchScope scope = SearchEngine.createWorkspaceScope();
|
||||
CSearchPattern pattern = CSearchPattern.createPattern(resource.getLocation().toOSString(),ICSearchConstants.INCLUDE, ICSearchConstants.REFERENCES,ICSearchConstants.EXACT_MATCH,true);
|
||||
CSearchPattern pattern = CSearchPattern.createPattern(location.toOSString(),ICSearchConstants.INCLUDE, ICSearchConstants.REFERENCES,ICSearchConstants.EXACT_MATCH,true);
|
||||
IndexManager indexManager = CCorePlugin.getDefault().getCoreModel().getIndexManager();
|
||||
indexManager.performConcurrentJob(
|
||||
new PatternSearchJob(
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2004-02-25 Bogdan Gheorghe
|
||||
Added a check to make sure that the parser is in the top context before throwing
|
||||
an EOF exception in SeletionParser.
|
||||
|
||||
2004-02-25 John Camelon
|
||||
Fixed Bug 43051 : Search: cannot specify relative search paths
|
||||
Fixed Bug 45140 : refactor IScanner to allow use of Readers of IResource
|
||||
|
|
|
@ -37,10 +37,17 @@ public class SelectionParser extends ContextualParser {
|
|||
protected void handleNewToken(IToken value) {
|
||||
if( value != null && scanner.isOnTopContext() )
|
||||
{
|
||||
log.traceLog( "IToken provided w/offsets " + value.getOffset() + " & " + value.getEndOffset() );
|
||||
if( value.getOffset() == offsetRange.getFloorOffset() )
|
||||
{
|
||||
log.traceLog( "Offset Floor Hit w/token \"" + value.getImage() + "\"");
|
||||
firstTokenOfDuple = value;
|
||||
}
|
||||
if( value.getEndOffset() == offsetRange.getCeilingOffset() )
|
||||
{
|
||||
log.traceLog( "Offset Ceiling Hit w/token \"" + value.getImage() + "\"");
|
||||
lastTokenOfDuple = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -92,7 +99,7 @@ public class SelectionParser extends ContextualParser {
|
|||
* @see org.eclipse.cdt.internal.core.parser.Parser#checkEndOfFile()
|
||||
*/
|
||||
protected void checkEndOfFile() throws EndOfFileException {
|
||||
if( lastToken != null && lastToken.getEndOffset() >= offsetRange.getCeilingOffset() )
|
||||
if( scanner.isOnTopContext() && lastTokenOfDuple != null && lastTokenOfDuple.getEndOffset() >= offsetRange.getCeilingOffset() )
|
||||
throw new EndOfFileException();
|
||||
}
|
||||
|
||||
|
|
|
@ -1,3 +1,23 @@
|
|||
2004-02-25 Bogdan Gheorghe
|
||||
First go at Selection Search facility. Added Selection Search menus to
|
||||
the CView, the CEditor and the COutlineView.
|
||||
|
||||
New:
|
||||
* src/org/eclipse/cdt/internal/ui/search/actions/DeclarationsSearchGroup.java
|
||||
* src/org/eclipse/cdt/internal/ui/search/actions/FindAction.java
|
||||
* src/org/eclipse/cdt/internal/ui/search/actions/FindDeclarationsAction.java
|
||||
* src/org/eclipse/cdt/internal/ui/search/actions/FindRefsAction.java
|
||||
* src/org/eclipse/cdt/internal/ui/search/actions/FindRefsInWorkingSetAction.java
|
||||
* src/org/eclipse/cdt/internal/ui/search/actions/ReferencesSearchGroup.java
|
||||
* src/org/eclipse/cdt/internal/ui/search/actions/SelctionSearchGroup.java
|
||||
* src/org/eclipse/cdt/internal/ui/search/actions/FindDeclarationsInWorkingSetAction.java
|
||||
|
||||
Modified:
|
||||
* src/org/eclipse/cdt/internal/ui/cview/MainActionGroup.java
|
||||
* src/org/eclipse/cdt/internal/ui/editor/CContentOutline.java
|
||||
* src/org/eclipse/cdt/internal/ui/editor/CEditor.java
|
||||
|
||||
|
||||
2004-02-25 John Camelon
|
||||
Updates for new ISourceElementRequestor interface updates.
|
||||
|
||||
|
|
|
@ -17,6 +17,7 @@ import org.eclipse.cdt.internal.ui.editor.FileSearchAction;
|
|||
import org.eclipse.cdt.internal.ui.editor.FileSearchActionInWorkingSet;
|
||||
import org.eclipse.cdt.internal.ui.editor.OpenIncludeAction;
|
||||
import org.eclipse.cdt.internal.ui.editor.SearchDialogAction;
|
||||
import org.eclipse.cdt.internal.ui.search.actions.SelectionSearchGroup;
|
||||
import org.eclipse.cdt.ui.CUIPlugin;
|
||||
import org.eclipse.core.resources.IFile;
|
||||
import org.eclipse.core.resources.IResource;
|
||||
|
@ -79,6 +80,8 @@ public class MainActionGroup extends CViewActionGroup {
|
|||
OpenProjectGroup openProjectGroup;
|
||||
WorkingSetFilterActionGroup workingSetGroup;
|
||||
|
||||
SelectionSearchGroup selectionSearchGroup;
|
||||
|
||||
public MainActionGroup(CView cview) {
|
||||
super(cview);
|
||||
}
|
||||
|
@ -153,6 +156,10 @@ public class MainActionGroup extends CViewActionGroup {
|
|||
fFileSearchAction = new FileSearchAction(viewer);
|
||||
fFileSearchActionInWorkingSet = new FileSearchActionInWorkingSet(viewer);
|
||||
fSearchDialogAction = new SearchDialogAction(viewer, getCView().getViewSite().getWorkbenchWindow());
|
||||
|
||||
selectionSearchGroup = new SelectionSearchGroup(getCView().getSite());
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -167,6 +174,8 @@ public class MainActionGroup extends CViewActionGroup {
|
|||
new NewWizardMenu(menu, getCView().getSite().getWorkbenchWindow(), false);
|
||||
menu.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
|
||||
menu.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS + "-end")); //$NON-NLS-1$
|
||||
menu.add(new Separator());
|
||||
addSelectionSearchMenu(menu, resources);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -193,7 +202,6 @@ public class MainActionGroup extends CViewActionGroup {
|
|||
menu.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS + "-end")); //$NON-NLS-1$
|
||||
addPropertyMenu(menu, resources);
|
||||
}
|
||||
|
||||
/**
|
||||
* Extends the superclass implementation to set the context in the
|
||||
* subgroups.
|
||||
|
@ -256,6 +264,14 @@ public class MainActionGroup extends CViewActionGroup {
|
|||
|
||||
menu.add(search);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param menu
|
||||
*/
|
||||
void addSelectionSearchMenu(IMenuManager menu, IStructuredSelection selection) {
|
||||
selectionSearchGroup.fillContextMenu(menu);
|
||||
}
|
||||
|
||||
|
||||
public void runDefaultAction(IStructuredSelection selection) {
|
||||
openFileGroup.runDefaultAction(selection);
|
||||
|
|
|
@ -47,6 +47,8 @@ import org.eclipse.ui.part.IPageSite;
|
|||
import org.eclipse.ui.part.Page;
|
||||
import org.eclipse.ui.texteditor.IDocumentProvider;
|
||||
import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
|
||||
import org.eclipse.ui.actions.ActionGroup;
|
||||
import org.eclipse.cdt.internal.ui.search.actions.SelectionSearchGroup;
|
||||
|
||||
public class CContentOutlinePage extends Page implements IContentOutlinePage, ISelectionChangedListener {
|
||||
private CEditor fEditor;
|
||||
|
@ -64,6 +66,8 @@ public class CContentOutlinePage extends Page implements IContentOutlinePage, IS
|
|||
|
||||
private MemberFilterActionGroup fMemberFilterActionGroup;
|
||||
|
||||
private ActionGroup fSelectionSearchGroup;
|
||||
|
||||
public CContentOutlinePage(CEditor editor) {
|
||||
this("#TranslationUnitOutlinerContext", editor);
|
||||
}
|
||||
|
@ -153,6 +157,8 @@ public class CContentOutlinePage extends Page implements IContentOutlinePage, IS
|
|||
}
|
||||
menu.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
|
||||
menu.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS+"-end"));//$NON-NLS-1$
|
||||
|
||||
fSelectionSearchGroup.fillContextMenu(menu);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -181,6 +187,8 @@ public class CContentOutlinePage extends Page implements IContentOutlinePage, IS
|
|||
Menu menu= manager.createContextMenu(control);
|
||||
control.setMenu(menu);
|
||||
|
||||
fSelectionSearchGroup = new SelectionSearchGroup(this);
|
||||
|
||||
// register global actions
|
||||
IPageSite site= getSite();
|
||||
site.registerContextMenu(fContextMenuId, manager, treeViewer);
|
||||
|
|
|
@ -20,6 +20,7 @@ import org.eclipse.cdt.core.model.ITranslationUnit;
|
|||
import org.eclipse.cdt.core.model.IWorkingCopy;
|
||||
import org.eclipse.cdt.internal.ui.IContextMenuConstants;
|
||||
import org.eclipse.cdt.internal.ui.editor.asm.AsmTextTools;
|
||||
import org.eclipse.cdt.internal.ui.search.actions.SelectionSearchGroup;
|
||||
import org.eclipse.cdt.internal.ui.text.CPairMatcher;
|
||||
import org.eclipse.cdt.internal.ui.text.CSourceViewerConfiguration;
|
||||
import org.eclipse.cdt.internal.ui.text.CTextTools;
|
||||
|
@ -75,12 +76,14 @@ import org.eclipse.ui.IStorageEditorInput;
|
|||
import org.eclipse.ui.IViewPart;
|
||||
import org.eclipse.ui.IWorkbenchPage;
|
||||
import org.eclipse.ui.IWorkbenchWindow;
|
||||
import org.eclipse.ui.actions.ActionGroup;
|
||||
import org.eclipse.ui.editors.text.TextEditor;
|
||||
import org.eclipse.ui.editors.text.TextEditorPreferenceConstants;
|
||||
import org.eclipse.ui.editors.text.TextFileDocumentProvider;
|
||||
import org.eclipse.ui.part.EditorActionBarContributor;
|
||||
import org.eclipse.ui.part.IShowInSource;
|
||||
import org.eclipse.ui.part.ShowInContext;
|
||||
import org.eclipse.ui.texteditor.AbstractTextEditor;
|
||||
import org.eclipse.ui.texteditor.AnnotationPreference;
|
||||
import org.eclipse.ui.texteditor.ContentAssistAction;
|
||||
import org.eclipse.ui.texteditor.DefaultMarkerAnnotationAccess;
|
||||
|
@ -104,6 +107,8 @@ public class CEditor extends TextEditor implements ISelectionChangedListener, IS
|
|||
|
||||
/** The outline page */
|
||||
protected CContentOutlinePage fOutlinePage;
|
||||
|
||||
/** Search actions **/
|
||||
|
||||
private FileSearchAction fFileSearchAction;
|
||||
|
||||
|
@ -111,6 +116,8 @@ public class CEditor extends TextEditor implements ISelectionChangedListener, IS
|
|||
|
||||
private SearchDialogAction fSearchDialogAction;
|
||||
|
||||
private ActionGroup fSelectionSearchGroup;
|
||||
|
||||
protected ISelectionChangedListener fStatusLineClearer;
|
||||
|
||||
/** The property change listener */
|
||||
|
@ -465,7 +472,11 @@ public class CEditor extends TextEditor implements ISelectionChangedListener, IS
|
|||
action = new ShowInCViewAction(this);
|
||||
action.setActionDefinitionId(ICEditorActionDefinitionIds.OPEN_CVIEW);
|
||||
setAction("ShowInCView", action); //$NON-NLS-1$
|
||||
|
||||
|
||||
//Selection Search group
|
||||
fSelectionSearchGroup = new SelectionSearchGroup(this);
|
||||
|
||||
//Search items
|
||||
fFileSearchAction = new FileSearchAction(getSelectionProvider());
|
||||
|
||||
fFileSearchActionInWorkingSet = new FileSearchActionInWorkingSet(getSelectionProvider());
|
||||
|
@ -504,7 +515,10 @@ public class CEditor extends TextEditor implements ISelectionChangedListener, IS
|
|||
addAction(menu, IContextMenuConstants.GROUP_GENERATE, "ContentAssistProposal"); //$NON-NLS-1$
|
||||
addAction(menu, IContextMenuConstants.GROUP_GENERATE, "AddIncludeOnSelection"); //$NON-NLS-1$
|
||||
addAction(menu, IContextMenuConstants.GROUP_GENERATE, "OpenDeclarations"); //$NON-NLS-1$
|
||||
addAction(menu, IContextMenuConstants.GROUP_GENERATE, "ShowInCView"); //$NON-NLS-1$
|
||||
addAction(menu, IContextMenuConstants.GROUP_GENERATE, "ShowInCView"); //$NON-NLS-1$
|
||||
|
||||
fSelectionSearchGroup.fillContextMenu(menu);
|
||||
|
||||
}
|
||||
|
||||
public void setOutlinePageInput(CContentOutlinePage page, IEditorInput input) {
|
||||
|
|
|
@ -9,36 +9,14 @@
|
|||
# IBM Corporation - initial API and implementation
|
||||
###############################################################################
|
||||
|
||||
group.search=S&earch
|
||||
group.search=Selection S&earch
|
||||
group.declarations= Dec&larations
|
||||
group.references= Re&ferences
|
||||
group.readReferences= &Read Access
|
||||
group.writeReferences= &Write Access
|
||||
group.implementors= &Implementors
|
||||
|
||||
|
||||
Search.Error.search.title=Search Error
|
||||
Search.Error.search.message=An error occurred during the search operation
|
||||
|
||||
Search.Error.javaElementAccess.title=Search Error
|
||||
Search.Error.javaElementAccess.message=An error occurred while accessing a Java element
|
||||
|
||||
Search.Error.markerAttributeAccess.title=Search Error
|
||||
Search.Error.markerAttributeAccess.message=An error occurred while accessing a marker attribute
|
||||
|
||||
Search.Error.createJavaElement.title=Search Error
|
||||
Search.Error.createJavaElement.message=An error occurred while creating a Java element
|
||||
|
||||
Search.Error.openEditor.title=Search Error
|
||||
Search.Error.openEditor.message=Could not open the editor
|
||||
|
||||
Search.Error.codeResolve= Code resolve error
|
||||
|
||||
Search.Error.setDescription.title=Search Error
|
||||
Search.Error.setDescription.message=Cannot save workspace description
|
||||
|
||||
SearchElementSelectionDialog.title=Search
|
||||
SearchElementSelectionDialog.message=Select the element to search for.
|
||||
|
||||
CSearchResultCollector.match= 1 match
|
||||
CSearchResultCollector.matches= {0} matches
|
||||
CSearchResultCollector.done= Search done: {0}.
|
||||
|
@ -74,60 +52,17 @@ CSearchPage.expression.caseSensitive= Case sens&itive
|
|||
# Concatenate two working set names e.g. "Source, Lib"
|
||||
SearchUtil.workingSetConcatenation= {0}, {1}
|
||||
|
||||
Search.FindDeclarationAction.label= &Workspace
|
||||
Search.FindDeclarationAction.tooltip= Search for Declarations of the Selected Element in the Workspace
|
||||
CSearch.FindDeclarationAction.label= &Workspace
|
||||
CSearch.FindDeclarationAction.tooltip= Search for Declarations of the Selected Element in the Workspace
|
||||
|
||||
Search.FindDeclarationsInWorkingSetAction.label= Working &Set...
|
||||
Search.FindDeclarationsInWorkingSetAction.tooltip= Search for Declarations of the Selected Element in a Working Set
|
||||
CSearch.FindDeclarationsInWorkingSetAction.label= Working &Set...
|
||||
CSearch.FindDeclarationsInWorkingSetAction.tooltip= Search for Declarations of the Selected Element in a Working Set
|
||||
|
||||
Search.FindHierarchyDeclarationsAction.label= &Hierarchy
|
||||
Search.FindHierarchyDeclarationsAction.tooltip= Search for Declarations of the Selected Element in its Hierarchy
|
||||
CSearch.FindReferencesAction.label= &Workspace
|
||||
CSearch.FindReferencesAction.tooltip= Search for References to the Selected Element in the Workspace
|
||||
|
||||
Search.FindImplementorsAction.label= &Workspace
|
||||
Search.FindImplementorsAction.tooltip= Search for Implementors of the Selected Interface
|
||||
|
||||
Search.FindImplementorsInWorkingSetAction.label= Working &Set...
|
||||
Search.FindImplementorsInWorkingSetAction.tooltip= Search for Implementors of the Selected Interface in a Working Set
|
||||
|
||||
Search.FindReferencesAction.label= &Workspace
|
||||
Search.FindReferencesAction.tooltip= Search for References to the Selected Element in the Workspace
|
||||
|
||||
Search.FindReferencesAction.BinPrimConstWarnDialog.title= Search for References to a Binary Constant
|
||||
Search.FindReferencesAction.BinPrimConstWarnDialog.message= Matches to this constant will only be discovered in source files and binary files where the constant value is not inlined.
|
||||
|
||||
Search.FindReferencesInWorkingSetAction.label= Working &Set...
|
||||
Search.FindReferencesInWorkingSetAction.tooltip= Search for References to the Selected Element in a Working Set
|
||||
|
||||
Search.FindHierarchyReferencesAction.label= &Hierarchy
|
||||
Search.FindHierarchyReferencesAction.tooltip= Search for References of the Selected Element in its Hierarchy
|
||||
|
||||
Search.FindReadReferencesAction.label= &Workspace
|
||||
Search.FindReadReferencesAction.tooltip= Search for Read References to the Selected Element in the Workspace
|
||||
|
||||
Search.FindReadReferencesInWorkingSetAction.label= Working &Set...
|
||||
Search.FindReadReferencesInWorkingSetAction.tooltip= Search for Read References to the Selected Element in a Working Set
|
||||
|
||||
Search.FindReadReferencesInHierarchyAction.label= &Hierarchy
|
||||
Search.FindReadReferencesInHierarchyAction.tooltip= Search for Read References of the Selected Element in its Hierarchy
|
||||
|
||||
Search.FindWriteReferencesAction.label= &Workspace
|
||||
Search.FindWriteReferencesAction.tooltip= Search for Write References to the Selected Element in the Workspace
|
||||
|
||||
Search.FindWriteReferencesInWorkingSetAction.label= Working &Set...
|
||||
Search.FindWriteReferencesInWorkingSetAction.tooltip= Search for Write References to the Selected Element in a Working Set
|
||||
|
||||
Search.FindWriteReferencesInHierarchyAction.label= &Hierarchy
|
||||
Search.FindWriteReferencesInHierarchyAction.tooltip= Search for Write References of the Selected Element in its Hierarchy
|
||||
|
||||
Search.FindOccurrencesInFile.label= Occurre&nces in File
|
||||
Search.FindOccurrencesInFile.tooltip= Find occurrences of selected element in the editor
|
||||
|
||||
FindOccurrencesEngine.noSource.text= No source available. To perform this operation you need to attach source.
|
||||
FindOccurrencesEngine.noJavaElement.text= Cannot search for the current selection. Please select a valid Java element name.
|
||||
FindOccurrencesEngine.cannotParse.text= Cannot analyze the compilation unit or class file.
|
||||
|
||||
|
||||
JavaSearchOperation.default_package=(default package)
|
||||
CSearch.FindReferencesInWorkingSetAction.label= Working &Set...
|
||||
CSearch.FindReferencesInWorkingSetAction.tooltip= Search for References to the Selected Element in a Working Set
|
||||
|
||||
# The first argument will be replaced by the pattern and the second by the scope
|
||||
CSearchOperation.singularDeclarationsPostfix={0} - 1 Declaration in {1}
|
||||
|
@ -145,23 +80,12 @@ CSearchOperation.pluralWriteReferencesPostfix={0} - {1} Write References in {2}
|
|||
CSearchOperation.pluralImplementorsPostfix={0} - {1} Implementors in {2}
|
||||
CSearchOperation.pluralOccurrencesPostfix={0} - {1} Occurrences in {2}
|
||||
|
||||
|
||||
# The first argument will be replaced by the element name and the second one by the file name
|
||||
JavaSearchInFile.singularPostfix={0} - 1 Occurrence in {1}
|
||||
# The first argument will be replaced by the element name, the second by the count and the last by the file name
|
||||
JavaSearchInFile.pluralPostfix={0} - {1} Occurrences in {2}
|
||||
|
||||
JavaElementAction.typeSelectionDialog.title=Search
|
||||
JavaElementAction.typeSelectionDialog.message=&Select the type to search:
|
||||
JavaElementAction.error.open.message=An exception occurred while opening the type.
|
||||
|
||||
JavaElementAction.operationUnavailable.title= Operation Unavailable
|
||||
JavaElementAction.operationUnavailable.generic= The operation is unavailable on the current selection. Please select a valid Java element name.
|
||||
JavaElementAction.operationUnavailable.field= The operation is unavailable on the current selection. Please select the name of a field.
|
||||
JavaElementAction.operationUnavailable.interface= The operation is unavailable on the current selection. Please select the name of an interface.
|
||||
|
||||
CSearchResultLabelProvider.potentialMatch= \ (inexact)
|
||||
|
||||
CSearchOperation.operationUnavailable.title= Operation Unavailable
|
||||
CSearchOperation.operationUnavailable.message= The operation is unavailable on the current selection.
|
||||
|
||||
|
||||
WorkspaceScope= Workspace
|
||||
WorkingSetScope= Working Set - {0}
|
||||
SelectionScope= Selection
|
||||
|
|
|
@ -0,0 +1,54 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2004 IBM Corporation and others.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Common Public License v0.5
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/cpl-v05.html
|
||||
*
|
||||
* Contributors:
|
||||
* IBM Corp. - Rational Software - initial implementation
|
||||
******************************************************************************/
|
||||
|
||||
package org.eclipse.cdt.internal.ui.search.actions;
|
||||
|
||||
import org.eclipse.cdt.internal.ui.editor.CEditor;
|
||||
import org.eclipse.cdt.internal.ui.search.CSearchMessages;
|
||||
import org.eclipse.jface.action.IMenuManager;
|
||||
import org.eclipse.jface.action.MenuManager;
|
||||
import org.eclipse.search.ui.IContextMenuConstants;
|
||||
import org.eclipse.ui.IWorkbenchSite;
|
||||
import org.eclipse.ui.actions.ActionGroup;
|
||||
|
||||
|
||||
public class DeclarationsSearchGroup extends ActionGroup {
|
||||
|
||||
private FindDeclarationsAction fFindDeclarationsAction;
|
||||
private FindDeclarationsInWorkingSetAction fFindDeclarationsInWorkingSetAction;
|
||||
|
||||
public DeclarationsSearchGroup(IWorkbenchSite site) {
|
||||
fFindDeclarationsAction= new FindDeclarationsAction(site);
|
||||
fFindDeclarationsInWorkingSetAction = new FindDeclarationsInWorkingSetAction(site);
|
||||
}
|
||||
/**
|
||||
* @param editor
|
||||
*/
|
||||
public DeclarationsSearchGroup(CEditor editor) {
|
||||
fFindDeclarationsAction= new FindDeclarationsAction(editor);
|
||||
fFindDeclarationsInWorkingSetAction = new FindDeclarationsInWorkingSetAction(editor);
|
||||
}
|
||||
/*
|
||||
* Method declared on ActionGroup.
|
||||
*/
|
||||
public void fillContextMenu(IMenuManager menu) {
|
||||
super.fillContextMenu(menu);
|
||||
|
||||
IMenuManager incomingMenu = menu;
|
||||
|
||||
IMenuManager declarationsMenu = new MenuManager(CSearchMessages.getString("group.declarations"), IContextMenuConstants.GROUP_SEARCH); //$NON-NLS-1$
|
||||
incomingMenu.add(declarationsMenu);
|
||||
incomingMenu = declarationsMenu;
|
||||
|
||||
incomingMenu.add(fFindDeclarationsAction);
|
||||
incomingMenu.add(fFindDeclarationsInWorkingSetAction);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,270 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2004 IBM Corporation and others.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Common Public License v0.5
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/cpl-v05.html
|
||||
*
|
||||
* Contributors:
|
||||
* IBM Corp. - Rational Software - initial implementation
|
||||
******************************************************************************/
|
||||
|
||||
package org.eclipse.cdt.internal.ui.search.actions;
|
||||
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.FileReader;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
import org.eclipse.cdt.core.CCorePlugin;
|
||||
import org.eclipse.cdt.core.model.CoreModel;
|
||||
import org.eclipse.cdt.core.model.ICElement;
|
||||
import org.eclipse.cdt.core.parser.IParser;
|
||||
import org.eclipse.cdt.core.parser.IScannerInfo;
|
||||
import org.eclipse.cdt.core.parser.IScannerInfoProvider;
|
||||
import org.eclipse.cdt.core.parser.NullSourceElementRequestor;
|
||||
import org.eclipse.cdt.core.parser.ParseError;
|
||||
import org.eclipse.cdt.core.parser.ParserFactory;
|
||||
import org.eclipse.cdt.core.parser.ParserFactoryError;
|
||||
import org.eclipse.cdt.core.parser.ParserLanguage;
|
||||
import org.eclipse.cdt.core.parser.ParserMode;
|
||||
import org.eclipse.cdt.core.parser.ParserUtil;
|
||||
import org.eclipse.cdt.core.parser.ScannerInfo;
|
||||
import org.eclipse.cdt.core.parser.ParseError.ParseErrorKind;
|
||||
import org.eclipse.cdt.core.parser.ast.ASTClassKind;
|
||||
import org.eclipse.cdt.core.parser.ast.IASTClassSpecifier;
|
||||
import org.eclipse.cdt.core.parser.ast.IASTEnumerationSpecifier;
|
||||
import org.eclipse.cdt.core.parser.ast.IASTEnumerator;
|
||||
import org.eclipse.cdt.core.parser.ast.IASTField;
|
||||
import org.eclipse.cdt.core.parser.ast.IASTFunction;
|
||||
import org.eclipse.cdt.core.parser.ast.IASTMethod;
|
||||
import org.eclipse.cdt.core.parser.ast.IASTNamespaceDefinition;
|
||||
import org.eclipse.cdt.core.parser.ast.IASTNode;
|
||||
import org.eclipse.cdt.core.parser.ast.IASTVariable;
|
||||
import org.eclipse.cdt.core.search.ICSearchConstants;
|
||||
import org.eclipse.cdt.core.search.ICSearchScope;
|
||||
import org.eclipse.cdt.core.search.ICSearchConstants.LimitTo;
|
||||
import org.eclipse.cdt.core.search.ICSearchConstants.SearchFor;
|
||||
import org.eclipse.cdt.internal.ui.editor.CEditor;
|
||||
import org.eclipse.cdt.internal.ui.search.CSearchMessages;
|
||||
import org.eclipse.cdt.internal.ui.search.CSearchOperation;
|
||||
import org.eclipse.cdt.internal.ui.search.CSearchResultCollector;
|
||||
import org.eclipse.cdt.ui.CUIPlugin;
|
||||
import org.eclipse.core.resources.IFile;
|
||||
import org.eclipse.core.resources.IProject;
|
||||
import org.eclipse.jface.action.Action;
|
||||
import org.eclipse.jface.dialogs.MessageDialog;
|
||||
import org.eclipse.jface.dialogs.ProgressMonitorDialog;
|
||||
import org.eclipse.jface.text.ITextSelection;
|
||||
import org.eclipse.jface.viewers.ISelection;
|
||||
import org.eclipse.jface.viewers.IStructuredSelection;
|
||||
import org.eclipse.search.ui.SearchUI;
|
||||
import org.eclipse.ui.IEditorPart;
|
||||
import org.eclipse.ui.IWorkbenchSite;
|
||||
|
||||
|
||||
public abstract class FindAction extends Action {
|
||||
|
||||
protected IWorkbenchSite fSite;
|
||||
protected CEditor fEditor;
|
||||
|
||||
public FindAction(CEditor editor){
|
||||
fEditor=editor;
|
||||
fSite=editor.getSite();
|
||||
}
|
||||
|
||||
public FindAction(IWorkbenchSite site){
|
||||
fSite=site;
|
||||
}
|
||||
|
||||
protected IParser setupParser(IFile resourceFile){
|
||||
//Get the scanner info
|
||||
IProject currentProject = resourceFile.getProject();
|
||||
IScannerInfo scanInfo = new ScannerInfo();
|
||||
IScannerInfoProvider provider = CCorePlugin.getDefault().getScannerInfoProvider(currentProject);
|
||||
if (provider != null){
|
||||
IScannerInfo buildScanInfo = provider.getScannerInformation(currentProject);
|
||||
if (buildScanInfo != null){
|
||||
scanInfo = new ScannerInfo(buildScanInfo.getDefinedSymbols(), buildScanInfo.getIncludePaths());
|
||||
}
|
||||
}
|
||||
|
||||
//C or CPP?
|
||||
ParserLanguage language = CoreModel.getDefault().hasCCNature(currentProject) ? ParserLanguage.CPP : ParserLanguage.C;
|
||||
|
||||
IParser parser = null;
|
||||
FileReader reader = null;
|
||||
try {
|
||||
reader = new FileReader(resourceFile.getLocation().toFile());
|
||||
} catch (FileNotFoundException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
parser = ParserFactory.createParser(
|
||||
ParserFactory.createScanner( reader, resourceFile.getLocation().toOSString(), scanInfo, ParserMode.SELECTION_PARSE, language, new NullSourceElementRequestor(), ParserUtil.getScannerLogService() ),
|
||||
new NullSourceElementRequestor(), ParserMode.SELECTION_PARSE, language, ParserUtil.getParserLogService() );
|
||||
|
||||
} catch( ParserFactoryError pfe ){}
|
||||
|
||||
return parser;
|
||||
}
|
||||
/**
|
||||
* @param node
|
||||
*/
|
||||
protected CSearchOperation createSearchOperation(String pattern, SearchFor searchFor) {
|
||||
CSearchOperation op = null;
|
||||
ICSearchScope scope = getScope();
|
||||
String scopeDescription = getScopeDescription();
|
||||
|
||||
//Create a case sensitive search operation - limited by the node
|
||||
List search = new LinkedList();
|
||||
search.add(searchFor);
|
||||
|
||||
CSearchResultCollector collector= new CSearchResultCollector();
|
||||
|
||||
LimitTo limitTo = getLimitTo();
|
||||
|
||||
op = new CSearchOperation(CCorePlugin.getWorkspace(), pattern,true,search,limitTo,scope,scopeDescription,collector);
|
||||
return op;
|
||||
|
||||
}
|
||||
|
||||
protected ISelection getSelection(){
|
||||
ISelection sel = null;
|
||||
if (fSite != null){
|
||||
sel = fSite.getSelectionProvider().getSelection();
|
||||
}
|
||||
|
||||
return sel;
|
||||
}
|
||||
|
||||
public void run() {
|
||||
ISelection sel = getSelection();
|
||||
|
||||
if (sel instanceof IStructuredSelection) {
|
||||
run((IStructuredSelection) sel);
|
||||
} else if (sel instanceof ITextSelection) {
|
||||
run((ITextSelection) sel);
|
||||
}
|
||||
}
|
||||
|
||||
public void run(IStructuredSelection sel){
|
||||
ICElement tempElement = null;
|
||||
|
||||
IEditorPart temp = fSite.getPage().getActiveEditor();
|
||||
CEditor cTemp = null;
|
||||
if (temp instanceof CEditor){
|
||||
cTemp = (CEditor) temp;
|
||||
}
|
||||
|
||||
if (cTemp == null ||
|
||||
cTemp.getSelectionProvider() == null){
|
||||
operationNotAvailableDialog();
|
||||
return;
|
||||
}
|
||||
|
||||
fEditor=cTemp;
|
||||
ITextSelection selection= (ITextSelection) fEditor.getSelectionProvider().getSelection();
|
||||
|
||||
run(selection);
|
||||
}
|
||||
|
||||
public void run(ITextSelection sel){
|
||||
if(sel == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
final ITextSelection selectedText = sel;
|
||||
int selectionStart = selectedText.getOffset();
|
||||
int selectionEnd = selectionStart + selectedText.getLength();
|
||||
|
||||
IFile resourceFile = fEditor.getInputFile();
|
||||
IParser parser = setupParser(resourceFile);
|
||||
IASTNode node = null;
|
||||
|
||||
try{
|
||||
node = parser.parse(selectionStart,selectionEnd);
|
||||
}
|
||||
catch (ParseError er){
|
||||
ParseErrorKind per = er.getErrorKind();
|
||||
int val = per.getEnumValue();
|
||||
er.printStackTrace();
|
||||
}
|
||||
catch (Exception ex){
|
||||
ex.printStackTrace();}
|
||||
|
||||
if (node == null){
|
||||
operationNotAvailableDialog();
|
||||
return;
|
||||
}
|
||||
|
||||
CSearchOperation op = createSearchOperation(selectedText.getText(),getSearchForFromNode(node));
|
||||
|
||||
performSearch(op);
|
||||
}
|
||||
|
||||
private SearchFor getSearchForFromNode(IASTNode node){
|
||||
SearchFor searchFor = null;
|
||||
|
||||
if (node instanceof IASTClassSpecifier){
|
||||
//Find out if class, struct, union
|
||||
IASTClassSpecifier tempNode = (IASTClassSpecifier) node;
|
||||
if(tempNode.getClassKind().equals(ASTClassKind.CLASS)){
|
||||
searchFor = ICSearchConstants.CLASS;
|
||||
}
|
||||
else if (tempNode.getClassKind().equals(ASTClassKind.STRUCT)){
|
||||
searchFor = ICSearchConstants.STRUCT;
|
||||
}
|
||||
else if (tempNode.getClassKind().equals(ASTClassKind.UNION)){
|
||||
searchFor = ICSearchConstants.UNION;
|
||||
}
|
||||
}
|
||||
else if (node instanceof IASTMethod){
|
||||
searchFor = ICSearchConstants.METHOD;
|
||||
}
|
||||
else if (node instanceof IASTFunction){
|
||||
searchFor = ICSearchConstants.FUNCTION;
|
||||
}
|
||||
else if (node instanceof IASTField){
|
||||
searchFor = ICSearchConstants.FIELD;
|
||||
}
|
||||
else if (node instanceof IASTVariable){
|
||||
searchFor = ICSearchConstants.VAR;
|
||||
}
|
||||
else if (node instanceof IASTEnumerationSpecifier){
|
||||
searchFor = ICSearchConstants.ENUM;
|
||||
}
|
||||
else if (node instanceof IASTEnumerator){
|
||||
searchFor = ICSearchConstants.FIELD;
|
||||
}
|
||||
else if (node instanceof IASTNamespaceDefinition){
|
||||
searchFor = ICSearchConstants.NAMESPACE;
|
||||
}
|
||||
|
||||
return searchFor;
|
||||
}
|
||||
|
||||
protected void performSearch(CSearchOperation op){
|
||||
try {
|
||||
SearchUI.activateSearchResultView();
|
||||
|
||||
ProgressMonitorDialog progressMonitor = new ProgressMonitorDialog(fSite.getShell());
|
||||
progressMonitor.run(true, true, op);
|
||||
|
||||
} catch(Exception x) {
|
||||
CUIPlugin.getDefault().log(x);
|
||||
}
|
||||
}
|
||||
|
||||
private void operationNotAvailableDialog(){
|
||||
MessageDialog.openInformation(fEditor.getSite().getShell(),CSearchMessages.getString("CSearchOperation.operationUnavailable.title"), CSearchMessages.getString("CSearchOperation.operationUnavailable.message"));
|
||||
}
|
||||
|
||||
abstract protected String getScopeDescription();
|
||||
|
||||
abstract protected ICSearchScope getScope();
|
||||
|
||||
abstract protected LimitTo getLimitTo();
|
||||
}
|
|
@ -0,0 +1,73 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2004 IBM Corporation and others.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Common Public License v0.5
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/cpl-v05.html
|
||||
*
|
||||
* Contributors:
|
||||
* IBM Corp. - Rational Software - initial implementation
|
||||
******************************************************************************/
|
||||
|
||||
package org.eclipse.cdt.internal.ui.search.actions;
|
||||
|
||||
import org.eclipse.cdt.core.search.ICSearchConstants;
|
||||
import org.eclipse.cdt.core.search.ICSearchScope;
|
||||
import org.eclipse.cdt.core.search.SearchEngine;
|
||||
import org.eclipse.cdt.core.search.ICSearchConstants.LimitTo;
|
||||
import org.eclipse.cdt.internal.ui.editor.CEditor;
|
||||
import org.eclipse.cdt.internal.ui.search.CSearchMessages;
|
||||
import org.eclipse.ui.IWorkbenchSite;
|
||||
|
||||
|
||||
public class FindDeclarationsAction extends FindAction {
|
||||
|
||||
public FindDeclarationsAction(CEditor editor, String label, String tooltip){
|
||||
super(editor);
|
||||
setText(label); //$NON-NLS-1$
|
||||
setToolTipText(tooltip); //$NON-NLS-1$
|
||||
}
|
||||
|
||||
public FindDeclarationsAction(CEditor editor){
|
||||
this(editor,
|
||||
CSearchMessages.getString("CSearch.FindDeclarationAction.label"),
|
||||
CSearchMessages.getString("CSearch.FindDeclarationAction.tooltip"));
|
||||
}
|
||||
|
||||
public FindDeclarationsAction(IWorkbenchSite site){
|
||||
this(site,
|
||||
CSearchMessages.getString("CSearch.FindDeclarationAction.label"),
|
||||
CSearchMessages.getString("CSearch.FindDeclarationAction.tooltip"));
|
||||
}
|
||||
/**
|
||||
* @param site
|
||||
* @param string
|
||||
* @param string2
|
||||
* @param string3
|
||||
*/
|
||||
public FindDeclarationsAction(IWorkbenchSite site, String label, String tooltip) {
|
||||
super(site);
|
||||
setText(label);
|
||||
setToolTipText(tooltip);
|
||||
}
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.internal.ui.editor.selsearch.FindAction#getScope()
|
||||
*/
|
||||
protected ICSearchScope getScope() {
|
||||
return SearchEngine.createWorkspaceScope();
|
||||
}
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.internal.ui.editor.selsearch.FindAction#getScopeDescription()
|
||||
*/
|
||||
protected String getScopeDescription() {
|
||||
// TODO Auto-generated method stub
|
||||
return CSearchMessages.getString("WorkspaceScope");
|
||||
}
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.internal.ui.editor.selsearch.FindAction#getLimitTo()
|
||||
*/
|
||||
protected LimitTo getLimitTo() {
|
||||
// TODO Auto-generated method stub
|
||||
return ICSearchConstants.DECLARATIONS;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,90 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2004 IBM Corporation and others.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Common Public License v0.5
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/cpl-v05.html
|
||||
*
|
||||
* Contributors:
|
||||
* IBM Corp. - Rational Software - initial implementation
|
||||
******************************************************************************/
|
||||
package org.eclipse.cdt.internal.ui.search.actions;
|
||||
|
||||
import org.eclipse.cdt.core.search.ICSearchConstants;
|
||||
import org.eclipse.cdt.core.search.ICSearchScope;
|
||||
import org.eclipse.cdt.core.search.ICSearchConstants.LimitTo;
|
||||
import org.eclipse.cdt.internal.ui.editor.CEditor;
|
||||
import org.eclipse.cdt.internal.ui.search.CSearchMessages;
|
||||
import org.eclipse.cdt.internal.ui.search.CSearchScopeFactory;
|
||||
import org.eclipse.cdt.internal.ui.search.CSearchUtil;
|
||||
import org.eclipse.ui.IWorkbenchSite;
|
||||
import org.eclipse.ui.IWorkingSet;
|
||||
|
||||
public class FindDeclarationsInWorkingSetAction extends FindAction {
|
||||
|
||||
private IWorkingSet[] fWorkingSet;
|
||||
|
||||
/**
|
||||
* @param site
|
||||
*/
|
||||
public FindDeclarationsInWorkingSetAction(IWorkbenchSite site) {
|
||||
this(site,
|
||||
CSearchMessages.getString("CSearch.FindDeclarationsInWorkingSetAction.label"),
|
||||
CSearchMessages.getString("CSearch.FindDeclarationsInWorkingSetAction.tooltip"));
|
||||
}
|
||||
|
||||
/**
|
||||
* @param editor
|
||||
*/
|
||||
public FindDeclarationsInWorkingSetAction(CEditor editor) {
|
||||
this(editor,
|
||||
CSearchMessages.getString("CSearch.FindDeclarationsInWorkingSetAction.label"),
|
||||
CSearchMessages.getString("CSearch.FindDeclarationsInWorkingSetAction.tooltip"));
|
||||
}
|
||||
|
||||
public FindDeclarationsInWorkingSetAction(CEditor editor, String label, String tooltip){
|
||||
super(editor);
|
||||
setText(label); //$NON-NLS-1$
|
||||
setToolTipText(tooltip); //$NON-NLS-1$
|
||||
}
|
||||
/**
|
||||
* @param site
|
||||
* @param string
|
||||
* @param string2
|
||||
* @param string3
|
||||
*/
|
||||
public FindDeclarationsInWorkingSetAction(IWorkbenchSite site,String label, String tooltip){
|
||||
super(site);
|
||||
setText(label); //$NON-NLS-1$
|
||||
setToolTipText(tooltip); //$NON-NLS-1$
|
||||
}
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.internal.ui.editor.selsearch.FindAction#getScopeDescription()
|
||||
*/
|
||||
protected String getScopeDescription() {
|
||||
return CSearchMessages.getString("WorkingSetScope");
|
||||
}
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.internal.ui.editor.selsearch.FindAction#getScope()
|
||||
*/
|
||||
protected ICSearchScope getScope() {
|
||||
//
|
||||
IWorkingSet[] workingSets= fWorkingSet;
|
||||
if (fWorkingSet == null) {
|
||||
workingSets= CSearchScopeFactory.getInstance().queryWorkingSets();
|
||||
if (workingSets == null)
|
||||
return null;
|
||||
}
|
||||
ICSearchScope scope= CSearchScopeFactory.getInstance().createCSearchScope(workingSets);
|
||||
CSearchUtil.updateLRUWorkingSets(workingSets);
|
||||
|
||||
return scope;
|
||||
}
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.internal.ui.editor.selsearch.FindAction#getLimitTo()
|
||||
*/
|
||||
protected LimitTo getLimitTo() {
|
||||
return ICSearchConstants.DECLARATIONS;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,78 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2004 IBM Corporation and others.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Common Public License v0.5
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/cpl-v05.html
|
||||
*
|
||||
* Contributors:
|
||||
* IBM Corp. - Rational Software - initial implementation
|
||||
******************************************************************************/
|
||||
package org.eclipse.cdt.internal.ui.search.actions;
|
||||
|
||||
import org.eclipse.cdt.core.search.ICSearchConstants;
|
||||
import org.eclipse.cdt.core.search.ICSearchScope;
|
||||
import org.eclipse.cdt.core.search.SearchEngine;
|
||||
import org.eclipse.cdt.core.search.ICSearchConstants.LimitTo;
|
||||
import org.eclipse.cdt.internal.ui.editor.CEditor;
|
||||
import org.eclipse.cdt.internal.ui.search.CSearchMessages;
|
||||
import org.eclipse.ui.IWorkbenchSite;
|
||||
|
||||
|
||||
public class FindRefsAction extends FindAction {
|
||||
/**
|
||||
* @param editor
|
||||
*/
|
||||
public FindRefsAction(CEditor editor) {
|
||||
this(editor,
|
||||
CSearchMessages.getString("CSearch.FindReferencesAction.label"),
|
||||
CSearchMessages.getString("CSearch.FindReferencesAction.tooltip"));
|
||||
}
|
||||
|
||||
public FindRefsAction(IWorkbenchSite site){
|
||||
this(site,
|
||||
CSearchMessages.getString("CSearch.FindReferencesAction.label"),
|
||||
CSearchMessages.getString("CSearch.FindReferencesAction.tooltip"));
|
||||
}
|
||||
/**
|
||||
* @param editor
|
||||
* @param string
|
||||
* @param string2
|
||||
* @param string3
|
||||
*/
|
||||
public FindRefsAction(CEditor editor, String label, String tooltip) {
|
||||
super(editor);
|
||||
setText(label); //$NON-NLS-1$
|
||||
setToolTipText(tooltip); //$NON-NLS-1$
|
||||
}
|
||||
/**
|
||||
* @param site
|
||||
* @param string
|
||||
* @param string2
|
||||
* @param string3
|
||||
*/
|
||||
public FindRefsAction(IWorkbenchSite site, String label, String tooltip) {
|
||||
super(site);
|
||||
setText(label);
|
||||
setToolTipText(tooltip);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.internal.ui.editor.selsearch.FindAction#getScopeDescription()
|
||||
*/
|
||||
protected String getScopeDescription() {
|
||||
return CSearchMessages.getString("WorkspaceScope");
|
||||
}
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.internal.ui.editor.selsearch.FindAction#getScope()
|
||||
*/
|
||||
protected ICSearchScope getScope() {
|
||||
return SearchEngine.createWorkspaceScope();
|
||||
}
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.internal.ui.editor.selsearch.FindAction#getLimitTo()
|
||||
*/
|
||||
protected LimitTo getLimitTo() {
|
||||
return ICSearchConstants.REFERENCES;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,87 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2004 IBM Corporation and others.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Common Public License v0.5
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/cpl-v05.html
|
||||
*
|
||||
* Contributors:
|
||||
* IBM Corp. - Rational Software - initial implementation
|
||||
******************************************************************************/
|
||||
package org.eclipse.cdt.internal.ui.search.actions;
|
||||
|
||||
import org.eclipse.cdt.core.search.ICSearchConstants;
|
||||
import org.eclipse.cdt.core.search.ICSearchScope;
|
||||
import org.eclipse.cdt.core.search.ICSearchConstants.LimitTo;
|
||||
import org.eclipse.cdt.internal.ui.editor.CEditor;
|
||||
import org.eclipse.cdt.internal.ui.search.CSearchMessages;
|
||||
import org.eclipse.cdt.internal.ui.search.CSearchScopeFactory;
|
||||
import org.eclipse.cdt.internal.ui.search.CSearchUtil;
|
||||
import org.eclipse.ui.IWorkbenchSite;
|
||||
import org.eclipse.ui.IWorkingSet;
|
||||
|
||||
public class FindRefsInWorkingSetAction extends FindAction {
|
||||
|
||||
public FindRefsInWorkingSetAction(CEditor editor) {
|
||||
this(editor,
|
||||
CSearchMessages.getString("CSearch.FindReferencesInWorkingSetAction.label"),
|
||||
CSearchMessages.getString("CSearch.FindReferencesInWorkingSetAction.tooltip"));
|
||||
}
|
||||
|
||||
public FindRefsInWorkingSetAction(IWorkbenchSite site){
|
||||
this(site,
|
||||
CSearchMessages.getString("CSearch.FindReferencesInWorkingSetAction.label"),
|
||||
CSearchMessages.getString("CSearch.FindReferencesInWorkingSetAction.tooltip"));
|
||||
}
|
||||
/**
|
||||
* @param editor
|
||||
* @param string
|
||||
* @param string2
|
||||
* @param string3
|
||||
*/
|
||||
public FindRefsInWorkingSetAction(CEditor editor, String label, String tooltip) {
|
||||
super(editor);
|
||||
setText(label); //$NON-NLS-1$
|
||||
setToolTipText(tooltip); //$NON-NLS-1$
|
||||
}
|
||||
/**
|
||||
* @param site
|
||||
* @param string
|
||||
* @param string2
|
||||
* @param string3
|
||||
*/
|
||||
public FindRefsInWorkingSetAction(IWorkbenchSite site, String label, String tooltip) {
|
||||
super(site);
|
||||
setText(label); //$NON-NLS-1$
|
||||
setToolTipText(tooltip); //$NON-NLS-1
|
||||
}
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.internal.ui.editor.selsearch.FindAction#getLimitTo()
|
||||
*/
|
||||
protected LimitTo getLimitTo() {
|
||||
return ICSearchConstants.REFERENCES;
|
||||
}
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.internal.ui.editor.selsearch.FindAction#getScopeDescription()
|
||||
*/
|
||||
protected String getScopeDescription() {
|
||||
return CSearchMessages.getString("WorkingSetScope");
|
||||
}
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.internal.ui.editor.selsearch.FindAction#getScope()
|
||||
*/
|
||||
protected ICSearchScope getScope() {
|
||||
IWorkingSet[] workingSets= fWorkingSet;
|
||||
if (fWorkingSet == null) {
|
||||
workingSets= CSearchScopeFactory.getInstance().queryWorkingSets();
|
||||
if (workingSets == null)
|
||||
return null;
|
||||
}
|
||||
ICSearchScope scope= CSearchScopeFactory.getInstance().createCSearchScope(workingSets);
|
||||
CSearchUtil.updateLRUWorkingSets(workingSets);
|
||||
|
||||
return scope;
|
||||
}
|
||||
|
||||
private IWorkingSet[] fWorkingSet;
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2004 IBM Corporation and others.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Common Public License v0.5
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/cpl-v05.html
|
||||
*
|
||||
* Contributors:
|
||||
* IBM Corp. - Rational Software - initial implementation
|
||||
******************************************************************************/
|
||||
package org.eclipse.cdt.internal.ui.search.actions;
|
||||
|
||||
import org.eclipse.cdt.internal.ui.editor.CEditor;
|
||||
import org.eclipse.cdt.internal.ui.search.CSearchMessages;
|
||||
import org.eclipse.jface.action.IMenuManager;
|
||||
import org.eclipse.jface.action.MenuManager;
|
||||
import org.eclipse.search.ui.IContextMenuConstants;
|
||||
import org.eclipse.ui.IWorkbenchSite;
|
||||
import org.eclipse.ui.actions.ActionGroup;
|
||||
|
||||
public class ReferencesSearchGroup extends ActionGroup {
|
||||
|
||||
private FindRefsAction fFindRefsAction;
|
||||
private FindRefsInWorkingSetAction fFindRefsInWorkingSetAction;
|
||||
|
||||
public ReferencesSearchGroup(IWorkbenchSite site) {
|
||||
fFindRefsAction= new FindRefsAction(site);
|
||||
fFindRefsInWorkingSetAction = new FindRefsInWorkingSetAction(site);
|
||||
}
|
||||
/**
|
||||
* @param editor
|
||||
*/
|
||||
public ReferencesSearchGroup(CEditor editor) {
|
||||
fFindRefsAction= new FindRefsAction(editor);
|
||||
fFindRefsInWorkingSetAction = new FindRefsInWorkingSetAction(editor);
|
||||
}
|
||||
|
||||
/*
|
||||
* Method declared on ActionGroup.
|
||||
*/
|
||||
public void fillContextMenu(IMenuManager menu) {
|
||||
|
||||
super.fillContextMenu(menu);
|
||||
|
||||
IMenuManager incomingMenu = menu;
|
||||
|
||||
IMenuManager refsMenu = new MenuManager(CSearchMessages.getString("group.references"), IContextMenuConstants.GROUP_SEARCH); //$NON-NLS-1$
|
||||
incomingMenu.add(refsMenu);
|
||||
incomingMenu = refsMenu;
|
||||
|
||||
incomingMenu.add(fFindRefsAction);
|
||||
incomingMenu.add(fFindRefsInWorkingSetAction);
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,67 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2004 IBM Corporation and others.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Common Public License v0.5
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/cpl-v05.html
|
||||
*
|
||||
* Contributors:
|
||||
* IBM Corp. - Rational Software - initial implementation
|
||||
******************************************************************************/
|
||||
package org.eclipse.cdt.internal.ui.search.actions;
|
||||
|
||||
import org.eclipse.cdt.internal.ui.editor.CEditor;
|
||||
import org.eclipse.cdt.internal.ui.search.CSearchMessages;
|
||||
import org.eclipse.jface.action.IMenuManager;
|
||||
import org.eclipse.jface.action.MenuManager;
|
||||
import org.eclipse.search.ui.IContextMenuConstants;
|
||||
import org.eclipse.ui.IWorkbenchSite;
|
||||
import org.eclipse.ui.actions.ActionGroup;
|
||||
import org.eclipse.ui.part.Page;
|
||||
import org.eclipse.ui.texteditor.ITextEditorActionConstants;
|
||||
|
||||
public class SelectionSearchGroup extends ActionGroup {
|
||||
|
||||
private CEditor fEditor;
|
||||
|
||||
private DeclarationsSearchGroup fDeclarationsSearchGroup;
|
||||
private ReferencesSearchGroup fRefSearchGroup;
|
||||
|
||||
public SelectionSearchGroup(CEditor editor){
|
||||
//TODO: Assert editor not null
|
||||
fEditor= editor;
|
||||
|
||||
fDeclarationsSearchGroup= new DeclarationsSearchGroup(fEditor);
|
||||
fRefSearchGroup = new ReferencesSearchGroup(fEditor);
|
||||
}
|
||||
/**
|
||||
* @param page
|
||||
*/
|
||||
public SelectionSearchGroup(Page page) {
|
||||
this(page.getSite());
|
||||
}
|
||||
/**
|
||||
* @param site
|
||||
*/
|
||||
public SelectionSearchGroup(IWorkbenchSite site) {
|
||||
fDeclarationsSearchGroup= new DeclarationsSearchGroup(site);
|
||||
fRefSearchGroup = new ReferencesSearchGroup(site);
|
||||
}
|
||||
/*
|
||||
* Method declared on ActionGroup.
|
||||
*/
|
||||
public void fillContextMenu(IMenuManager menu) {
|
||||
super.fillContextMenu(menu);
|
||||
|
||||
IMenuManager incomingMenu = menu;
|
||||
|
||||
if (fEditor != null){
|
||||
IMenuManager selSearchMenu = new MenuManager(CSearchMessages.getString("group.search"), IContextMenuConstants.GROUP_SEARCH); //$NON-NLS-1$
|
||||
menu.appendToGroup(ITextEditorActionConstants.GROUP_FIND, selSearchMenu);
|
||||
incomingMenu = selSearchMenu;
|
||||
}
|
||||
|
||||
fDeclarationsSearchGroup.fillContextMenu(incomingMenu);
|
||||
fRefSearchGroup.fillContextMenu(incomingMenu);
|
||||
}
|
||||
}
|
Loading…
Add table
Reference in a new issue