mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-29 19:45:01 +02:00
respond to source container changes
also check start and end of problem markers
This commit is contained in:
parent
fdb7641d45
commit
9bba5a8939
2 changed files with 15 additions and 5 deletions
|
@ -55,10 +55,11 @@ public class IndexerModelListener implements IElementChangedListener {
|
||||||
int flags= delta.getFlags();
|
int flags= delta.getFlags();
|
||||||
ICElement element= delta.getElement();
|
ICElement element= delta.getElement();
|
||||||
|
|
||||||
switch(delta.getKind()){
|
switch(kind){
|
||||||
case ICElementDelta.CHANGED:
|
case ICElementDelta.CHANGED:
|
||||||
if ((flags & ICElementDelta.F_CHANGED_PATHENTRY_INCLUDE) != 0 ||
|
if ((flags & ICElementDelta.F_CHANGED_PATHENTRY_INCLUDE) != 0 ||
|
||||||
(flags & ICElementDelta.F_CHANGED_PATHENTRY_MACRO) != 0){
|
(flags & ICElementDelta.F_CHANGED_PATHENTRY_MACRO) != 0 ||
|
||||||
|
(flags & ICElementDelta.F_ADDED_PATHENTRY_SOURCE) != 0 ){
|
||||||
IResource tempResource = element.getResource();
|
IResource tempResource = element.getResource();
|
||||||
SourceRoot tempRootElement = null;
|
SourceRoot tempRootElement = null;
|
||||||
|
|
||||||
|
@ -81,6 +82,12 @@ public class IndexerModelListener implements IElementChangedListener {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} else if( (flags & ICElementDelta.F_REMOVED_PATHENTRY_SOURCE) != 0 ){
|
||||||
|
IResource tempResource = element.getResource();
|
||||||
|
IProject project = tempResource.getProject();
|
||||||
|
if( indexManager.indexProblemsEnabled(project) != 0 ){
|
||||||
|
indexManager.removeIndexerProblems( tempResource );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -642,13 +642,16 @@ public class SourceIndexerRequestor implements ISourceElementRequestor, IIndexCo
|
||||||
|
|
||||||
if (newProblem){
|
if (newProblem){
|
||||||
IMarker marker = tempFile.createMarker(ICModelMarker.INDEXER_MARKER);
|
IMarker marker = tempFile.createMarker(ICModelMarker.INDEXER_MARKER);
|
||||||
|
int start = problem.getSourceStart();
|
||||||
|
int end = problem.getSourceEnd();
|
||||||
|
if( end <= start )
|
||||||
|
end = start + 1;
|
||||||
marker.setAttribute(IMarker.LOCATION, problem.getSourceLineNumber());
|
marker.setAttribute(IMarker.LOCATION, problem.getSourceLineNumber());
|
||||||
marker.setAttribute(IMarker.MESSAGE, INDEXER_MARKER_PREFIX + problem.getMessage());
|
marker.setAttribute(IMarker.MESSAGE, INDEXER_MARKER_PREFIX + problem.getMessage());
|
||||||
marker.setAttribute(IMarker.SEVERITY, IMarker.SEVERITY_WARNING);
|
marker.setAttribute(IMarker.SEVERITY, IMarker.SEVERITY_WARNING);
|
||||||
marker.setAttribute(IMarker.LINE_NUMBER, problem.getSourceLineNumber());
|
marker.setAttribute(IMarker.LINE_NUMBER, problem.getSourceLineNumber());
|
||||||
marker.setAttribute(IMarker.CHAR_START, problem.getSourceStart());
|
marker.setAttribute(IMarker.CHAR_START, start);
|
||||||
marker.setAttribute(IMarker.CHAR_END, problem.getSourceEnd());
|
marker.setAttribute(IMarker.CHAR_END, end);
|
||||||
marker.setAttribute(INDEXER_MARKER_ORIGINATOR, originator.getFullPath().toString() );
|
marker.setAttribute(INDEXER_MARKER_ORIGINATOR, originator.getFullPath().toString() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue