PY-9209 Insert a space after '#' sign when using smart enter in comment

This commit is contained in:
Mikhail Golubev
2014-11-18 01:28:45 +03:00
parent 0a411c1960
commit 99f4933e70
6 changed files with 20 additions and 6 deletions
@@ -19,6 +19,7 @@ import com.intellij.openapi.editor.CaretModel;
import com.intellij.openapi.editor.Editor;
import com.intellij.psi.PsiComment;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiWhiteSpace;
import com.intellij.psi.util.PsiTreeUtil;
import com.jetbrains.python.codeInsight.editorActions.smartEnter.SmartEnterUtil;
@@ -34,12 +35,15 @@ public class PyCommentBreakerEnterProcessor implements EnterProcessor {
return false;
}
final CaretModel caretModel = editor.getCaretModel();
final PsiElement atCaret = psiElement.getContainingFile().findElementAt(caretModel.getOffset());
PsiElement atCaret = psiElement.getContainingFile().findElementAt(caretModel.getOffset());
if (atCaret instanceof PsiWhiteSpace) {
atCaret = atCaret.getPrevSibling();
}
final PsiElement comment = PsiTreeUtil.getParentOfType(atCaret, PsiComment.class, false);
if (comment != null) {
SmartEnterUtil.plainEnter(editor);
editor.getDocument().insertString(caretModel.getOffset(), "#");
caretModel.moveToOffset(caretModel.getOffset() + 1);
editor.getDocument().insertString(caretModel.getOffset(), "# ");
caretModel.moveToOffset(caretModel.getOffset() + 2);
return true;
}
return false;
@@ -1 +1 @@
#<caret>comment
# <caret>comment
@@ -1,2 +1,2 @@
#comment
#<caret>
# comment
# <caret>
@@ -0,0 +1,2 @@
# foo <caret>
pass
@@ -0,0 +1,3 @@
# foo
# <caret>
pass
@@ -189,4 +189,9 @@ public class PySmartEnterTest extends PyTestCase {
public void testWithOnlyColonMissing() {
doTest();
}
// PY-9209
public void testSpaceInsertedAfterHashSignInComment() {
doTest();
}
}