diff --git a/core/org.eclipse.cdt.core/ChangeLog b/core/org.eclipse.cdt.core/ChangeLog index 2de7bb29cfa..f042d6d18a5 100644 --- a/core/org.eclipse.cdt.core/ChangeLog +++ b/core/org.eclipse.cdt.core/ChangeLog @@ -1,3 +1,10 @@ +2005-04-05 Vladimir Hirsl + Improved filtering of indexer problem markers + + * index/org/eclipse/cdt/core/index/IIndexDelta.java + * index/org/eclipse/cdt/internal/core/index/domsourceindexer/DOMSourceIndexerRunner.java + * index/org/eclipse/cdt/internal/core/index/impl/IndexDelta.java + 2005-03-30 Alain Magloire Patch from Alex Chapiro, tentative fix for PR 89662 * utils/org/eclipse/cdt/utils/spawner/EnvironmentReader.java diff --git a/core/org.eclipse.cdt.core/index/org/eclipse/cdt/core/index/IIndexDelta.java b/core/org.eclipse.cdt.core/index/org/eclipse/cdt/core/index/IIndexDelta.java index e2e1f5614ba..2698fae78e2 100644 --- a/core/org.eclipse.cdt.core/index/org/eclipse/cdt/core/index/IIndexDelta.java +++ b/core/org.eclipse.cdt.core/index/org/eclipse/cdt/core/index/IIndexDelta.java @@ -11,7 +11,7 @@ package org.eclipse.cdt.core.index; -import java.util.ArrayList; +import java.util.List; import org.eclipse.core.resources.IProject; @@ -33,7 +33,7 @@ public interface IIndexDelta { /** * @return Returns the files. */ - public ArrayList getFiles(); + public List getFiles(); /** * @return Returns the project. */ diff --git a/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/index/domsourceindexer/DOMSourceIndexerRunner.java b/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/index/domsourceindexer/DOMSourceIndexerRunner.java index bf6f96f123a..f40d56cc1dd 100644 --- a/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/index/domsourceindexer/DOMSourceIndexerRunner.java +++ b/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/index/domsourceindexer/DOMSourceIndexerRunner.java @@ -11,6 +11,8 @@ package org.eclipse.cdt.internal.core.index.domsourceindexer; import java.io.IOException; +import java.util.Arrays; +import java.util.List; import org.eclipse.cdt.core.ICLogConstants; import org.eclipse.cdt.core.dom.CDOM; @@ -25,11 +27,13 @@ import org.eclipse.cdt.core.dom.ast.IASTPreprocessorMacroDefinition; import org.eclipse.cdt.core.dom.ast.IASTProblem; import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit; import org.eclipse.cdt.core.dom.ast.IProblemBinding; +import org.eclipse.cdt.core.index.IIndexDelta; import org.eclipse.cdt.core.model.CoreModel; import org.eclipse.cdt.core.model.ICModelMarker; import org.eclipse.cdt.core.parser.ParseError; import org.eclipse.cdt.core.parser.ParserLanguage; import org.eclipse.cdt.core.search.ICSearchConstants; +import org.eclipse.cdt.internal.core.index.impl.IndexDelta; import org.eclipse.cdt.internal.core.index.impl.IndexedFile; import org.eclipse.cdt.internal.core.index.sourceindexer.AbstractIndexer; import org.eclipse.cdt.internal.core.index.sourceindexer.SourceIndexer; @@ -62,7 +66,6 @@ public class DOMSourceIndexerRunner extends AbstractIndexer { public void setFileTypes(String[] fileTypes) { // TODO Auto-generated method stub - } protected void indexFile(IFile file) throws IOException { @@ -76,15 +79,14 @@ public class DOMSourceIndexerRunner extends AbstractIndexer { //C or CPP? ParserLanguage language = CoreModel.hasCCNature(resourceFile.getProject()) ? ParserLanguage.CPP : ParserLanguage.C; - + IASTTranslationUnit tu = null; try { long startTime = 0, parseTime = 0, endTime = 0; if (AbstractIndexer.TIMING) startTime = System.currentTimeMillis(); - IASTTranslationUnit tu = CDOM.getInstance().getASTService().getTranslationUnit( - resourceFile, + tu = CDOM.getInstance().getASTService().getTranslationUnit(resourceFile, CDOM.getInstance().getCodeReaderFactory(CDOM.PARSE_SAVED_RESOURCES)); if (AbstractIndexer.TIMING) @@ -136,9 +138,11 @@ public class DOMSourceIndexerRunner extends AbstractIndexer { } // Report events -// ArrayList filesTrav = requestor.getFilesTraversed(); -// IndexDelta indexDelta = new IndexDelta(resourceFile.getProject(),filesTrav, IIndexDelta.INDEX_FINISHED_DELTA); -// CCorePlugin.getDefault().getCoreModel().getIndexManager().notifyListeners(indexDelta); + if (tu != null) { + List filesTrav = Arrays.asList(tu.getIncludeDirectives()); + IndexDelta indexDelta = new IndexDelta(resourceFile.getProject(),filesTrav, IIndexDelta.INDEX_FINISHED_DELTA); + indexer.notifyListeners(indexDelta); + } // Release all resources } } @@ -232,14 +236,18 @@ public class DOMSourceIndexerRunner extends AbstractIndexer { if (markers.length > 0) { IMarker tempMarker = null; - Integer tempInt = null; + int nameStart = -1; + int nameLen = -1; String tempMsgString = null; for (int i=0; i