Author: vrubezhny
Date: 2010-01-26 13:45:48 -0500 (Tue, 26 Jan 2010)
New Revision: 19940
Modified:
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/contentassist/FaceletPageContectAssistProcessor.java
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/contentassist/XmlContentAssistProcessor.java
Log:
JBIDE-3290: sorting/filtering is not updating correctly in code completion of source page
in VPE
The sorting algorithm for TEXT proposals is modified due to show the TAGNAME proposal
above the EL proposals in case of empty match string and vice versa in case of non-empty
match string.
Modified:
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/contentassist/FaceletPageContectAssistProcessor.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/contentassist/FaceletPageContectAssistProcessor.java 2010-01-26
18:07:18 UTC (rev 19939)
+++
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/contentassist/FaceletPageContectAssistProcessor.java 2010-01-26
18:45:48 UTC (rev 19940)
@@ -74,7 +74,7 @@
}
addTagNameProposals(contentAssistRequest, childPosition, true);
- addAttributeValueELPredicateProposals(contentAssistRequest);
+ addELPredicateProposals(contentAssistRequest, TextProposal.R_TAG_INSERTION, true);
}
/**
Modified:
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/contentassist/XmlContentAssistProcessor.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/contentassist/XmlContentAssistProcessor.java 2010-01-26
18:07:18 UTC (rev 19939)
+++
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/contentassist/XmlContentAssistProcessor.java 2010-01-26
18:45:48 UTC (rev 19940)
@@ -18,6 +18,7 @@
import org.eclipse.jface.text.contentassist.IContextInformation;
import org.eclipse.swt.graphics.Image;
import org.eclipse.wst.xml.ui.internal.contentassist.ContentAssistRequest;
+import org.eclipse.wst.xml.ui.internal.contentassist.XMLRelevanceConstants;
import org.eclipse.wst.xml.ui.internal.editor.XMLEditorPluginImageHelper;
import org.eclipse.wst.xml.ui.internal.editor.XMLEditorPluginImages;
import org.jboss.tools.common.el.core.resolver.ELContext;
@@ -105,7 +106,7 @@
}
addTagNameProposals(contentAssistRequest, childPosition, true);
- addAttributeValueELPredicateProposals(contentAssistRequest);
+ addELPredicateProposals(contentAssistRequest, TextProposal.R_TAG_INSERTION, true);
}
private void addTagNameProposalsForPrefix(
@@ -285,16 +286,16 @@
contentAssistRequest.addProposal(proposal);
}
- addAttributeValueELPredicateProposals(contentAssistRequest);
+ addELPredicateProposals(contentAssistRequest, TextProposal.R_JSP_ATTRIBUTE_VALUE,
false);
}
-
+
/**
* Calculates and adds EL predicate proposals based on the last word typed
* To be used only outside the EL.
*
* @param contentAssistRequest
*/
- protected void addAttributeValueELPredicateProposals(ContentAssistRequest
contentAssistRequest) {
+ protected void addELPredicateProposals(ContentAssistRequest contentAssistRequest, int
baseRelevance, boolean shiftRelevanceAgainstTagNameProposals) {
// Need to check if the cursor is placed right after a word part.
// If there is no word part found then just quit
TextRegion prefix = getELPredicatePrefix(contentAssistRequest);
@@ -306,6 +307,10 @@
if (query == null)
query = ""; //$NON-NLS-1$
String stringQuery = matchString;
+ int relevanceShift = 0;
+ if (shiftRelevanceAgainstTagNameProposals) {
+ relevanceShift += prefix.getText() != null && prefix.getText().trim().length()
> 0 ? (XMLRelevanceConstants.R_STRICTLY_VALID_TAG_INSERTION - baseRelevance + 2): -2;
+ }
int beginChangeOffset = prefix.getStartOffset() + prefix.getOffset();
@@ -343,8 +348,9 @@
String additionalProposalInfo = (textProposal.getContextInfo() == null ? ""
: textProposal.getContextInfo()); //$NON-NLS-1$
int relevance = textProposal.getRelevance();
if (relevance == TextProposal.R_NONE) {
- relevance = TextProposal.R_JSP_JSF_EL_VARIABLE_ATTRIBUTE_VALUE;
+ relevance = baseRelevance;
}
+ relevance += relevanceShift;
AutoContentAssistantProposal proposal = new
AutoContentAssistantProposal(replacementString,
replacementOffset, replacementLength, cursorPosition, image, displayString,
Show replies by date