diff --git a/python/src/com/jetbrains/python/PythonParserDefinition.java b/python/src/com/jetbrains/python/PythonParserDefinition.java index 9defc1bae6f0..6644cd7121dd 100644 --- a/python/src/com/jetbrains/python/PythonParserDefinition.java +++ b/python/src/com/jetbrains/python/PythonParserDefinition.java @@ -28,12 +28,14 @@ public class PythonParserDefinition implements ParserDefinition { private final TokenSet myWhitespaceTokens; private final TokenSet myCommentTokens; + private final TokenSet myStringLiteralTokens; public PythonParserDefinition() { language = (PythonLanguage)PythonFileType.INSTANCE.getLanguage(); myWhitespaceTokens = TokenSet.create(PyTokenTypes.LINE_BREAK, PyTokenTypes.SPACE, PyTokenTypes.TAB, PyTokenTypes.FORMFEED); myCommentTokens = TokenSet.create(PyTokenTypes.END_OF_LINE_COMMENT); + myStringLiteralTokens = TokenSet.create(PyTokenTypes.STRING_LITERAL); } @NotNull @@ -57,7 +59,7 @@ public class PythonParserDefinition implements ParserDefinition { @NotNull public TokenSet getStringLiteralElements() { - return TokenSet.EMPTY; + return myStringLiteralTokens; } @NotNull diff --git a/python/testData/refactoring/rename/searchInStrings.py b/python/testData/refactoring/rename/searchInStrings.py new file mode 100644 index 000000000000..bf80d5beb9d0 --- /dev/null +++ b/python/testData/refactoring/rename/searchInStrings.py @@ -0,0 +1,3 @@ +def foo(): + 'this is method foo' + pass diff --git a/python/testData/refactoring/rename/searchInStrings_after.py b/python/testData/refactoring/rename/searchInStrings_after.py new file mode 100644 index 000000000000..073049cdcfda --- /dev/null +++ b/python/testData/refactoring/rename/searchInStrings_after.py @@ -0,0 +1,3 @@ +def bar(): + 'this is method bar' + pass diff --git a/python/testSrc/com/jetbrains/python/refactoring/PyRenameTest.java b/python/testSrc/com/jetbrains/python/refactoring/PyRenameTest.java index 0e2b1d513e4b..afce37218a78 100644 --- a/python/testSrc/com/jetbrains/python/refactoring/PyRenameTest.java +++ b/python/testSrc/com/jetbrains/python/refactoring/PyRenameTest.java @@ -1,5 +1,7 @@ package com.jetbrains.python.refactoring; +import com.intellij.codeInsight.TargetElementUtilBase; +import com.intellij.psi.PsiElement; import com.jetbrains.python.fixtures.PyLightFixtureTestCase; /** @@ -11,4 +13,13 @@ public class PyRenameTest extends PyLightFixtureTestCase { myFixture.renameElementAtCaret("qu"); myFixture.checkResultByFile("refactoring/rename/" + getTestName(true) + "_after.py"); } + + public void testSearchInStrings() throws Exception { // PY-670 + myFixture.configureByFile("refactoring/rename/" + getTestName(true) + ".py"); + final PsiElement element = TargetElementUtilBase.findTargetElement(myFixture.getEditor(), TargetElementUtilBase.REFERENCED_ELEMENT_ACCEPTED | + TargetElementUtilBase.ELEMENT_NAME_ACCEPTED); + assertNotNull(element); + myFixture.renameElement(element, "bar", true, false); + myFixture.checkResultByFile("refactoring/rename/" + getTestName(true) + "_after.py"); + } }