1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-23 17:05:26 +02:00

Bug 319196 updated to add common method

This commit is contained in:
Alena Laskavaia 2010-07-21 02:21:46 +00:00
parent 8558e52579
commit 42b0b537db

View file

@ -13,14 +13,19 @@ package org.eclipse.cdt.codan.ui;
import org.eclipse.cdt.codan.internal.core.model.CodanProblemMarker;
import org.eclipse.cdt.codan.internal.ui.CodanUIActivator;
import org.eclipse.cdt.core.CCorePlugin;
import org.eclipse.cdt.core.dom.ast.IASTName;
import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
import org.eclipse.cdt.core.index.IIndex;
import org.eclipse.cdt.core.model.CoreModel;
import org.eclipse.cdt.core.model.ICProject;
import org.eclipse.cdt.core.model.ITranslationUnit;
import org.eclipse.cdt.ui.CDTUITools;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IMarker;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
import org.eclipse.jface.text.BadLocationException;
import org.eclipse.jface.text.IDocument;
@ -191,8 +196,36 @@ public abstract class AbstractCodanCMarkerResolution implements
final int charStart = marker.getAttribute(IMarker.CHAR_START, -1);
final int length = marker.getAttribute(IMarker.CHAR_END, -1)
- charStart;
return getASTNameFromPositions(ast, charStart, length);
}
/**
* @param ast
* @param charStart
* @param length
* @return
*/
protected IASTName getASTNameFromPositions(IASTTranslationUnit ast,
final int charStart, final int length) {
IASTName name = ast.getNodeSelector(null).findEnclosingName(charStart,
length);
return name;
}
/**
* Receives an {@link IIndex} corresponding to the given {@link IMarker}'s
* resource.
*
* @param marker
* the marker to use
* @return the received index
* @throws CoreException
*/
protected IIndex getIndexFromMarker(final IMarker marker)
throws CoreException {
IProject project = marker.getResource().getProject();
ICProject cProject = CoreModel.getDefault().create(project);
IIndex index = CCorePlugin.getIndexManager().getIndex(cProject);
return index;
}
}