Author: scabanovich
Date: 2011-07-27 17:12:09 -0400 (Wed, 27 Jul 2011)
New Revision: 33273
Modified:
trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/ca/AbstractELCompletionEngine.java
Log:
JBIDE-9087
https://issues.jboss.org/browse/JBIDE-9087
Modified:
trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/ca/AbstractELCompletionEngine.java
===================================================================
---
trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/ca/AbstractELCompletionEngine.java 2011-07-27
21:11:36 UTC (rev 33272)
+++
trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/ca/AbstractELCompletionEngine.java 2011-07-27
21:12:09 UTC (rev 33273)
@@ -495,7 +495,11 @@
// JBIDE-512, JBIDE-2541 related changes ===>>>
TypeInfoCollector.MemberInfo bijectedAttribute = null;
- JavaMemberELSegmentImpl segment = new
JavaMemberELSegmentImpl(operand.getFirstToken());
+ LexicalToken t = operand.getFirstToken();
+ if(t != null && t != operand.getLastToken() && operand.getLastToken()
!= null) {
+ t = t.getCombinedToken(operand.getLastToken());
+ }
+ JavaMemberELSegmentImpl segment = new JavaMemberELSegmentImpl(t);
segment.setResolved(true);
resolution.addSegment(segment);
@@ -556,6 +560,21 @@
for (V var : resolvedVariables) {
TypeInfoCollector.MemberInfo member = getMemberInfoByVariable(var,
returnEqualedVariablesOnly, offset);
if (member != null && !members.contains(member)) {
+ String name = var.getName();
+ if(name.indexOf('.') >= 0) {
+ LexicalToken last = expr.getFirstToken();
+ StringBuffer sb = new StringBuffer();
+ sb.append(last.getText());
+ while(!name.equals(sb.toString()) && last != null) {
+ last = last.getNextToken();
+ if(last != null) {
+ sb.append(last.getText());
+ }
+ }
+ if(last != null && name.equals(sb.toString())) {
+ segment = new
JavaMemberELSegmentImpl(expr.getFirstToken().getCombinedToken(last));
+ }
+ }
members.add(member);
segment.setMemberInfo(member);
segment.getVariables().add(var);