diff --git a/platform/lang-impl/src/com/intellij/codeInsight/template/TemplateBuilderImpl.java b/platform/lang-impl/src/com/intellij/codeInsight/template/TemplateBuilderImpl.java index 44f2944d8304..99844a8918e6 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/template/TemplateBuilderImpl.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/template/TemplateBuilderImpl.java @@ -195,13 +195,18 @@ public class TemplateBuilderImpl implements TemplateBuilder { int start = 0; for (final RangeMarker element : myElements) { int offset = element.getStartOffset() - containerStart; - LOG.assertTrue(start <= offset,"container: " + myContainerElement + " markers: " + - StringUtil.join(myElements, new Function() { - @Override - public String fun(RangeMarker rangeMarker) { - return "[" + rangeMarker.getStartOffset() + ", " + rangeMarker.getEndOffset() + "]"; - } - }, ", ")); + if (start > offset) { + LOG.error("file: " + myFile + + " container: " + myContainerElement + + " markers: " + StringUtil.join(myElements, new Function() { + @Override + public String fun(RangeMarker rangeMarker) { + final String docString = + myDocument.getText(new TextRange(rangeMarker.getStartOffset(), rangeMarker.getEndOffset())); + return "[[" + docString + "]" + rangeMarker.getStartOffset() + ", " + rangeMarker.getEndOffset() + "]"; + } + }, ", ")); + } template.addTextSegment(text.substring(start, offset)); if (element == mySelection) {