From 363b5a6fe9a474ca583a650905f15179a8181ab8 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Mon, 4 Nov 2013 12:51:09 +0100 Subject: [PATCH] select word works correctly inside escape sequence (PY-9014) --- python/src/META-INF/python-core.xml | 1 + .../PyBasicWordSelectionFilter.java | 35 +++++++++++++++++++ .../selectWord/insideEscapeSequence/after1.py | 1 + .../selectWord/insideEscapeSequence/before.py | 1 + .../jetbrains/python/PySelectWordTest.java | 4 +++ 5 files changed, 42 insertions(+) create mode 100644 python/src/com/jetbrains/python/editor/selectWord/PyBasicWordSelectionFilter.java create mode 100644 python/testData/selectWord/insideEscapeSequence/after1.py create mode 100644 python/testData/selectWord/insideEscapeSequence/before.py diff --git a/python/src/META-INF/python-core.xml b/python/src/META-INF/python-core.xml index bc7c48d106ff..6ec62ecdb190 100644 --- a/python/src/META-INF/python-core.xml +++ b/python/src/META-INF/python-core.xml @@ -49,6 +49,7 @@ + { + @Override + public boolean value(PsiElement element) { + IElementType elementType = element.getNode().getElementType(); + if (PyTokenTypes.STRING_NODES.contains(elementType)) { + return false; + } + return true; + } +} diff --git a/python/testData/selectWord/insideEscapeSequence/after1.py b/python/testData/selectWord/insideEscapeSequence/after1.py new file mode 100644 index 000000000000..decea81b8e4f --- /dev/null +++ b/python/testData/selectWord/insideEscapeSequence/after1.py @@ -0,0 +1 @@ +s = 'Hello\nWorld!' \ No newline at end of file diff --git a/python/testData/selectWord/insideEscapeSequence/before.py b/python/testData/selectWord/insideEscapeSequence/before.py new file mode 100644 index 000000000000..348c33349758 --- /dev/null +++ b/python/testData/selectWord/insideEscapeSequence/before.py @@ -0,0 +1 @@ +s = 'Hello\nWorld!' \ No newline at end of file diff --git a/python/testSrc/com/jetbrains/python/PySelectWordTest.java b/python/testSrc/com/jetbrains/python/PySelectWordTest.java index 0d043332488b..02fe335880df 100644 --- a/python/testSrc/com/jetbrains/python/PySelectWordTest.java +++ b/python/testSrc/com/jetbrains/python/PySelectWordTest.java @@ -50,6 +50,10 @@ public class PySelectWordTest extends PyTestCase { doTest(); } + public void testInsideEscapeSequence() { // PY-9014 + doTest(); + } + private void doTest() { CodeInsightTestUtil.doWordSelectionTestOnDirectory(myFixture, "selectWord/" + getTestName(true), "py"); }