diff --git a/core/org.eclipse.cdt.core/ChangeLog b/core/org.eclipse.cdt.core/ChangeLog index a3f3c66d0d6..b3ae0a9a963 100644 --- a/core/org.eclipse.cdt.core/ChangeLog +++ b/core/org.eclipse.cdt.core/ChangeLog @@ -1,3 +1,10 @@ +2004-05-07 David Inglis + + Setup a default scanner provider which uses the c path entries. + + * src/org/eclipse/cdt/core/CCorePluging.java + * src/org/eclipse/cdt/core/resources/ScannerProvider.java + 2004-05-07 Alain Magloire Bug in the PathEntyrManager, the container diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CCorePlugin.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CCorePlugin.java index ef5f163f226..33b2467710a 100644 --- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CCorePlugin.java +++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CCorePlugin.java @@ -25,6 +25,7 @@ import org.eclipse.cdt.core.model.IWorkingCopy; import org.eclipse.cdt.core.parser.IScannerInfoProvider; import org.eclipse.cdt.core.resources.IConsole; import org.eclipse.cdt.core.resources.IPathEntryStore; +import org.eclipse.cdt.core.resources.ScannerProvider; import org.eclipse.cdt.core.search.SearchEngine; import org.eclipse.cdt.internal.core.CDTLogWriter; import org.eclipse.cdt.internal.core.CDescriptorManager; @@ -916,6 +917,9 @@ public class CCorePlugin extends Plugin { } catch (CoreException e) { // log(e); } + if ( provider == null) { + return ScannerProvider.getInstance(); + } } return provider; } diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/resources/ScannerProvider.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/resources/ScannerProvider.java index 51506052e57..0ee87dee143 100644 --- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/resources/ScannerProvider.java +++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/resources/ScannerProvider.java @@ -38,8 +38,18 @@ public class ScannerProvider extends AbstractCExtension implements IScannerInfoP // Listeners interested in build model changes private static Map listeners; + private static ScannerProvider fProvider; + // Map of the cache scannerInfos + public static synchronized IScannerInfoProvider getInstance() { + if ( fProvider == null) { + fProvider = new ScannerProvider(); + CoreModel.getDefault().addElementChangedListener(fProvider); + } + return fProvider; + } + /* * @return */ @@ -119,7 +129,7 @@ public class ScannerProvider extends AbstractCExtension implements IScannerInfoP if (refCProject != null) { IPathEntry[] projEntries = refCProject.getResolvedPathEntries(); for (int j = 0; j < projEntries.length; j++) { - if (entries[i].getEntryKind() == IPathEntry.CDT_INCLUDE) { + if (entries[i].isExported()) { addInfoFromEntry(projEntries[j], resPath, includeList, symbolMap); } }