1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-29 19:45:01 +02:00

Fix for 92935

This commit is contained in:
Bogdan Gheorghe 2005-06-27 01:31:33 +00:00
parent 1f78ede7df
commit 230c1eafb1
3 changed files with 46 additions and 4 deletions

View file

@ -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)

View file

@ -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)

View file

@ -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
*/