mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-29 19:45:01 +02:00
Fix for PR 92599: [Indexer] Remove annotation markers preference from DOMIndexer & friends
- Replaced indexer problem markers property page block for DOMIndexer. (from SourceIndexerBlock to NullIndexerBlock). Only inclusion not found preprocessor problem markers are going to be generated (there isn't an option in UI to disable/enable them yet). - Also, fixed deleting of indexer problem markers when indexer is changed.
This commit is contained in:
parent
2bd5960655
commit
39e465b9a8
10 changed files with 118 additions and 105 deletions
|
@ -1,3 +1,18 @@
|
|||
2005-05-02 Vladimir Hirsl
|
||||
Fix for PR 92599: [Indexer] Remove annotation markers preference from DOMIndexer & friends
|
||||
Removed indexer problem markers property page block for DOMIndexer.
|
||||
Only inclusion not found preprocessor problem markers are going to be
|
||||
generated (there isn't an option in UI to disable/enable them yet).
|
||||
Also, fixed deleting of indexer problem markers when indexer is changed.
|
||||
|
||||
* index/org/eclipse/cdt/internal/core/index/ctagsindexer/CTagsIndexer.java
|
||||
* index/org/eclipse/cdt/internal/core/index/domsourceindexer/CGenerateIndexVisitor.java
|
||||
* index/org/eclipse/cdt/internal/core/index/domsourceindexer/CPPGenerateIndexVisitor.java
|
||||
* index/org/eclipse/cdt/internal/core/index/domsourceindexer/DOMSourceIndexerRunner.java
|
||||
* index/org/eclipse/cdt/internal/core/index/nullindexer/NullIndexer.java
|
||||
* index/org/eclipse/cdt/internal/core/index/sourceindexer/SourceIndexer.java
|
||||
* index/org/eclipse/cdt/internal/core/search/indexing/IndexManager.java
|
||||
|
||||
2005-05-02 Vladimir Hirsl
|
||||
Fix for PR 96762: DOM indexer misses some obvious symbols
|
||||
Fixed calculation of file locations for names inside macro definitions
|
||||
|
|
|
@ -133,7 +133,7 @@ public class CTagsIndexer extends AbstractCExtension implements ICDTIndexer {
|
|||
* @see org.eclipse.cdt.core.index.ICDTIndexer#indexJobFinishedNotification(org.eclipse.cdt.internal.core.search.processing.IIndexJob)
|
||||
*/
|
||||
public void indexJobFinishedNotification(IIndexJob job) {
|
||||
((CIndexStorage)indexStorage).setNeedToSave(true);
|
||||
indexStorage.setNeedToSave(true);
|
||||
|
||||
if (job instanceof CTagsAddCompilationUnitToIndex){
|
||||
CTagsAddCompilationUnitToIndex tempJob = (CTagsAddCompilationUnitToIndex) job;
|
||||
|
@ -371,11 +371,7 @@ public class CTagsIndexer extends AbstractCExtension implements ICDTIndexer {
|
|||
}
|
||||
|
||||
public void indexerRemoved(IProject project) {
|
||||
//Remove any existing problem markers
|
||||
try {
|
||||
project.deleteMarkers(ICModelMarker.INDEXER_MARKER, true,IResource.DEPTH_ZERO);
|
||||
} catch (CoreException e) {}
|
||||
|
||||
indexManager.removeIndexerProblems(project);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -10,13 +10,11 @@
|
|||
***********************************************************************/
|
||||
package org.eclipse.cdt.internal.core.index.domsourceindexer;
|
||||
|
||||
import org.eclipse.cdt.core.CCorePlugin;
|
||||
import org.eclipse.cdt.core.dom.ast.ASTNodeProperty;
|
||||
import org.eclipse.cdt.core.dom.ast.DOMException;
|
||||
import org.eclipse.cdt.core.dom.ast.IASTElaboratedTypeSpecifier;
|
||||
import org.eclipse.cdt.core.dom.ast.IASTFileLocation;
|
||||
import org.eclipse.cdt.core.dom.ast.IASTName;
|
||||
import org.eclipse.cdt.core.dom.ast.IASTNode;
|
||||
import org.eclipse.cdt.core.dom.ast.IASTProblem;
|
||||
import org.eclipse.cdt.core.dom.ast.IBinding;
|
||||
import org.eclipse.cdt.core.dom.ast.ICompositeType;
|
||||
|
@ -31,12 +29,9 @@ import org.eclipse.cdt.core.dom.ast.IVariable;
|
|||
import org.eclipse.cdt.core.dom.ast.c.CASTVisitor;
|
||||
import org.eclipse.cdt.internal.core.index.IIndex;
|
||||
import org.eclipse.cdt.internal.core.index.domsourceindexer.IndexerOutputWrapper.EntryType;
|
||||
import org.eclipse.core.resources.IFile;
|
||||
import org.eclipse.core.runtime.Path;
|
||||
|
||||
public class CGenerateIndexVisitor extends CASTVisitor {
|
||||
private DOMSourceIndexerRunner indexer;
|
||||
private IFile resourceFile;
|
||||
{
|
||||
shouldVisitNames = true;
|
||||
// shouldVisitDeclarations = false;
|
||||
|
@ -54,10 +49,9 @@ public class CGenerateIndexVisitor extends CASTVisitor {
|
|||
// shouldVisitDesignators = false
|
||||
}
|
||||
|
||||
public CGenerateIndexVisitor(DOMSourceIndexerRunner indexer, IFile resourceFile) {
|
||||
public CGenerateIndexVisitor(DOMSourceIndexerRunner indexer) {
|
||||
super();
|
||||
this.indexer = indexer;
|
||||
this.resourceFile = resourceFile;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
|
@ -84,7 +78,7 @@ public class CGenerateIndexVisitor extends CASTVisitor {
|
|||
if (indexer.areProblemMarkersEnabled() && indexer.shouldRecordProblem(problem)){
|
||||
// Get the location
|
||||
IASTFileLocation loc = IndexEncoderUtil.getFileLocation(problem);
|
||||
processProblem(problem, loc);
|
||||
indexer.processProblem(problem, loc);
|
||||
}
|
||||
return super.visit(problem);
|
||||
}
|
||||
|
@ -101,7 +95,7 @@ public class CGenerateIndexVisitor extends CASTVisitor {
|
|||
if (indexer.areProblemMarkersEnabled() && indexer.shouldRecordProblem(problem)){
|
||||
// Get the location
|
||||
IASTFileLocation loc = IndexEncoderUtil.getFileLocation(name);
|
||||
processProblem(name, loc);
|
||||
indexer.processProblem(name, loc);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
@ -116,21 +110,6 @@ public class CGenerateIndexVisitor extends CASTVisitor {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param name
|
||||
*/
|
||||
private void processProblem(IASTNode node, IASTFileLocation loc) {
|
||||
IFile tempFile = resourceFile;
|
||||
//If we are in an include file, get the include file
|
||||
if (loc != null) {
|
||||
String fileName = loc.getFileName();
|
||||
tempFile = CCorePlugin.getWorkspace().getRoot().getFileForLocation(new Path(fileName));
|
||||
if (tempFile != null) {
|
||||
indexer.generateMarkerProblem(tempFile, resourceFile, node, loc);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param name
|
||||
* @param binding
|
||||
|
|
|
@ -10,13 +10,11 @@
|
|||
***********************************************************************/
|
||||
package org.eclipse.cdt.internal.core.index.domsourceindexer;
|
||||
|
||||
import org.eclipse.cdt.core.CCorePlugin;
|
||||
import org.eclipse.cdt.core.dom.ast.ASTNodeProperty;
|
||||
import org.eclipse.cdt.core.dom.ast.DOMException;
|
||||
import org.eclipse.cdt.core.dom.ast.IASTElaboratedTypeSpecifier;
|
||||
import org.eclipse.cdt.core.dom.ast.IASTFileLocation;
|
||||
import org.eclipse.cdt.core.dom.ast.IASTName;
|
||||
import org.eclipse.cdt.core.dom.ast.IASTNode;
|
||||
import org.eclipse.cdt.core.dom.ast.IASTProblem;
|
||||
import org.eclipse.cdt.core.dom.ast.IBinding;
|
||||
import org.eclipse.cdt.core.dom.ast.ICompositeType;
|
||||
|
@ -42,12 +40,9 @@ import org.eclipse.cdt.core.search.ICSearchConstants;
|
|||
import org.eclipse.cdt.core.search.ICSearchConstants.LimitTo;
|
||||
import org.eclipse.cdt.internal.core.index.IIndex;
|
||||
import org.eclipse.cdt.internal.core.index.domsourceindexer.IndexerOutputWrapper.EntryType;
|
||||
import org.eclipse.core.resources.IFile;
|
||||
import org.eclipse.core.runtime.Path;
|
||||
|
||||
public class CPPGenerateIndexVisitor extends CPPASTVisitor {
|
||||
private DOMSourceIndexerRunner indexer;
|
||||
private IFile resourceFile;
|
||||
|
||||
{
|
||||
shouldVisitNames = true;
|
||||
|
@ -68,10 +63,9 @@ public class CPPGenerateIndexVisitor extends CPPASTVisitor {
|
|||
// shouldVisitTemplateParameters = false;
|
||||
}
|
||||
|
||||
public CPPGenerateIndexVisitor(DOMSourceIndexerRunner indexer, IFile resourceFile) {
|
||||
public CPPGenerateIndexVisitor(DOMSourceIndexerRunner indexer) {
|
||||
super();
|
||||
this.indexer = indexer;
|
||||
this.resourceFile = resourceFile;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
|
@ -98,7 +92,7 @@ public class CPPGenerateIndexVisitor extends CPPASTVisitor {
|
|||
if (indexer.areProblemMarkersEnabled() && indexer.shouldRecordProblem(problem)) {
|
||||
// Get the location
|
||||
IASTFileLocation loc = IndexEncoderUtil.getFileLocation(problem);
|
||||
processProblem(problem, loc);
|
||||
indexer.processProblem(problem, loc);
|
||||
}
|
||||
return super.visit(problem);
|
||||
}
|
||||
|
@ -115,7 +109,7 @@ public class CPPGenerateIndexVisitor extends CPPASTVisitor {
|
|||
if (indexer.areProblemMarkersEnabled() && indexer.shouldRecordProblem(problem)){
|
||||
// Get the location
|
||||
IASTFileLocation loc = IndexEncoderUtil.getFileLocation(name);
|
||||
processProblem(name, loc);
|
||||
indexer.processProblem(name, loc);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
@ -131,21 +125,6 @@ public class CPPGenerateIndexVisitor extends CPPASTVisitor {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param name
|
||||
*/
|
||||
private void processProblem(IASTNode node, IASTFileLocation loc) {
|
||||
IFile tempFile = resourceFile;
|
||||
//If we are in an include file, get the include file
|
||||
if (loc != null) {
|
||||
String fileName = loc.getFileName();
|
||||
tempFile = CCorePlugin.getWorkspace().getRoot().getFileForLocation(new Path(fileName));
|
||||
if (tempFile != null) {
|
||||
indexer.generateMarkerProblem(tempFile, resourceFile, node, loc);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param name
|
||||
* @param binding
|
||||
|
|
|
@ -24,6 +24,7 @@ import org.eclipse.cdt.core.dom.IASTServiceProvider.UnsupportedDialectException;
|
|||
import org.eclipse.cdt.core.dom.ast.ASTVisitor;
|
||||
import org.eclipse.cdt.core.dom.ast.IASTFileLocation;
|
||||
import org.eclipse.cdt.core.dom.ast.IASTName;
|
||||
import org.eclipse.cdt.core.dom.ast.IASTNode;
|
||||
import org.eclipse.cdt.core.dom.ast.IASTPreprocessorMacroDefinition;
|
||||
import org.eclipse.cdt.core.dom.ast.IASTProblem;
|
||||
import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
|
||||
|
@ -79,6 +80,8 @@ public class DOMSourceIndexerRunner extends AbstractIndexer {
|
|||
output.addIndexedFile(file.getFullPath().toString());
|
||||
|
||||
int problems = indexer.indexProblemsEnabled(resourceFile.getProject());
|
||||
// enable inclusion problem markers
|
||||
problems |= SourceIndexer.INCLUSION_PROBLEMS_BIT;
|
||||
setProblemMarkersEnabled(problems);
|
||||
requestRemoveMarkers(resourceFile, null);
|
||||
|
||||
|
@ -100,12 +103,13 @@ public class DOMSourceIndexerRunner extends AbstractIndexer {
|
|||
|
||||
processIncludeDirectives(tu.getDependencyTree());
|
||||
processMacroDefinitions(tu.getMacroDefinitions());
|
||||
processPreprocessorProblems(tu.getPreprocessorProblems());
|
||||
|
||||
ASTVisitor visitor = null;
|
||||
if (language == ParserLanguage.CPP) {
|
||||
visitor = new CPPGenerateIndexVisitor(this, resourceFile);
|
||||
visitor = new CPPGenerateIndexVisitor(this);
|
||||
} else {
|
||||
visitor = new CGenerateIndexVisitor(this, resourceFile);
|
||||
visitor = new CGenerateIndexVisitor(this);
|
||||
}
|
||||
|
||||
tu.accept(visitor);
|
||||
|
@ -239,6 +243,36 @@ public class DOMSourceIndexerRunner extends AbstractIndexer {
|
|||
|
||||
}
|
||||
|
||||
/**
|
||||
* @param preprocessorProblems
|
||||
*/
|
||||
private void processPreprocessorProblems(IASTProblem[] preprocessorProblems) {
|
||||
for (int i = 0; i < preprocessorProblems.length; i++) {
|
||||
IASTProblem problem = preprocessorProblems[i];
|
||||
|
||||
if (areProblemMarkersEnabled() && shouldRecordProblem(problem)) {
|
||||
// Get the location
|
||||
IASTFileLocation loc = IndexEncoderUtil.getFileLocation(problem);
|
||||
processProblem(problem, loc);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param name
|
||||
*/
|
||||
public void processProblem(IASTNode node, IASTFileLocation loc) {
|
||||
IFile tempFile = resourceFile;
|
||||
//If we are in an include file, get the include file
|
||||
if (loc != null) {
|
||||
String fileName = loc.getFileName();
|
||||
tempFile = CCorePlugin.getWorkspace().getRoot().getFileForLocation(new Path(fileName));
|
||||
if (tempFile != null) {
|
||||
generateMarkerProblem(tempFile, resourceFile, node, loc);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.internal.core.index.sourceindexer.AbstractIndexer#addMarkers(org.eclipse.core.resources.IFile, org.eclipse.core.resources.IFile, java.lang.Object, java.lang.Object)
|
||||
*/
|
||||
|
@ -289,11 +323,9 @@ public class DOMSourceIndexerRunner extends AbstractIndexer {
|
|||
int start = fileLoc.getNodeOffset();
|
||||
int end = start + fileLoc.getNodeLength();
|
||||
marker.setAttribute(IMarker.LOCATION, fileLoc.getStartingLineNumber());
|
||||
marker.setAttribute(IMarker.LOCATION, 1);
|
||||
marker.setAttribute(IMarker.MESSAGE, INDEXER_MARKER_PREFIX + errorMessage);
|
||||
marker.setAttribute(IMarker.SEVERITY, IMarker.SEVERITY_WARNING);
|
||||
marker.setAttribute(IMarker.LINE_NUMBER, fileLoc.getStartingLineNumber());
|
||||
marker.setAttribute(IMarker.LINE_NUMBER, 1);
|
||||
marker.setAttribute(IMarker.CHAR_START, start);
|
||||
marker.setAttribute(IMarker.CHAR_END, end);
|
||||
marker.setAttribute(INDEXER_MARKER_ORIGINATOR, originator.getFullPath().toString());
|
||||
|
@ -310,7 +342,10 @@ public class DOMSourceIndexerRunner extends AbstractIndexer {
|
|||
boolean semantics = (getProblemMarkersEnabled() & SourceIndexer.SEMANTIC_PROBLEMS_BIT ) != 0;
|
||||
boolean syntax = (getProblemMarkersEnabled() & SourceIndexer.SYNTACTIC_PROBLEMS_BIT ) != 0;
|
||||
|
||||
if (problem.checkCategory(IASTProblem.PREPROCESSOR_RELATED) ||
|
||||
if (problem.checkCategory(IASTProblem.PREPROCESSOR_INCLUSION_NOT_FOUND)) {
|
||||
return true;
|
||||
}
|
||||
else if (problem.checkCategory(IASTProblem.PREPROCESSOR_RELATED) ||
|
||||
problem.checkCategory(IASTProblem.SCANNER_RELATED))
|
||||
return preprocessor && problem.getID() != IASTProblem.PREPROCESSOR_CIRCULAR_INCLUSION;
|
||||
else if (problem.checkCategory(IASTProblem.SEMANTICS_RELATED))
|
||||
|
|
|
@ -3,6 +3,7 @@ package org.eclipse.cdt.internal.core.index.nullindexer;
|
|||
import java.io.IOException;
|
||||
|
||||
import org.eclipse.cdt.core.AbstractCExtension;
|
||||
import org.eclipse.cdt.core.CCorePlugin;
|
||||
import org.eclipse.cdt.core.index.ICDTIndexer;
|
||||
import org.eclipse.cdt.core.index.IIndexStorage;
|
||||
import org.eclipse.cdt.internal.core.index.IIndex;
|
||||
|
@ -67,8 +68,7 @@ public class NullIndexer extends AbstractCExtension implements ICDTIndexer {
|
|||
}
|
||||
|
||||
public void indexerRemoved(IProject project) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
CCorePlugin.getDefault().getCoreModel().getIndexManager().removeIndexerProblems(project);
|
||||
}
|
||||
|
||||
public void index(IFile document, IIndexerOutput output) throws IOException {
|
||||
|
|
|
@ -25,7 +25,6 @@ import org.eclipse.cdt.core.index.ICDTIndexer;
|
|||
import org.eclipse.cdt.core.index.IIndexChangeListener;
|
||||
import org.eclipse.cdt.core.index.IIndexStorage;
|
||||
import org.eclipse.cdt.core.index.IndexChangeEvent;
|
||||
import org.eclipse.cdt.core.model.ICModelMarker;
|
||||
import org.eclipse.cdt.core.parser.util.ObjectSet;
|
||||
import org.eclipse.cdt.internal.core.Util;
|
||||
import org.eclipse.cdt.internal.core.index.IIndex;
|
||||
|
@ -74,6 +73,7 @@ public class SourceIndexer extends AbstractCExtension implements ICDTIndexer {
|
|||
public static final int PREPROCESSOR_PROBLEMS_BIT = 1;
|
||||
public static final int SEMANTIC_PROBLEMS_BIT = 1 << 1;
|
||||
public static final int SYNTACTIC_PROBLEMS_BIT = 1 << 2;
|
||||
public static final int INCLUSION_PROBLEMS_BIT = 1 << 3;
|
||||
|
||||
public static final String SOURCE_INDEXER_ID = "originalsourceindexer"; //$NON-NLS-1$
|
||||
public static final String SOURCE_INDEXER_UNIQUE_ID = CCorePlugin.PLUGIN_ID + "." + SOURCE_INDEXER_ID; //$NON-NLS-1$;
|
||||
|
@ -84,7 +84,6 @@ public class SourceIndexer extends AbstractCExtension implements ICDTIndexer {
|
|||
protected IndexManager indexManager = null;
|
||||
|
||||
protected HashSet jobSet = null;
|
||||
private boolean indexEnabled = false;
|
||||
|
||||
protected long totalIndexTime = 0;
|
||||
|
||||
|
@ -161,12 +160,7 @@ public class SourceIndexer extends AbstractCExtension implements ICDTIndexer {
|
|||
* Warning: Does not check whether index is consistent (not being used)
|
||||
*/
|
||||
public synchronized boolean haveEncounteredHeader(IPath projectPath, IPath filePath) {
|
||||
|
||||
if (!(indexStorage instanceof CIndexStorage))
|
||||
return false;
|
||||
|
||||
SimpleLookupTable headerTable = ((CIndexStorage)indexStorage).getEncounteredHeaders();
|
||||
|
||||
SimpleLookupTable headerTable = indexStorage.getEncounteredHeaders();
|
||||
|
||||
// Path is already canonical per construction
|
||||
ObjectSet headers = (ObjectSet) headerTable.get(projectPath);
|
||||
|
@ -269,7 +263,6 @@ public class SourceIndexer extends AbstractCExtension implements ICDTIndexer {
|
|||
if (cext.length > 0) {
|
||||
//initializeIndexerId();
|
||||
for (int i = 0; i < cext.length; i++) {
|
||||
String id = cext[i].getID();
|
||||
String orig = cext[i].getExtensionData("indexmarkers"); //$NON-NLS-1$
|
||||
if (orig != null){
|
||||
Integer tempInt = new Integer(orig);
|
||||
|
@ -336,30 +329,9 @@ public class SourceIndexer extends AbstractCExtension implements ICDTIndexer {
|
|||
|
||||
}
|
||||
|
||||
static private class RemoveIndexMarkersJob extends Job{
|
||||
private final IResource resource;
|
||||
public RemoveIndexMarkersJob( IResource resource, String name ){
|
||||
super( name );
|
||||
this.resource = resource;
|
||||
}
|
||||
protected IStatus run(IProgressMonitor monitor) {
|
||||
try {
|
||||
resource.deleteMarkers( ICModelMarker.INDEXER_MARKER, true, IResource.DEPTH_INFINITE );
|
||||
} catch (CoreException e) {
|
||||
return Status.CANCEL_STATUS;
|
||||
}
|
||||
return Status.OK_STATUS;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void removeIndexerProblems( IResource resource){
|
||||
String jobName = "remove markers"; //$NON-NLS-1$
|
||||
RemoveIndexMarkersJob job = new RemoveIndexMarkersJob( resource, jobName );
|
||||
job.setRule( resource );
|
||||
job.setPriority( Job.DECORATE );
|
||||
job.schedule();
|
||||
}
|
||||
indexManager.removeIndexerProblems(resource);
|
||||
}
|
||||
|
||||
public void addIndexChangeListener(IIndexChangeListener listener) {
|
||||
synchronized(indexChangeListeners) {
|
||||
|
@ -422,8 +394,8 @@ public class SourceIndexer extends AbstractCExtension implements ICDTIndexer {
|
|||
* No more job awaiting.
|
||||
*/
|
||||
public void notifyIdle(long idlingTime){
|
||||
if (idlingTime > 1000 && ((CIndexStorage) indexStorage).getNeedToSave())
|
||||
((CIndexStorage) indexStorage).saveIndexes();
|
||||
if (idlingTime > 1000 && indexStorage.getNeedToSave())
|
||||
indexStorage.saveIndexes();
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
|
@ -504,7 +476,7 @@ public class SourceIndexer extends AbstractCExtension implements ICDTIndexer {
|
|||
* @see org.eclipse.cdt.core.index2.IIndexer#indexJobFinishedNotification(org.eclipse.cdt.internal.core.search.processing.IIndexJob)
|
||||
*/
|
||||
public void indexJobFinishedNotification(IIndexJob job) {
|
||||
((CIndexStorage)indexStorage).setNeedToSave(true);
|
||||
indexStorage.setNeedToSave(true);
|
||||
|
||||
if (job instanceof AddCompilationUnitToIndex){
|
||||
AddCompilationUnitToIndex tempJob = (AddCompilationUnitToIndex) job;
|
||||
|
@ -655,15 +627,7 @@ public class SourceIndexer extends AbstractCExtension implements ICDTIndexer {
|
|||
}
|
||||
|
||||
public void indexerRemoved(IProject project) {
|
||||
//Remove any existing problem markers
|
||||
/*try {
|
||||
IMarker[] markers = project.findMarkers(ICModelMarker.INDEXER_MARKER, true, IResource.DEPTH_INFINITE);
|
||||
for (int i=0; i<markers.length; i++){
|
||||
removeIndexerProblems(markers[i].getResource());
|
||||
}
|
||||
} catch (CoreException e) {}*/
|
||||
|
||||
removeIndexerProblems(project);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -19,12 +19,14 @@ import org.eclipse.cdt.core.ICDescriptor;
|
|||
import org.eclipse.cdt.core.ICExtensionReference;
|
||||
import org.eclipse.cdt.core.index.ICDTIndexer;
|
||||
import org.eclipse.cdt.core.index.IIndexStorage;
|
||||
import org.eclipse.cdt.core.model.ICModelMarker;
|
||||
import org.eclipse.cdt.internal.core.index.ctagsindexer.CTagsIndexRequest;
|
||||
import org.eclipse.cdt.internal.core.index.sourceindexer.CIndexStorage;
|
||||
import org.eclipse.cdt.internal.core.index.sourceindexer.IndexRequest;
|
||||
import org.eclipse.cdt.internal.core.index.sourceindexer.SourceIndexer;
|
||||
import org.eclipse.cdt.internal.core.search.processing.IIndexJob;
|
||||
import org.eclipse.cdt.internal.core.search.processing.JobManager;
|
||||
import org.eclipse.core.resources.IMarker;
|
||||
import org.eclipse.core.resources.IProject;
|
||||
import org.eclipse.core.resources.IResource;
|
||||
import org.eclipse.core.resources.IResourceDelta;
|
||||
|
@ -375,4 +377,30 @@ public class IndexManager extends JobManager{
|
|||
job.schedule();
|
||||
}
|
||||
}
|
||||
|
||||
static private class RemoveIndexMarkersJob extends Job{
|
||||
private final IResource resource;
|
||||
public RemoveIndexMarkersJob( IResource resource, String name ){
|
||||
super( name );
|
||||
this.resource = resource;
|
||||
}
|
||||
protected IStatus run(IProgressMonitor monitor) {
|
||||
try {
|
||||
resource.deleteMarkers( ICModelMarker.INDEXER_MARKER, true, IResource.DEPTH_INFINITE );
|
||||
} catch (CoreException e) {
|
||||
return Status.CANCEL_STATUS;
|
||||
}
|
||||
return Status.OK_STATUS;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void removeIndexerProblems( IResource resource){
|
||||
String jobName = "remove markers"; //$NON-NLS-1$
|
||||
RemoveIndexMarkersJob job = new RemoveIndexMarkersJob( resource, jobName );
|
||||
job.setRule( resource );
|
||||
job.setPriority( Job.DECORATE );
|
||||
job.schedule();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,3 +1,12 @@
|
|||
2005-05-04 Vladimir Hirsl
|
||||
Fix for PR 92599: [Indexer] Remove annotation markers preference from DOMIndexer & friends
|
||||
Replaced indexer problem markers property page block for DOMIndexer.
|
||||
(from SourceIndexerBlock to NullIndexerBlock).
|
||||
Only inclusion not found preprocessor problem markers are going to be
|
||||
generated (there isn't an option in UI to disable/enable them yet).
|
||||
|
||||
* plugin.xml
|
||||
|
||||
2005-04-22 Vladimir Hirsl
|
||||
Added per file C/C++ Includes & Symbols property page to display
|
||||
per file scanner info (discovered and user specified).
|
||||
|
|
|
@ -1357,11 +1357,19 @@
|
|||
indexerID="org.eclipse.cdt.core.nullindexer"
|
||||
name="%CDTIndexer.nullindexer"
|
||||
id="org.eclipse.cdt.ui.nullindexerUI"/>
|
||||
<indexerUI
|
||||
class="org.eclipse.cdt.ui.dialogs.NullIndexerBlock"
|
||||
id="org.eclipse.cdt.ui.DOMASTSourceIndexerUI"
|
||||
indexerID="org.eclipse.cdt.core.domsourceindexer"
|
||||
name="%CDTIndexer.domsourceindexer"/>
|
||||
<!-- to enable indexer problem markers property page
|
||||
uncomment this entry and comment the previous one
|
||||
<indexerUI
|
||||
class="org.eclipse.cdt.ui.dialogs.SourceIndexerBlock"
|
||||
id="org.eclipse.cdt.ui.DOMASTSourceIndexerUI"
|
||||
indexerID="org.eclipse.cdt.core.domsourceindexer"
|
||||
name="%CDTIndexer.domsourceindexer"/>
|
||||
-->
|
||||
<indexerUI
|
||||
class="org.eclipse.cdt.ui.dialogs.CTagsIndexerBlock"
|
||||
indexerID="org.eclipse.cdt.core.ctagsindexer"
|
||||
|
|
Loading…
Add table
Reference in a new issue