[jbosstools-commits] JBoss Tools SVN: r42601 - trunk/jst/plugins/org.jboss.tools.jst.text.ext/src/org/jboss/tools/jst/text/ext/hyperlink.
jbosstools-commits at lists.jboss.org
jbosstools-commits at lists.jboss.org
Mon Jul 16 17:44:20 EDT 2012
Author: scabanovich
Date: 2012-07-16 17:44:20 -0400 (Mon, 16 Jul 2012)
New Revision: 42601
Modified:
trunk/jst/plugins/org.jboss.tools.jst.text.ext/src/org/jboss/tools/jst/text/ext/hyperlink/ELHyperlinkDetector.java
Log:
JBIDE-12295
https://issues.jboss.org/browse/JBIDE-12295
Open-on of definition of a var, which has unresolved value.
Modified: trunk/jst/plugins/org.jboss.tools.jst.text.ext/src/org/jboss/tools/jst/text/ext/hyperlink/ELHyperlinkDetector.java
===================================================================
--- trunk/jst/plugins/org.jboss.tools.jst.text.ext/src/org/jboss/tools/jst/text/ext/hyperlink/ELHyperlinkDetector.java 2012-07-16 21:38:33 UTC (rev 42600)
+++ trunk/jst/plugins/org.jboss.tools.jst.text.ext/src/org/jboss/tools/jst/text/ext/hyperlink/ELHyperlinkDetector.java 2012-07-16 21:44:20 UTC (rev 42601)
@@ -31,6 +31,7 @@
import org.jboss.tools.common.el.core.resolver.ELResolution;
import org.jboss.tools.common.el.core.resolver.ELResolver;
import org.jboss.tools.common.el.core.resolver.ELSegment;
+import org.jboss.tools.common.el.core.resolver.ELSegmentImpl;
import org.jboss.tools.common.el.core.resolver.IOpenableReference;
import org.jboss.tools.jst.web.kb.PageContextFactory;
@@ -52,6 +53,7 @@
ELInvocationExpression expression = findInvocationExpressionByOffset(reference, region.getOffset());
if(expression != null){
ELResolver[] resolvers = context.getElResolvers();
+ ELSegment unresolved = null;
for(ELResolver resolver : resolvers){
ELResolution resolution = resolver.resolve(context, expression, region.getOffset());
if(resolution != null){
@@ -67,10 +69,22 @@
links.add(new ELHyperlink(textViewer.getDocument(), reference, segment, openable));
}
}
+ } else if(segment != null && ((ELSegmentImpl)segment).getVar() != null && unresolved == null && segment.getOpenable().length > 0) {
+ unresolved = segment;
}
-
}
}
+ if(links.isEmpty() && unresolved != null) {
+ //This is a case when a reference to var is resolved, but its value is not resolved.
+ //More than one resolver can see that var, we may use any one of them.
+ //Available openable is to the var definition.
+ IOpenableReference[] openables = unresolved.getOpenable();
+ if(openables.length > 0) {
+ for (IOpenableReference openable: openables) {
+ links.add(new ELHyperlink(textViewer.getDocument(), reference, unresolved, openable));
+ }
+ }
+ }
}
}
More information about the jbosstools-commits
mailing list