From 42b0b537db48ed573340261b32ee01314a0f23de Mon Sep 17 00:00:00 2001 From: Alena Laskavaia Date: Wed, 21 Jul 2010 02:21:46 +0000 Subject: [PATCH] Bug 319196 updated to add common method --- .../ui/AbstractCodanCMarkerResolution.java | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/codan/org.eclipse.cdt.codan.ui/src/org/eclipse/cdt/codan/ui/AbstractCodanCMarkerResolution.java b/codan/org.eclipse.cdt.codan.ui/src/org/eclipse/cdt/codan/ui/AbstractCodanCMarkerResolution.java index 6c9574668eb..a00a35e618b 100644 --- a/codan/org.eclipse.cdt.codan.ui/src/org/eclipse/cdt/codan/ui/AbstractCodanCMarkerResolution.java +++ b/codan/org.eclipse.cdt.codan.ui/src/org/eclipse/cdt/codan/ui/AbstractCodanCMarkerResolution.java @@ -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; + } }