mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-01 06:05:24 +02:00
178856: use the default settings configuration for index fragments via CIndex extension point
This commit is contained in:
parent
15a448bf76
commit
6b053aa52a
4 changed files with 173 additions and 65 deletions
|
@ -25,18 +25,29 @@ import org.eclipse.core.runtime.CoreException;
|
||||||
* project lifecycles.
|
* project lifecycles.
|
||||||
*/
|
*/
|
||||||
public class DummyProvider1 implements IReadOnlyPDOMProvider {
|
public class DummyProvider1 implements IReadOnlyPDOMProvider {
|
||||||
static List trace = Collections.synchronizedList(new ArrayList());
|
static List prjTrace= Collections.synchronizedList(new ArrayList());
|
||||||
|
static List cfgTrace= Collections.synchronizedList(new ArrayList());
|
||||||
|
|
||||||
|
public static void reset() {
|
||||||
|
prjTrace.clear();
|
||||||
|
cfgTrace.clear();
|
||||||
|
}
|
||||||
|
|
||||||
public static List getProjectsTrace() {
|
public static List getProjectsTrace() {
|
||||||
return trace;
|
return prjTrace;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static List getCfgsTrace() {
|
||||||
|
return cfgTrace;
|
||||||
}
|
}
|
||||||
|
|
||||||
public IPDOMDescriptor[] getDescriptors(ICConfigurationDescription config) {
|
public IPDOMDescriptor[] getDescriptors(ICConfigurationDescription config) {
|
||||||
|
cfgTrace.add(config);
|
||||||
return new IPDOMDescriptor[0];
|
return new IPDOMDescriptor[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean providesFor(ICProject project) throws CoreException {
|
public boolean providesFor(ICProject project) throws CoreException {
|
||||||
trace.add(project);
|
prjTrace.add(project);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,6 +39,7 @@ import org.eclipse.cdt.core.settings.model.ICFileDescription;
|
||||||
import org.eclipse.cdt.core.settings.model.ICFolderDescription;
|
import org.eclipse.cdt.core.settings.model.ICFolderDescription;
|
||||||
import org.eclipse.cdt.core.settings.model.ICLanguageSetting;
|
import org.eclipse.cdt.core.settings.model.ICLanguageSetting;
|
||||||
import org.eclipse.cdt.core.settings.model.ICProjectDescription;
|
import org.eclipse.cdt.core.settings.model.ICProjectDescription;
|
||||||
|
import org.eclipse.cdt.core.settings.model.ICProjectDescriptionPreferences;
|
||||||
import org.eclipse.cdt.core.settings.model.ICResourceDescription;
|
import org.eclipse.cdt.core.settings.model.ICResourceDescription;
|
||||||
import org.eclipse.cdt.core.settings.model.ICSettingContainer;
|
import org.eclipse.cdt.core.settings.model.ICSettingContainer;
|
||||||
import org.eclipse.cdt.core.settings.model.ICSettingEntry;
|
import org.eclipse.cdt.core.settings.model.ICSettingEntry;
|
||||||
|
@ -48,6 +49,7 @@ import org.eclipse.cdt.core.settings.model.ICStorageElement;
|
||||||
import org.eclipse.cdt.core.settings.model.ICTargetPlatformSetting;
|
import org.eclipse.cdt.core.settings.model.ICTargetPlatformSetting;
|
||||||
import org.eclipse.cdt.core.settings.model.WriteAccessException;
|
import org.eclipse.cdt.core.settings.model.WriteAccessException;
|
||||||
import org.eclipse.cdt.core.settings.model.extension.CConfigurationData;
|
import org.eclipse.cdt.core.settings.model.extension.CConfigurationData;
|
||||||
|
import org.eclipse.cdt.core.settings.model.extension.impl.CDefaultConfigurationData;
|
||||||
import org.eclipse.cdt.core.testplugin.CProjectHelper;
|
import org.eclipse.cdt.core.testplugin.CProjectHelper;
|
||||||
import org.eclipse.cdt.internal.core.index.IIndexFragment;
|
import org.eclipse.cdt.internal.core.index.IIndexFragment;
|
||||||
import org.eclipse.cdt.internal.core.index.provider.IIndexFragmentProvider;
|
import org.eclipse.cdt.internal.core.index.provider.IIndexFragmentProvider;
|
||||||
|
@ -65,6 +67,8 @@ import org.eclipse.core.runtime.QualifiedName;
|
||||||
* Example usage and test for IIndexProvider
|
* Example usage and test for IIndexProvider
|
||||||
*/
|
*/
|
||||||
public class IndexProviderManagerTest extends IndexTestBase {
|
public class IndexProviderManagerTest extends IndexTestBase {
|
||||||
|
final CCorePlugin core= CCorePlugin.getDefault();
|
||||||
|
|
||||||
public IndexProviderManagerTest() {
|
public IndexProviderManagerTest() {
|
||||||
super("IndexProviderManagerTest");
|
super("IndexProviderManagerTest");
|
||||||
}
|
}
|
||||||
|
@ -74,7 +78,7 @@ public class IndexProviderManagerTest extends IndexTestBase {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testProvider_SimpleLifeCycle() throws Exception {
|
public void testProvider_SimpleLifeCycle() throws Exception {
|
||||||
DummyProvider1.getProjectsTrace().clear();
|
DummyProvider1.reset();
|
||||||
List cprojects = new ArrayList(), expectedTrace = new ArrayList();
|
List cprojects = new ArrayList(), expectedTrace = new ArrayList();
|
||||||
try {
|
try {
|
||||||
for(int i=0; i<3; i++) {
|
for(int i=0; i<3; i++) {
|
||||||
|
@ -98,7 +102,7 @@ public class IndexProviderManagerTest extends IndexTestBase {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testProvider_OverDeleteAndAdd() throws Exception {
|
public void testProvider_OverDeleteAndAdd() throws Exception {
|
||||||
DummyProvider1.getProjectsTrace().clear();
|
DummyProvider1.reset();
|
||||||
List expectedTrace = new ArrayList();
|
List expectedTrace = new ArrayList();
|
||||||
ICProject cproject = null;
|
ICProject cproject = null;
|
||||||
try {
|
try {
|
||||||
|
@ -121,7 +125,7 @@ public class IndexProviderManagerTest extends IndexTestBase {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testProvider_OverMove() throws Exception {
|
public void testProvider_OverMove() throws Exception {
|
||||||
DummyProvider1.getProjectsTrace().clear();
|
DummyProvider1.reset();
|
||||||
List cprojects = new ArrayList();
|
List cprojects = new ArrayList();
|
||||||
List expectedTrace = new ArrayList();
|
List expectedTrace = new ArrayList();
|
||||||
|
|
||||||
|
@ -151,7 +155,68 @@ public class IndexProviderManagerTest extends IndexTestBase {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testIndexFactoryConfigurationUsage() throws Exception {
|
||||||
|
IIndex index;
|
||||||
|
|
||||||
|
ICProject cproject= CProjectHelper.createCCProject("IndexFactoryConfigurationUsageTest", IPDOMManager.ID_NO_INDEXER);
|
||||||
|
IProject project= cproject.getProject();
|
||||||
|
|
||||||
|
ICProjectDescription pd= core.getProjectDescription(project);
|
||||||
|
ICConfigurationDescription cfg1= newCfg(pd, "project", "config1");
|
||||||
|
ICConfigurationDescription cfg2= newCfg(pd, "project", "config2");
|
||||||
|
core.setProjectDescription(project, pd);
|
||||||
|
|
||||||
|
index= CCorePlugin.getIndexManager().getIndex(cproject);
|
||||||
|
CCorePlugin.getIndexManager().joinIndexer(8000, NPM);
|
||||||
|
|
||||||
|
try {
|
||||||
|
DummyProvider1.reset();
|
||||||
|
changeConfigRelations(project, ICProjectDescriptionPreferences.CONFIGS_LINK_SETTINGS_AND_ACTIVE);
|
||||||
|
assertEquals(0, DummyProvider1.getProjectsTrace().size());
|
||||||
|
assertEquals(0, DummyProvider1.getCfgsTrace().size());
|
||||||
|
|
||||||
|
changeActiveConfiguration(project, cfg1);
|
||||||
|
DummyProvider1.reset();
|
||||||
|
index= CCorePlugin.getIndexManager().getIndex(cproject);
|
||||||
|
assertEquals(0, DummyProvider1.getProjectsTrace().size());
|
||||||
|
assertEquals(1, DummyProvider1.getCfgsTrace().size());
|
||||||
|
assertEquals("project.config1", ((ICConfigurationDescription)DummyProvider1.getCfgsTrace().get(0)).getId());
|
||||||
|
|
||||||
|
changeActiveConfiguration(project, cfg2);
|
||||||
|
DummyProvider1.reset();
|
||||||
|
index= CCorePlugin.getIndexManager().getIndex(cproject);
|
||||||
|
assertEquals(0, DummyProvider1.getProjectsTrace().size());
|
||||||
|
assertEquals(1, DummyProvider1.getCfgsTrace().size());
|
||||||
|
assertEquals("project.config2", ((ICConfigurationDescription)DummyProvider1.getCfgsTrace().get(0)).getId());
|
||||||
|
|
||||||
|
DummyProvider1.reset();
|
||||||
|
changeConfigRelations(project, ICProjectDescriptionPreferences.CONFIGS_INDEPENDENT);
|
||||||
|
assertEquals(0, DummyProvider1.getProjectsTrace().size());
|
||||||
|
assertEquals(0, DummyProvider1.getCfgsTrace().size());
|
||||||
|
|
||||||
|
changeActiveConfiguration(project, cfg1);
|
||||||
|
DummyProvider1.reset();
|
||||||
|
index= CCorePlugin.getIndexManager().getIndex(cproject);
|
||||||
|
assertEquals(0, DummyProvider1.getProjectsTrace().size());
|
||||||
|
assertEquals(1, DummyProvider1.getCfgsTrace().size());
|
||||||
|
// should still be config2, as the change in active configuration does not matter
|
||||||
|
assertEquals("project.config2", ((ICConfigurationDescription)DummyProvider1.getCfgsTrace().get(0)).getId());
|
||||||
|
|
||||||
|
changeActiveConfiguration(project, cfg2);
|
||||||
|
DummyProvider1.reset();
|
||||||
|
index= CCorePlugin.getIndexManager().getIndex(cproject);
|
||||||
|
assertEquals(0, DummyProvider1.getProjectsTrace().size());
|
||||||
|
assertEquals(1, DummyProvider1.getCfgsTrace().size());
|
||||||
|
// there should be no change from the previous state (also config2)
|
||||||
|
assertEquals("project.config2", ((ICConfigurationDescription)DummyProvider1.getCfgsTrace().get(0)).getId());
|
||||||
|
} finally {
|
||||||
|
if (cproject != null) {
|
||||||
|
cproject.getProject().delete(IResource.FORCE | IResource.ALWAYS_DELETE_PROJECT_CONTENT, new NullProgressMonitor());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void testGetProvidedFragments() throws Exception {
|
public void testGetProvidedFragments() throws Exception {
|
||||||
ICProject cproject= CProjectHelper.createCProject("IndexProviderManagerTest", "bin", IPDOMManager.ID_NO_INDEXER);
|
ICProject cproject= CProjectHelper.createCProject("IndexProviderManagerTest", "bin", IPDOMManager.ID_NO_INDEXER);
|
||||||
|
|
||||||
|
@ -258,6 +323,26 @@ public class IndexProviderManagerTest extends IndexTestBase {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private ICConfigurationDescription newCfg(ICProjectDescription des, String project, String config) throws CoreException {
|
||||||
|
CDefaultConfigurationData data= new CDefaultConfigurationData(project+"."+config, project+" "+config+" name", null);
|
||||||
|
data.initEmptyData();
|
||||||
|
return des.createConfiguration(CCorePlugin.DEFAULT_PROVIDER_ID, data);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void changeActiveConfiguration(IProject project, ICConfigurationDescription cfg) throws CoreException {
|
||||||
|
ICProjectDescription pd= core.getProjectDescription(project);
|
||||||
|
pd.setActiveConfiguration(pd.getConfigurationById(cfg.getId()));
|
||||||
|
core.setProjectDescription(project, pd);
|
||||||
|
CCorePlugin.getIndexManager().joinIndexer(8000, NPM);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void changeConfigRelations(IProject project, int option) throws CoreException {
|
||||||
|
ICProjectDescription pd= core.getProjectDescription(project);
|
||||||
|
pd.setConfigurationRelations(option);
|
||||||
|
core.setProjectDescription(project, pd);
|
||||||
|
CCorePlugin.getIndexManager().joinIndexer(8000, NPM);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class MockStateIndexProvider implements IIndexProvider {
|
class MockStateIndexProvider implements IIndexProvider {
|
||||||
|
|
|
@ -145,7 +145,20 @@ public interface ICProjectDescription extends ICSettingContainer,
|
||||||
*/
|
*/
|
||||||
void setSessionProperty(QualifiedName name, Object value);
|
void setSessionProperty(QualifiedName name, Object value);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the default setting ICConfigurationDescription. This is the configuration
|
||||||
|
* used by the CDT editor and views.
|
||||||
|
*
|
||||||
|
* @see ICProjectDescriptionPreferences#setConfigurationRelations(int)
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
ICConfigurationDescription getDefaultSettingConfiguration();
|
ICConfigurationDescription getDefaultSettingConfiguration();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the default setting ICConfigurationDescription. This is the configuration
|
||||||
|
* used by the CDT editor and views.
|
||||||
|
*
|
||||||
|
* @param cfg
|
||||||
|
*/
|
||||||
void setDefaultSettingConfiguration(ICConfigurationDescription cfg);
|
void setDefaultSettingConfiguration(ICConfigurationDescription cfg);
|
||||||
}
|
}
|
||||||
|
|
|
@ -58,7 +58,6 @@ public class IndexFactory {
|
||||||
boolean addDependent= (options & ADD_DEPENDENT) != 0;
|
boolean addDependent= (options & ADD_DEPENDENT) != 0;
|
||||||
boolean skipProvided= (options & SKIP_PROVIDED) != 0;
|
boolean skipProvided= (options & SKIP_PROVIDED) != 0;
|
||||||
|
|
||||||
IndexProviderManager m = CCoreInternals.getPDOMManager().getIndexProviderManager();
|
|
||||||
HashMap map= new HashMap();
|
HashMap map= new HashMap();
|
||||||
Collection selectedProjects= getProjects(projects, addDependencies, addDependent, map, new Integer(1));
|
Collection selectedProjects= getProjects(projects, addDependencies, addDependent, map, new Integer(1));
|
||||||
|
|
||||||
|
@ -70,14 +69,7 @@ public class IndexFactory {
|
||||||
safeAddFragment(fragments, pdom);
|
safeAddFragment(fragments, pdom);
|
||||||
|
|
||||||
if(!skipProvided) {
|
if(!skipProvided) {
|
||||||
ICProjectDescription pd= CoreModel.getDefault().getProjectDescription(cproject.getProject(), false);
|
safeAddProvidedFragments(cproject, fragments);
|
||||||
if(pd!=null) {
|
|
||||||
ICConfigurationDescription activeCfg= pd.getActiveConfiguration();
|
|
||||||
IIndexFragment[] pFragments= m.getProvidedIndexFragments(activeCfg);
|
|
||||||
for(int i=0; i<pFragments.length; i++) {
|
|
||||||
safeAddFragment(fragments, pFragments[i]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -96,15 +88,9 @@ public class IndexFactory {
|
||||||
ICProject cproject = (ICProject) iter.next();
|
ICProject cproject = (ICProject) iter.next();
|
||||||
IWritableIndexFragment pdom= (IWritableIndexFragment) fPDOMManager.getPDOM(cproject);
|
IWritableIndexFragment pdom= (IWritableIndexFragment) fPDOMManager.getPDOM(cproject);
|
||||||
safeAddFragment(fragments, pdom);
|
safeAddFragment(fragments, pdom);
|
||||||
|
|
||||||
if(!skipProvided) {
|
if(!skipProvided) {
|
||||||
ICProjectDescription pd= CoreModel.getDefault().getProjectDescription(cproject.getProject(), false);
|
safeAddProvidedFragments(cproject, fragments);
|
||||||
if(pd!=null) {
|
|
||||||
ICConfigurationDescription activeCfg= pd.getActiveConfiguration();
|
|
||||||
IIndexFragment[] pFragments= m.getProvidedIndexFragments(activeCfg);
|
|
||||||
for(int i=0; i<pFragments.length; i++) {
|
|
||||||
safeAddFragment(fragments, pFragments[i]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -113,6 +99,38 @@ public class IndexFactory {
|
||||||
return new CIndex((IIndexFragment[]) pdoms.toArray(new IIndexFragment[pdoms.size()]), primaryFragmentCount);
|
return new CIndex((IIndexFragment[]) pdoms.toArray(new IIndexFragment[pdoms.size()]), primaryFragmentCount);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public IWritableIndex getWritableIndex(ICProject project) throws CoreException {
|
||||||
|
Collection selectedProjects= Collections.singleton(project);
|
||||||
|
Map readOnlyFrag= new LinkedHashMap();
|
||||||
|
Map fragments= new LinkedHashMap();
|
||||||
|
for (Iterator iter = selectedProjects.iterator(); iter.hasNext(); ) {
|
||||||
|
ICProject cproject = (ICProject) iter.next();
|
||||||
|
IWritableIndexFragment pdom= (IWritableIndexFragment) fPDOMManager.getPDOM(cproject);
|
||||||
|
if (pdom != null) {
|
||||||
|
safeAddFragment(fragments, pdom);
|
||||||
|
safeAddProvidedFragments(cproject, readOnlyFrag);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
selectedProjects= getProjects(new ICProject[] {project}, true, false, new HashMap(), new Integer(1));
|
||||||
|
selectedProjects.remove(project);
|
||||||
|
|
||||||
|
for (Iterator iter = selectedProjects.iterator(); iter.hasNext(); ) {
|
||||||
|
ICProject cproject = (ICProject) iter.next();
|
||||||
|
safeAddFragment(readOnlyFrag, (IIndexFragment) fPDOMManager.getPDOM(cproject));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (fragments.isEmpty()) {
|
||||||
|
throw new CoreException(CCorePlugin.createStatus(
|
||||||
|
MessageFormat.format(Messages.IndexFactory_errorNoSuchPDOM0, new Object[]{project.getElementName()})));
|
||||||
|
}
|
||||||
|
|
||||||
|
Collection pdoms= fragments.values();
|
||||||
|
Collection roPdoms= readOnlyFrag.values();
|
||||||
|
return new WritableCIndex((IWritableIndexFragment[]) pdoms.toArray(new IWritableIndexFragment[pdoms.size()]),
|
||||||
|
(IIndexFragment[]) roPdoms.toArray(new IIndexFragment[roPdoms.size()]) );
|
||||||
|
}
|
||||||
|
|
||||||
private Collection getProjects(ICProject[] projects, boolean addDependencies, boolean addDependent, HashMap map, Integer markWith) {
|
private Collection getProjects(ICProject[] projects, boolean addDependencies, boolean addDependent, HashMap map, Integer markWith) {
|
||||||
List projectsToSearch= new ArrayList();
|
List projectsToSearch= new ArrayList();
|
||||||
|
|
||||||
|
@ -172,47 +190,6 @@ public class IndexFactory {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public IWritableIndex getWritableIndex(ICProject project) throws CoreException {
|
|
||||||
IndexProviderManager m = CCoreInternals.getPDOMManager().getIndexProviderManager();
|
|
||||||
|
|
||||||
Collection selectedProjects= Collections.singleton(project);
|
|
||||||
Map readOnlyFrag= new LinkedHashMap();
|
|
||||||
Map fragments= new LinkedHashMap();
|
|
||||||
for (Iterator iter = selectedProjects.iterator(); iter.hasNext(); ) {
|
|
||||||
ICProject p = (ICProject) iter.next();
|
|
||||||
IWritableIndexFragment pdom= (IWritableIndexFragment) fPDOMManager.getPDOM(p);
|
|
||||||
if (pdom != null) {
|
|
||||||
safeAddFragment(fragments, pdom);
|
|
||||||
ICProjectDescription pd= CoreModel.getDefault().getProjectDescription(p.getProject(), false);
|
|
||||||
if(pd!=null) {
|
|
||||||
ICConfigurationDescription activeCfg= pd.getActiveConfiguration();
|
|
||||||
IIndexFragment[] pFragments= m.getProvidedIndexFragments(activeCfg);
|
|
||||||
for(int i=0; i<pFragments.length; i++) {
|
|
||||||
safeAddFragment(readOnlyFrag, pFragments[i]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
selectedProjects= getProjects(new ICProject[] {project}, true, false, new HashMap(), new Integer(1));
|
|
||||||
selectedProjects.remove(project);
|
|
||||||
|
|
||||||
for (Iterator iter = selectedProjects.iterator(); iter.hasNext(); ) {
|
|
||||||
ICProject cproject = (ICProject) iter.next();
|
|
||||||
safeAddFragment(readOnlyFrag, (IIndexFragment) fPDOMManager.getPDOM(cproject));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (fragments.isEmpty()) {
|
|
||||||
throw new CoreException(CCorePlugin.createStatus(
|
|
||||||
MessageFormat.format(Messages.IndexFactory_errorNoSuchPDOM0, new Object[]{project.getElementName()})));
|
|
||||||
}
|
|
||||||
|
|
||||||
Collection pdoms= fragments.values();
|
|
||||||
Collection roPdoms= readOnlyFrag.values();
|
|
||||||
return new WritableCIndex((IWritableIndexFragment[]) pdoms.toArray(new IWritableIndexFragment[pdoms.size()]),
|
|
||||||
(IIndexFragment[]) roPdoms.toArray(new IIndexFragment[roPdoms.size()]) );
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add an entry for the specified fragment. This copes with problems occuring when reading
|
* Add an entry for the specified fragment. This copes with problems occuring when reading
|
||||||
|
@ -238,4 +215,26 @@ public class IndexFactory {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds ID -> IIndexFragment entries to the specified Map, for fragments provided under the
|
||||||
|
* CIndex extension point for the specified ICProject
|
||||||
|
* @param cproject
|
||||||
|
* @param fragments
|
||||||
|
*/
|
||||||
|
private void safeAddProvidedFragments(ICProject cproject, Map fragments) {
|
||||||
|
ICProjectDescription pd= CoreModel.getDefault().getProjectDescription(cproject.getProject(), false);
|
||||||
|
if(pd!=null) {
|
||||||
|
IndexProviderManager ipm = CCoreInternals.getPDOMManager().getIndexProviderManager();
|
||||||
|
ICConfigurationDescription cfg= pd.getDefaultSettingConfiguration();
|
||||||
|
try {
|
||||||
|
IIndexFragment[] pFragments= ipm.getProvidedIndexFragments(cfg);
|
||||||
|
for(int i=0; i<pFragments.length; i++) {
|
||||||
|
safeAddFragment(fragments, pFragments[i]);
|
||||||
|
}
|
||||||
|
} catch(CoreException ce) {
|
||||||
|
CCorePlugin.log(ce);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue