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:
parent
1f78ede7df
commit
230c1eafb1
3 changed files with 46 additions and 4 deletions
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
*/
|
||||
|
|
Loading…
Add table
Reference in a new issue