mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-23 22:52:11 +02:00
Fix for indexer progress
This commit is contained in:
parent
e8a5971083
commit
01274ff514
4 changed files with 14 additions and 11 deletions
|
@ -118,10 +118,11 @@ public class PDOMRebuildTask implements IPDOMIndexerTask {
|
|||
|
||||
private synchronized void createDelegate(ICProject project, IProgressMonitor monitor) throws CoreException {
|
||||
boolean allFiles= TRUE.equals(fIndexer.getProperty(IndexerPreferences.KEY_INDEX_ALL_FILES));
|
||||
List list= new ArrayList();
|
||||
TranslationUnitCollector collector= new TranslationUnitCollector(list, allFiles, monitor);
|
||||
List sources= new ArrayList();
|
||||
List headers= allFiles ? sources : null;
|
||||
TranslationUnitCollector collector= new TranslationUnitCollector(sources, headers, allFiles, monitor);
|
||||
project.accept(collector);
|
||||
ITranslationUnit[] tus= (ITranslationUnit[]) list.toArray(new ITranslationUnit[list.size()]);
|
||||
ITranslationUnit[] tus= (ITranslationUnit[]) sources.toArray(new ITranslationUnit[sources.size()]);
|
||||
fDelegate= fIndexer.createTask(tus, NO_TUS, NO_TUS);
|
||||
if (fDelegate instanceof PDOMIndexerTask) {
|
||||
((PDOMIndexerTask) fDelegate).setCheckTimestamps(fCheckTimestamps);
|
||||
|
|
|
@ -123,7 +123,7 @@ public class PDOMResourceDeltaTask implements IPDOMIndexerTask {
|
|||
}
|
||||
|
||||
private void collectSources(ICContainer container, Collection sources, IProgressMonitor pm) throws CoreException {
|
||||
container.accept(new TranslationUnitCollector(sources, fAllFiles, pm));
|
||||
container.accept(new TranslationUnitCollector(sources, sources, fAllFiles, pm));
|
||||
}
|
||||
|
||||
public void run(IProgressMonitor monitor) {
|
||||
|
|
|
@ -71,7 +71,7 @@ public class PDOMUpdateTask implements IPDOMIndexerTask {
|
|||
private synchronized void createDelegate(ICProject project, IProgressMonitor monitor) throws CoreException {
|
||||
boolean allFiles= TRUE.equals(fIndexer.getProperty(IndexerPreferences.KEY_INDEX_ALL_FILES));
|
||||
List list= new ArrayList();
|
||||
TranslationUnitCollector collector= new TranslationUnitCollector(list, allFiles, monitor);
|
||||
TranslationUnitCollector collector= new TranslationUnitCollector(list, list, allFiles, monitor);
|
||||
project.accept(collector);
|
||||
ITranslationUnit[] tus= (ITranslationUnit[]) list.toArray(new ITranslationUnit[list.size()]);
|
||||
fDelegate= fIndexer.createTask(tus, NO_TUS, NO_TUS);
|
||||
|
|
|
@ -21,12 +21,14 @@ import org.eclipse.core.runtime.CoreException;
|
|||
import org.eclipse.core.runtime.IProgressMonitor;
|
||||
|
||||
final class TranslationUnitCollector implements ICElementVisitor {
|
||||
private final Collection fTUs;
|
||||
private final Collection fSources;
|
||||
private final Collection fHeaders;
|
||||
private final boolean fAllFiles;
|
||||
private final IProgressMonitor fProgressMonitor;
|
||||
|
||||
public TranslationUnitCollector(Collection tus, boolean allFiles, IProgressMonitor pm) {
|
||||
fTUs = tus;
|
||||
public TranslationUnitCollector(Collection sources, Collection headers, boolean allFiles, IProgressMonitor pm) {
|
||||
fSources= sources;
|
||||
fHeaders= headers;
|
||||
fAllFiles = allFiles;
|
||||
fProgressMonitor= pm;
|
||||
}
|
||||
|
@ -40,11 +42,11 @@ final class TranslationUnitCollector implements ICElementVisitor {
|
|||
ITranslationUnit tu = (ITranslationUnit)element;
|
||||
if (tu.isSourceUnit()) {
|
||||
if (fAllFiles || !CoreModel.isScannerInformationEmpty(tu.getResource())) {
|
||||
fTUs.add(tu);
|
||||
fSources.add(tu);
|
||||
}
|
||||
}
|
||||
else if (tu.isHeaderUnit()) {
|
||||
fTUs.add(tu);
|
||||
else if (fHeaders != null && tu.isHeaderUnit()) {
|
||||
fHeaders.add(tu);
|
||||
}
|
||||
return false;
|
||||
case ICElement.C_CCONTAINER:
|
||||
|
|
Loading…
Add table
Reference in a new issue