From 2d801a8dba3af8faccbbbda4c3e6e7c911c384c6 Mon Sep 17 00:00:00 2001 From: Ekaterina Tuzova Date: Wed, 20 Feb 2013 15:47:57 +0400 Subject: [PATCH] fixed PY-8025 Enable rest, epytext and doctest highlighting in strings literal assigned to __doc__ --- .../python/validation/DocStringAnnotator.java | 2 +- python/testData/highlighting/docstring.py | 10 ++++++++++ .../com/jetbrains/python/PythonHighlightingTest.java | 4 ++++ 3 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 python/testData/highlighting/docstring.py diff --git a/python/src/com/jetbrains/python/validation/DocStringAnnotator.java b/python/src/com/jetbrains/python/validation/DocStringAnnotator.java index 5d4cc5ab9a69..6c631f3a3872 100644 --- a/python/src/com/jetbrains/python/validation/DocStringAnnotator.java +++ b/python/src/com/jetbrains/python/validation/DocStringAnnotator.java @@ -30,7 +30,7 @@ public class DocStringAnnotator extends PyAnnotator { @Override public void visitPyAssignmentStatement(PyAssignmentStatement node) { PyExpression left = node.getLeftHandSideExpression(); - if (left != null && "__doc__".equals(left.getText())) { + if (left != null && "__doc__".equals(left.getName())) { PyExpression right = node.getAssignedValue(); if (right instanceof PyStringLiteralExpression) { Annotation ann = getHolder().createInfoAnnotation(right, null); diff --git a/python/testData/highlighting/docstring.py b/python/testData/highlighting/docstring.py new file mode 100644 index 000000000000..f342706daa88 --- /dev/null +++ b/python/testData/highlighting/docstring.py @@ -0,0 +1,10 @@ +__doc__= """:param v: """ + +def foo(a, v): + """ + :param a: + :param v: + """ + pass + +foo.__doc__= """:param v: """ \ No newline at end of file diff --git a/python/testSrc/com/jetbrains/python/PythonHighlightingTest.java b/python/testSrc/com/jetbrains/python/PythonHighlightingTest.java index 2797bf34e2ac..4c2988f80425 100644 --- a/python/testSrc/com/jetbrains/python/PythonHighlightingTest.java +++ b/python/testSrc/com/jetbrains/python/PythonHighlightingTest.java @@ -170,6 +170,10 @@ public class PythonHighlightingTest extends PyTestCase { doTest(LanguageLevel.PYTHON32, true, false); } + public void testDocstring() { // PY-8025 + doTest(false, true); + } + public void testYieldInNestedFunction() { // highlight func declaration first, lest we get an "Extra fragment highlighted" error. EditorColorsManager manager = EditorColorsManager.getInstance();