diff --git a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/ASTCache.java b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/ASTCache.java index 8bfe0fde6af..9b6b6277249 100644 --- a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/ASTCache.java +++ b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/ASTCache.java @@ -14,6 +14,7 @@ package org.eclipse.cdt.internal.core.model; import org.eclipse.cdt.core.CCorePlugin; import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit; import org.eclipse.cdt.core.index.IIndex; +import org.eclipse.cdt.core.index.IIndexManager; import org.eclipse.cdt.core.model.ILanguage; import org.eclipse.cdt.core.model.ITranslationUnit; import org.eclipse.cdt.internal.core.dom.parser.ASTTranslationUnit; @@ -204,7 +205,8 @@ public class ASTCache { ASTRunnable astRunnable) { IIndex index; try { - index = CCorePlugin.getIndexManager().getIndex(tUnit.getCProject()); + index = CCorePlugin.getIndexManager().getIndex(tUnit.getCProject(), + IIndexManager.ADD_EXTENSION_FRAGMENTS_EDITOR); index.acquireReadLock(); } catch (CoreException e) { return e.getStatus(); diff --git a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CModelBuilder2.java b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CModelBuilder2.java index 5f1c040c119..4768c48d85a 100644 --- a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CModelBuilder2.java +++ b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CModelBuilder2.java @@ -121,7 +121,8 @@ public class CModelBuilder2 implements IContributedModelBuilder { @Override public void parse(boolean quickParseMode) throws Exception { final IIndexManager indexManager= CCorePlugin.getIndexManager(); - IIndex index= indexManager.getIndex(fTranslationUnit.getCProject()); + IIndex index = indexManager.getIndex(fTranslationUnit.getCProject(), + IIndexManager.ADD_EXTENSION_FRAGMENTS_EDITOR); try { if (index != null) { diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/index/IIndexManager.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/index/IIndexManager.java index ef65bc7bfef..f8bf7b4743b 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/index/IIndexManager.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/index/IIndexManager.java @@ -111,6 +111,15 @@ public interface IIndexManager extends IPDOMManager { * @since 5.4 */ public static final int ADD_EXTENSION_FRAGMENTS_SEARCH = 0x200; + + /** + * Constant for passing to getIndex methods. This constant, when set, indicates that each index + * content provided via the ReadOnlyIndexFragmentProvider or ReadOnlyPDOMProvider, which is not + * disabled for the editor shall be included in the resulting index. + * + * @since 5.5 + */ + public static final int ADD_EXTENSION_FRAGMENTS_EDITOR = 0x400; /** * Constant for indicating that there is no time out period for joining the indexer job. diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/IndexFactory.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/IndexFactory.java index d1bae72aef7..24e520b1087 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/IndexFactory.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/IndexFactory.java @@ -47,7 +47,8 @@ public class IndexFactory { private static final int ALL_FRAGMENT_OPTIONS = ADD_EXTENSION_FRAGMENTS_ADD_IMPORT | ADD_EXTENSION_FRAGMENTS_CALL_HIERARCHY | ADD_EXTENSION_FRAGMENTS_CONTENT_ASSIST | ADD_EXTENSION_FRAGMENTS_INCLUDE_BROWSER | ADD_EXTENSION_FRAGMENTS_NAVIGATION - | ADD_EXTENSION_FRAGMENTS_SEARCH | ADD_EXTENSION_FRAGMENTS_TYPE_HIERARCHY; + | ADD_EXTENSION_FRAGMENTS_SEARCH | ADD_EXTENSION_FRAGMENTS_TYPE_HIERARCHY + | ADD_EXTENSION_FRAGMENTS_EDITOR; private PDOMManager fPDOMManager; diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/provider/IndexProviderManager.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/provider/IndexProviderManager.java index c073bc00782..c8aceb709b5 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/provider/IndexProviderManager.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/provider/IndexProviderManager.java @@ -76,7 +76,8 @@ public final class IndexProviderManager implements IElementChangedListener { ATTRIBUTE_CALL_HIERARCHY = "call_hierarchy", ATTRIBUTE_TYPE_HIERARCHY = "type_hierarchy", ATTRIBUTE_INCLUDE_BROWSER = "include_browser", - ATTRIBUTE_SEARCH = "search"; + ATTRIBUTE_SEARCH = "search", + ATTRIBUTE_EDITOR = "editor"; private IIndexFragmentProvider[] fragmentProviders; @@ -171,6 +172,7 @@ public final class IndexProviderManager implements IElementChangedListener { result |= getOption(elem, ATTRIBUTE_NAVIGATION, IIndexManager.ADD_EXTENSION_FRAGMENTS_NAVIGATION); result |= getOption(elem, ATTRIBUTE_SEARCH, IIndexManager.ADD_EXTENSION_FRAGMENTS_SEARCH); result |= getOption(elem, ATTRIBUTE_TYPE_HIERARCHY, IIndexManager.ADD_EXTENSION_FRAGMENTS_TYPE_HIERARCHY); + result |= getOption(elem, ATTRIBUTE_EDITOR, IIndexManager.ADD_EXTENSION_FRAGMENTS_EDITOR); return result; } diff --git a/core/org.eclipse.cdt.core/schema/CIndex.exsd b/core/org.eclipse.cdt.core/schema/CIndex.exsd index 137314485d9..67a8dc28b20 100644 --- a/core/org.eclipse.cdt.core/schema/CIndex.exsd +++ b/core/org.eclipse.cdt.core/schema/CIndex.exsd @@ -258,6 +258,13 @@ The only information needed for this extension point is the fully qualified name + + + + Whether the fragment provider shall be used for C/C++ editor. + + + diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/CRefactoringContext.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/CRefactoringContext.java index 9dc38f553c1..c1626864fa4 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/CRefactoringContext.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/CRefactoringContext.java @@ -21,6 +21,7 @@ import org.eclipse.ltk.core.refactoring.RefactoringContext; import org.eclipse.cdt.core.CCorePlugin; import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit; import org.eclipse.cdt.core.index.IIndex; +import org.eclipse.cdt.core.index.IIndexManager; import org.eclipse.cdt.core.model.CoreModel; import org.eclipse.cdt.core.model.ICProject; import org.eclipse.cdt.core.model.ITranslationUnit; @@ -113,7 +114,8 @@ public class CRefactoringContext extends RefactoringContext { throw new IllegalStateException("CRefactoringContext is already disposed."); //$NON-NLS-1$ if (fIndex == null) { ICProject[] projects = CoreModel.getDefault().getCModel().getCProjects(); - IIndex index = CCorePlugin.getIndexManager().getIndex(projects); + IIndex index = CCorePlugin.getIndexManager().getIndex(projects, + IIndexManager.ADD_EXTENSION_FRAGMENTS_EDITOR); try { index.acquireReadLock(); } catch (InterruptedException e) { diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/rename/CRenameProcessor.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/rename/CRenameProcessor.java index 408c225c996..14891cddede 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/rename/CRenameProcessor.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/rename/CRenameProcessor.java @@ -39,6 +39,7 @@ import org.eclipse.cdt.core.CCorePlugin; import org.eclipse.cdt.core.CProjectNature; import org.eclipse.cdt.core.dom.ast.IBinding; import org.eclipse.cdt.core.index.IIndex; +import org.eclipse.cdt.core.index.IIndexManager; import org.eclipse.cdt.core.model.CoreModel; import org.eclipse.cdt.core.model.ICProject; @@ -305,7 +306,8 @@ public class CRenameProcessor extends RenameProcessor { if (indexLockCount == 0) { if (fIndex == null) { ICProject[] projects= CoreModel.getDefault().getCModel().getCProjects(); - fIndex= CCorePlugin.getIndexManager().getIndex(projects); + fIndex = CCorePlugin.getIndexManager().getIndex(projects, + IIndexManager.ADD_EXTENSION_FRAGMENTS_EDITOR); } fIndex.acquireReadLock(); }