From a88eb122a299e2ba9c922af7aec2c06c2608ca82 Mon Sep 17 00:00:00 2001 From: Alain Magloire Date: Tue, 26 Apr 2005 17:58:50 +0000 Subject: [PATCH] Use the offset of the IMatch --- .../ui/text/c/hover/CSourceHover.java | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/c/hover/CSourceHover.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/c/hover/CSourceHover.java index 71aba957992..017d8adc7ed 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/c/hover/CSourceHover.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/c/hover/CSourceHover.java @@ -79,15 +79,15 @@ public class CSourceHover extends AbstractCEditorTextHover implements ITextHover if (expression.length() == 0) return null; + String source = null; + ICElement curr = copy.getElement(expression); if (curr == null) { // Try with the indexer - curr = findMatches(expression); - if (curr == null) { - return null; - } + source = findMatches(expression); + } else { + source= ((ISourceReference) curr).getSource(); } - String source= ((ISourceReference) curr).getSource(); if (source == null || source.trim().length() == 0) return null; @@ -152,7 +152,7 @@ public class CSourceHover extends AbstractCEditorTextHover implements ITextHover return source.substring(i); } - private ICElement findMatches(String name) { + private String findMatches(String name) { IEditorPart editor = getEditor(); if (editor != null) { IEditorInput input= editor.getEditorInput(); @@ -189,8 +189,11 @@ public class CSourceHover extends AbstractCEditorTextHover implements ITextHover IResource resource = matches[0].getResource(); if (resource != null) { ICElement celement = CoreModel.getDefault().create(resource); - if (celement instanceof ITranslationUnit) { - return ((ITranslationUnit)celement).getElement(name); + if (celement instanceof ITranslationUnit) { + ITranslationUnit unit = (ITranslationUnit)celement; + int startOffset = matches[0].getStartOffset(); + int length = matches[0].getEndOffset() - startOffset; + return unit.getBuffer().getText(startOffset, length); } } }