PY-14261 Do not copy indentation, adjust offset for insertion instead

See review IDEA-COMMUNITY-CR-900.
This commit is contained in:
Mikhail Golubev
2014-11-07 11:44:28 +03:00
parent 119cc4b0b7
commit ca4e20bc83
@@ -200,8 +200,6 @@ public class CustomFoldingSurroundDescriptor implements SurroundDescriptor {
int prefixLength = linePrefix.length();
int startOffset = firstElement.getTextRange().getStartOffset();
final Document document = editor.getDocument();
final int startLineNumber = document.getLineNumber(startOffset);
final String startIndent = document.getText(new TextRange(document.getLineStartOffset(startLineNumber), startOffset));
int endOffset = lastElement.getTextRange().getEndOffset();
int delta = 0;
TextRange rangeToSelect = new TextRange(startOffset, startOffset);
@@ -211,11 +209,12 @@ public class CustomFoldingSurroundDescriptor implements SurroundDescriptor {
startText = startText.replace("?", DEFAULT_DESC_TEXT);
rangeToSelect = new TextRange(startOffset + descPos, startOffset + descPos + DEFAULT_DESC_TEXT.length());
}
String startString = linePrefix + startText + "\n" + startIndent;
String startString = linePrefix + startText + "\n";
String endString = "\n" + linePrefix + myProvider.getEndString();
document.insertString(endOffset, endString);
delta += endString.length();
document.insertString(startOffset, startString);
final int startCommentInsertionOffset = document.getLineStartOffset(document.getLineNumber(startOffset));
document.insertString(startCommentInsertionOffset, startString);
delta += startString.length();
rangeToSelect = rangeToSelect.shiftRight(prefixLength);
PsiDocumentManager documentManager = PsiDocumentManager.getInstance(project);
@@ -223,7 +222,7 @@ public class CustomFoldingSurroundDescriptor implements SurroundDescriptor {
adjustLineIndent(project, psiFile, language,
new TextRange(endOffset + delta - endString.length(), endOffset + delta));
adjustLineIndent(project, psiFile, language,
new TextRange(startOffset, startOffset + startString.length()));
new TextRange(startCommentInsertionOffset, startCommentInsertionOffset + startString.length()));
return rangeToSelect;
}