Author: vrubezhny
Date: 2010-09-22 08:32:17 -0400 (Wed, 22 Sep 2010)
New Revision: 25086
Modified:
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/contentassist/computers/XmlELCompletionProposalComputer.java
Log:
JBIDE-7061 : Code completion for EL inserts unnecessary #{}
Issue is fixed
Modified:
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/contentassist/computers/XmlELCompletionProposalComputer.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/contentassist/computers/XmlELCompletionProposalComputer.java 2010-09-22
12:20:03 UTC (rev 25085)
+++
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/contentassist/computers/XmlELCompletionProposalComputer.java 2010-09-22
12:32:17 UTC (rev 25086)
@@ -736,13 +736,24 @@
* @return
*/
protected TextRegion getELPrefix(ContentAssistRequest request) {
- if (!DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE.equals(request.getRegion().getType())
&&
- !DOMRegionContext.XML_CONTENT.equals(request.getRegion().getType()) &&
- !DOMRegionContext.BLOCK_TEXT.equals(request.getRegion().getType()))
+ if (request == null || request.getRegion() == null)
return null;
+
+ IStructuredDocumentRegion documentRegion = request.getDocumentRegion();
+ ITextRegion completionRegion = request.getRegion();
+ String regionType = completionRegion.getType();
- String text = request.getDocumentRegion().getFullText(request.getRegion());
- int startOffset = request.getDocumentRegion().getStartOffset() +
request.getRegion().getStart();
+ if (DOMRegionContext.XML_END_TAG_OPEN.equals(regionType) ||
DOMRegionContext.XML_TAG_OPEN.equals(regionType)) {
+ documentRegion = documentRegion.getPrevious();
+ completionRegion = getCompletionRegion(request.getDocumentRegion().getStartOffset() +
request.getRegion().getStart() - 1, request.getParent());
+ }
+ if (!DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE.equals(completionRegion.getType())
&&
+ !DOMRegionContext.XML_CONTENT.equals(completionRegion.getType()) &&
+ !DOMRegionContext.BLOCK_TEXT.equals(completionRegion.getType())) {
+ return null;
+ }
+ String text = documentRegion.getFullText(completionRegion);
+ int startOffset = documentRegion.getStartOffset() + completionRegion.getStart();
boolean isAttributeValue = false;
boolean hasOpenQuote = false;