mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-06-07 17:56:01 +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 {
|
private synchronized void createDelegate(ICProject project, IProgressMonitor monitor) throws CoreException {
|
||||||
boolean allFiles= TRUE.equals(fIndexer.getProperty(IndexerPreferences.KEY_INDEX_ALL_FILES));
|
boolean allFiles= TRUE.equals(fIndexer.getProperty(IndexerPreferences.KEY_INDEX_ALL_FILES));
|
||||||
List list= new ArrayList();
|
List sources= new ArrayList();
|
||||||
TranslationUnitCollector collector= new TranslationUnitCollector(list, allFiles, monitor);
|
List headers= allFiles ? sources : null;
|
||||||
|
TranslationUnitCollector collector= new TranslationUnitCollector(sources, headers, allFiles, monitor);
|
||||||
project.accept(collector);
|
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);
|
fDelegate= fIndexer.createTask(tus, NO_TUS, NO_TUS);
|
||||||
if (fDelegate instanceof PDOMIndexerTask) {
|
if (fDelegate instanceof PDOMIndexerTask) {
|
||||||
((PDOMIndexerTask) fDelegate).setCheckTimestamps(fCheckTimestamps);
|
((PDOMIndexerTask) fDelegate).setCheckTimestamps(fCheckTimestamps);
|
||||||
|
|
|
@ -123,7 +123,7 @@ public class PDOMResourceDeltaTask implements IPDOMIndexerTask {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void collectSources(ICContainer container, Collection sources, IProgressMonitor pm) throws CoreException {
|
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) {
|
public void run(IProgressMonitor monitor) {
|
||||||
|
|
|
@ -71,7 +71,7 @@ public class PDOMUpdateTask implements IPDOMIndexerTask {
|
||||||
private synchronized void createDelegate(ICProject project, IProgressMonitor monitor) throws CoreException {
|
private synchronized void createDelegate(ICProject project, IProgressMonitor monitor) throws CoreException {
|
||||||
boolean allFiles= TRUE.equals(fIndexer.getProperty(IndexerPreferences.KEY_INDEX_ALL_FILES));
|
boolean allFiles= TRUE.equals(fIndexer.getProperty(IndexerPreferences.KEY_INDEX_ALL_FILES));
|
||||||
List list= new ArrayList();
|
List list= new ArrayList();
|
||||||
TranslationUnitCollector collector= new TranslationUnitCollector(list, allFiles, monitor);
|
TranslationUnitCollector collector= new TranslationUnitCollector(list, list, allFiles, monitor);
|
||||||
project.accept(collector);
|
project.accept(collector);
|
||||||
ITranslationUnit[] tus= (ITranslationUnit[]) list.toArray(new ITranslationUnit[list.size()]);
|
ITranslationUnit[] tus= (ITranslationUnit[]) list.toArray(new ITranslationUnit[list.size()]);
|
||||||
fDelegate= fIndexer.createTask(tus, NO_TUS, NO_TUS);
|
fDelegate= fIndexer.createTask(tus, NO_TUS, NO_TUS);
|
||||||
|
|
|
@ -21,12 +21,14 @@ import org.eclipse.core.runtime.CoreException;
|
||||||
import org.eclipse.core.runtime.IProgressMonitor;
|
import org.eclipse.core.runtime.IProgressMonitor;
|
||||||
|
|
||||||
final class TranslationUnitCollector implements ICElementVisitor {
|
final class TranslationUnitCollector implements ICElementVisitor {
|
||||||
private final Collection fTUs;
|
private final Collection fSources;
|
||||||
|
private final Collection fHeaders;
|
||||||
private final boolean fAllFiles;
|
private final boolean fAllFiles;
|
||||||
private final IProgressMonitor fProgressMonitor;
|
private final IProgressMonitor fProgressMonitor;
|
||||||
|
|
||||||
public TranslationUnitCollector(Collection tus, boolean allFiles, IProgressMonitor pm) {
|
public TranslationUnitCollector(Collection sources, Collection headers, boolean allFiles, IProgressMonitor pm) {
|
||||||
fTUs = tus;
|
fSources= sources;
|
||||||
|
fHeaders= headers;
|
||||||
fAllFiles = allFiles;
|
fAllFiles = allFiles;
|
||||||
fProgressMonitor= pm;
|
fProgressMonitor= pm;
|
||||||
}
|
}
|
||||||
|
@ -40,11 +42,11 @@ final class TranslationUnitCollector implements ICElementVisitor {
|
||||||
ITranslationUnit tu = (ITranslationUnit)element;
|
ITranslationUnit tu = (ITranslationUnit)element;
|
||||||
if (tu.isSourceUnit()) {
|
if (tu.isSourceUnit()) {
|
||||||
if (fAllFiles || !CoreModel.isScannerInformationEmpty(tu.getResource())) {
|
if (fAllFiles || !CoreModel.isScannerInformationEmpty(tu.getResource())) {
|
||||||
fTUs.add(tu);
|
fSources.add(tu);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (tu.isHeaderUnit()) {
|
else if (fHeaders != null && tu.isHeaderUnit()) {
|
||||||
fTUs.add(tu);
|
fHeaders.add(tu);
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
case ICElement.C_CCONTAINER:
|
case ICElement.C_CCONTAINER:
|
||||||
|
|
Loading…
Add table
Reference in a new issue