Bug fixes for JSP region errors.
diff --git a/bundles/org.eclipse.wst.jsdt.web.core/src/org/eclipse/wst/jsdt/web/core/internal/java/JsTranslator.java b/bundles/org.eclipse.wst.jsdt.web.core/src/org/eclipse/wst/jsdt/web/core/internal/java/JsTranslator.java
index 9f0f99d..b34172e 100644
--- a/bundles/org.eclipse.wst.jsdt.web.core/src/org/eclipse/wst/jsdt/web/core/internal/java/JsTranslator.java
+++ b/bundles/org.eclipse.wst.jsdt.web.core/src/org/eclipse/wst/jsdt/web/core/internal/java/JsTranslator.java
@@ -27,6 +27,7 @@
import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionCollection;
+import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionContainer;
import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
@@ -336,7 +337,11 @@
String type = region.getType();
// content assist was not showing up in JSP inside a javascript
// region
- if (type == DOMRegionContext.BLOCK_TEXT) {
+
+ //System.out.println("Region text: " + container.getText().substring(region.getStart(), region.getEnd()));
+ boolean isBlockRegion = region instanceof ITextRegionContainer;
+ /* make sure its not a sub container region, probably JSP */
+ if (type == DOMRegionContext.BLOCK_TEXT ) {
int scriptStart = container.getStartOffset();
int scriptTextEnd = container.getEndOffset() - container.getStartOffset();
String regionText = container.getText().substring(region.getStart(), region.getEnd());
@@ -348,7 +353,14 @@
spaces = getPad(scriptStart - scriptOffset);
fScriptText.append(spaces);
// fJsToHTMLRanges.put(inScript, inHtml);
- fScriptText.append(regionText);
+ if(isBlockRegion) {
+ spaces = getPad(regionLength);
+ fScriptText.append(spaces);
+ }else {
+ fScriptText.append(regionText);
+ }
+
+
scriptOffset = fScriptText.length();
}
}
diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/format/FormattingStrategyJSDT.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/format/FormattingStrategyJSDT.java
index 8171846..a81007a 100644
--- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/format/FormattingStrategyJSDT.java
+++ b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/format/FormattingStrategyJSDT.java
@@ -85,6 +85,8 @@
int javaLength = partition.getLength();
TextEdit edit = CodeFormatterUtil.format2(CodeFormatter.K_COMPILATION_UNIT, cuSource, javaStart, javaLength, startIndentLevel, TextUtilities.getDefaultLineDelimiter(document), getPreferences());
IDocument doc = new Document(translation.getJsText());
+ /* error formating the code so abort */
+ if(edit==null) return;
edit.apply(doc);
String replaceText = TextUtilities.getDefaultLineDelimiter(document) + getIndentationString(getPreferences(), startIndentLevel) + (doc.get(edit.getOffset(), edit.getLength())).trim() + TextUtilities.getDefaultLineDelimiter(document);
/*