Author: vrubezhny
Date: 2011-08-12 11:45:23 -0400 (Fri, 12 Aug 2011)
New Revision: 33855
Modified:
trunk/common/plugins/org.jboss.tools.common.text.xml/src/org/jboss/tools/common/text/xml/contentassist/ProposalSorter.java
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/contentassist/computers/AbstractXmlCompletionProposalComputer.java
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/contentassist/computers/JspELCompletionProposalComputer.java
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/contentassist/computers/XmlTagCompletionProposalComputer.java
Log:
JBIDE-9515
EL code completion is broken
Issue is fixed
Modified:
trunk/common/plugins/org.jboss.tools.common.text.xml/src/org/jboss/tools/common/text/xml/contentassist/ProposalSorter.java
===================================================================
---
trunk/common/plugins/org.jboss.tools.common.text.xml/src/org/jboss/tools/common/text/xml/contentassist/ProposalSorter.java 2011-08-12
15:43:31 UTC (rev 33854)
+++
trunk/common/plugins/org.jboss.tools.common.text.xml/src/org/jboss/tools/common/text/xml/contentassist/ProposalSorter.java 2011-08-12
15:45:23 UTC (rev 33855)
@@ -41,9 +41,9 @@
if (proposals == null)
return null;
ICompletionProposal[] resultArray = (ICompletionProposal[])proposals.toArray(new
ICompletionProposal[proposals.size()]);
+ resultArray = makeUnique(resultArray);
Object[] sorted = createSorter().sort(resultArray);
System.arraycopy(sorted, 0, resultArray, 0, sorted.length);
- resultArray = makeUnique(resultArray);
return Arrays.asList(resultArray);
}
@@ -107,6 +107,15 @@
if (existingProposal == null) {
existingProposals.put(replString, proposal);
unique.add(proposal);
+ } else {
+ if (existingProposal instanceof IRelevanceCompletionProposal && proposal
instanceof IRelevanceCompletionProposal) {
+ if (((IRelevanceCompletionProposal)existingProposal).getRelevance() <
+ ((IRelevanceCompletionProposal)proposal).getRelevance()) {
+ existingProposals.put(replString, proposal);
+ unique.remove(existingProposal);
+ unique.add(proposal);
+ }
+ }
}
}
return unique.toArray(new ICompletionProposal[unique.size()]);
Modified:
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/contentassist/computers/AbstractXmlCompletionProposalComputer.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/contentassist/computers/AbstractXmlCompletionProposalComputer.java 2011-08-12
15:43:31 UTC (rev 33854)
+++
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/contentassist/computers/AbstractXmlCompletionProposalComputer.java 2011-08-12
15:45:23 UTC (rev 33855)
@@ -57,6 +57,7 @@
private static final String[] EMPTY_TAGS = new String[0];
public static final String EL_DOLLAR_PREFIX = "${"; //$NON-NLS-1$
public static final String EL_NUMBER_PREFIX = "#{"; //$NON-NLS-1$
+ public static final String EL_SUFFIX = "}"; //$NON-NLS-1$
public static final String[] EL_PREFIXES = {EL_DOLLAR_PREFIX, EL_NUMBER_PREFIX};
protected CompletionProposalInvocationContext fCurrentContext;
@@ -729,4 +730,7 @@
protected boolean startsWithELBeginning(String text) {
return (text != null && (text.startsWith(EL_DOLLAR_PREFIX) ||
text.startsWith(EL_NUMBER_PREFIX)));
}
+ protected boolean endsWithELBeginning(String text) {
+ return (text != null && text.endsWith(EL_SUFFIX));
+ }
}
Modified:
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/contentassist/computers/JspELCompletionProposalComputer.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/contentassist/computers/JspELCompletionProposalComputer.java 2011-08-12
15:43:31 UTC (rev 33854)
+++
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/contentassist/computers/JspELCompletionProposalComputer.java 2011-08-12
15:45:23 UTC (rev 33855)
@@ -90,10 +90,6 @@
return null;
}
- protected boolean startsWithELBeginning(String text) {
- return (text != null && text.startsWith("${")); //$NON-NLS-1$
//$NON-NLS-2$
- }
-
protected void setVars(ELContextImpl context, IFile file) {
ELCompletionEngine fakeEngine = new ELCompletionEngine() {
Modified:
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/contentassist/computers/XmlTagCompletionProposalComputer.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/contentassist/computers/XmlTagCompletionProposalComputer.java 2011-08-12
15:43:31 UTC (rev 33854)
+++
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/contentassist/computers/XmlTagCompletionProposalComputer.java 2011-08-12
15:45:23 UTC (rev 33855)
@@ -572,10 +572,9 @@
ELInstance is = ELUtil.findInstance(model, inValueOffset);// ELInstance
ELInvocationExpression ie = ELUtil.findExpression(model, inValueOffset);//
ELExpression
+ boolean isELStarted = (model != null && is != null &&
startsWithELBeginning(is.getFirstToken() == null ? null : is.getFirstToken().getText()));
+ boolean isELClosed = (model != null && is != null &&
endsWithELBeginning(is.getFirstToken() == null ? null : is.getLastToken().getText()));
- boolean isELStarted = (model != null && is != null &&
startsWithELBeginning(text));
- boolean isELClosed = (model != null && is != null &&
model.toString().endsWith("}")); //$NON-NLS-1$
-
// boolean insideEL = startOffset + model.toString().length()
TextRegion tr = new TextRegion(startOffset, ie == null ? inValueOffset :
ie.getStartPosition(),
ie == null ? 0 : inValueOffset - ie.getStartPosition(), ie == null ? "" :
ie.getText(), //$NON-NLS-1$
Show replies by date