Author: vrubezhny
Date: 2010-01-22 13:51:55 -0500 (Fri, 22 Jan 2010)
New Revision: 19892
Modified:
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/contentassist/AbstractXMLContentAssistProcessor.java
Log:
JBIDE-3290: sorting/filtering is not updating correctly in code completion of source page
in VPE
The proposal replacement text calculation is fixed.
Modified:
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/contentassist/AbstractXMLContentAssistProcessor.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/contentassist/AbstractXMLContentAssistProcessor.java 2010-01-22
17:46:11 UTC (rev 19891)
+++
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/contentassist/AbstractXMLContentAssistProcessor.java 2010-01-22
18:51:55 UTC (rev 19892)
@@ -545,7 +545,6 @@
}
String regionType = completionRegion.getType();
-// IStructuredDocumentRegion sdRegion = getStructuredDocumentRegion(documentPosition);
/*
* Jeremy: Add attribute name proposals before empty tag close
@@ -1002,14 +1001,25 @@
* @return
*/
protected TextRegion getELPredicatePrefix(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;
boolean hasCloseQuote = false;
@@ -1174,7 +1184,7 @@
this(startOffset, offset, length, text, isELStarted, isELClosed, false, false, false,
(char)0);
}
- TextRegion(int startOffset, int offset, int length, String text, boolean isELStarted,
boolean isELClosed,
+ public TextRegion(int startOffset, int offset, int length, String text, boolean
isELStarted, boolean isELClosed,
boolean isAttributeValue, boolean hasOpenQuote, boolean hasCloseQuote, char
quoteChar) {
this.startOffset = startOffset;
this.offset = offset;
Show replies by date