From 6596f550bcf64e8d3db942be87f913bd7222054e Mon Sep 17 00:00:00 2001 From: Ekaterina Tuzova Date: Mon, 21 Nov 2011 18:40:57 +0100 Subject: [PATCH] fixed PY-5058 When unicode/raw string literals are line-split, the u/r/ur prefix is missing --- .../src/com/jetbrains/python/editor/PythonEnterHandler.java | 3 ++- python/testSrc/com/jetbrains/python/PyEditingTest.java | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/python/src/com/jetbrains/python/editor/PythonEnterHandler.java b/python/src/com/jetbrains/python/editor/PythonEnterHandler.java index 2e7c7a44a769..669ec01eecef 100644 --- a/python/src/com/jetbrains/python/editor/PythonEnterHandler.java +++ b/python/src/com/jetbrains/python/editor/PythonEnterHandler.java @@ -101,8 +101,9 @@ public class PythonEnterHandler extends EnterHandlerDelegateAdapter { return Result.Continue; } if ("\\".equals(doc.getText(TextRange.create(offset - 1, offset)))) return Result.Continue; + String pref = element.getText().substring(0, prefixLength); String quote = element.getText().substring(prefixLength, prefixLength + 1); - doc.insertString(offset, quote + " \\" + quote); + doc.insertString(offset, quote + " \\" + pref + quote); caretOffset.set(caretOffset.get() + 3); return Result.Continue; } diff --git a/python/testSrc/com/jetbrains/python/PyEditingTest.java b/python/testSrc/com/jetbrains/python/PyEditingTest.java index b3ed45c8dae6..c981ee44d99e 100644 --- a/python/testSrc/com/jetbrains/python/PyEditingTest.java +++ b/python/testSrc/com/jetbrains/python/PyEditingTest.java @@ -102,6 +102,11 @@ public class PyEditingTest extends PyTestCase { doTestEnter("# foo bar", "# foo \n# bar"); } + public void testEnterInPrefixString() { // PY-5058 + doTestEnter("s = r'some string'", "s = r'some ' \\\n" + + " r'string'"); + } + public void testEnterInStatement() { doTestEnter("if a and b: pass", "if a \\\nand b: pass"); }