Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBogdan Gheorghe2005-06-27 01:31:33 +0000
committerBogdan Gheorghe2005-06-27 01:31:33 +0000
commit230c1eafb195a00182662781611f7ddf404a8e45 (patch)
tree8e437be951f154549e7b95c293fa5d9aedd7aa91
parent1f78ede7df212b2d54f8a1e28b6f08cebd1ff300 (diff)
downloadorg.eclipse.cdt-230c1eafb195a00182662781611f7ddf404a8e45.tar.gz
org.eclipse.cdt-230c1eafb195a00182662781611f7ddf404a8e45.tar.xz
org.eclipse.cdt-230c1eafb195a00182662781611f7ddf404a8e45.zip
Fix for 92935
-rw-r--r--core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/index/ctagsindexer/CTagsIndexer.java3
-rw-r--r--core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/index/domsourceindexer/DOMSourceIndexer.java3
-rw-r--r--core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/actions/ReferencesSearchGroup.java44
3 files changed, 46 insertions, 4 deletions
diff --git a/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/index/ctagsindexer/CTagsIndexer.java b/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/index/ctagsindexer/CTagsIndexer.java
index 4eb713e8c29..8973c4a7cbc 100644
--- a/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/index/ctagsindexer/CTagsIndexer.java
+++ b/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/index/ctagsindexer/CTagsIndexer.java
@@ -85,8 +85,7 @@ public class CTagsIndexer extends AbstractCExtension implements ICDTIndexer {
* @see org.eclipse.cdt.core.index.ICDTIndexer#getIndexerFeatures()
*/
public int getIndexerFeatures() {
- // TODO Auto-generated method stub
- return 0;
+ return ICDTIndexer._DECLARATIONS | ICDTIndexer._DEFINITIONS | ICDTIndexer._LINENUMBERS | ICDTIndexer._C | ICDTIndexer._CPP;
}
/* (non-Javadoc)
diff --git a/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/index/domsourceindexer/DOMSourceIndexer.java b/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/index/domsourceindexer/DOMSourceIndexer.java
index bd054f20d27..a7a9defa174 100644
--- a/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/index/domsourceindexer/DOMSourceIndexer.java
+++ b/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/index/domsourceindexer/DOMSourceIndexer.java
@@ -410,8 +410,7 @@ public class DOMSourceIndexer extends AbstractCExtension implements ICDTIndexer
* @see org.eclipse.cdt.core.index2.IIndexer#getIndexerFeatures()
*/
public int getIndexerFeatures() {
- // TODO Auto-generated method stub
- return 0;
+ return ICDTIndexer._DECLARATIONS | ICDTIndexer._DEFINITIONS | ICDTIndexer._REFERENCES | ICDTIndexer._OFFSETINFO | ICDTIndexer._C | ICDTIndexer._CPP;
}
/* (non-Javadoc)
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/actions/ReferencesSearchGroup.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/actions/ReferencesSearchGroup.java
index 88e4dc638a3..7b8b7bc2511 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/actions/ReferencesSearchGroup.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/actions/ReferencesSearchGroup.java
@@ -13,13 +13,21 @@ package org.eclipse.cdt.internal.ui.search.actions;
import java.util.ArrayList;
import java.util.Iterator;
+import org.eclipse.cdt.core.CCorePlugin;
+import org.eclipse.cdt.core.index.ICDTIndexer;
+import org.eclipse.cdt.core.model.ICElement;
+import org.eclipse.cdt.core.model.ICProject;
import org.eclipse.cdt.internal.ui.editor.CEditor;
import org.eclipse.cdt.internal.ui.editor.ExternalSearchEditor;
import org.eclipse.cdt.internal.ui.editor.ICEditorActionDefinitionIds;
import org.eclipse.cdt.internal.ui.search.CSearchMessages;
import org.eclipse.cdt.internal.ui.search.CSearchUtil;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.search.ui.IContextMenuConstants;
import org.eclipse.ui.IWorkbenchSite;
import org.eclipse.ui.IWorkingSet;
@@ -74,6 +82,31 @@ public class ReferencesSearchGroup extends ActionGroup {
menu.appendToGroup(ITextEditorActionConstants.GROUP_FIND, refsMenu);
}
+ if (fEditor != null){
+ IFile fileInput= fEditor.getInputFile();
+ ICDTIndexer indexer = CCorePlugin.getDefault().getCoreModel().getIndexManager().getIndexerForProject(fileInput.getProject());
+ if (indexer != null){
+ setReferenceMenuEnabled(indexer.getIndexerFeatures());
+ }
+ }
+ else if (fSite != null){
+ try {
+ ISelection sel =fSite.getSelectionProvider().getSelection();
+ if (sel instanceof IStructuredSelection){
+ IStructuredSelection structSel = (IStructuredSelection) sel;
+ Object cElement = structSel.getFirstElement();
+ if (cElement instanceof ICElement){
+ ICElement el = (ICElement) cElement;
+ //ICProject p= el.getCProject();
+ IProject proj = el.getCProject().getProject();
+ ICDTIndexer indexer = CCorePlugin.getDefault().getCoreModel().getIndexManager().getIndexerForProject(proj);
+ setReferenceMenuEnabled(indexer.getIndexerFeatures());
+ }
+ }
+ } catch (NullPointerException err){}
+ }
+
+
incomingMenu.add(refsMenu);
incomingMenu = refsMenu;
@@ -87,6 +120,17 @@ public class ReferencesSearchGroup extends ActionGroup {
}
+ private void setReferenceMenuEnabled(int indexFeatures){
+ if ((indexFeatures & ICDTIndexer._REFERENCES) == ICDTIndexer._REFERENCES){
+ //references for this indexer
+ fFindRefsAction.setEnabled(true);
+ fFindRefsInWorkingSetAction.setEnabled(true);
+ } else {
+ //no references for this indexer
+ fFindRefsAction.setEnabled(false);
+ fFindRefsInWorkingSetAction.setEnabled(false);
+ }
+ }
/**
* @return
*/

Back to the top