From 6b6062d6e2caeff187ce8e79aec7520a4bdf20d3 Mon Sep 17 00:00:00 2001 From: Ekaterina Tuzova Date: Wed, 19 Jun 2013 14:25:22 +0400 Subject: [PATCH] fixed PY-10007 Epytext @raise should include type name --- .../PythonDocumentationProvider.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/python/src/com/jetbrains/python/documentation/PythonDocumentationProvider.java b/python/src/com/jetbrains/python/documentation/PythonDocumentationProvider.java index 6720540ec34e..2e6d4058ff76 100644 --- a/python/src/com/jetbrains/python/documentation/PythonDocumentationProvider.java +++ b/python/src/com/jetbrains/python/documentation/PythonDocumentationProvider.java @@ -596,7 +596,17 @@ public class PythonDocumentationProvider extends AbstractDocumentationProvider i } } if (visitor.myHasRaise) { - builder.append(prefix).append("raise:").append(offset); + builder.append(prefix).append("raise"); + if (visitor.myRaiseTarget != null) { + String raiseTarget = visitor.myRaiseTarget.getText(); + if (visitor.myRaiseTarget instanceof PyCallExpression) { + final PyExpression callee = ((PyCallExpression)visitor.myRaiseTarget).getCallee(); + if (callee != null) + raiseTarget = callee.getText(); + } + builder.append(" ").append(raiseTarget); + } + builder.append(":").append(offset); } } else { @@ -611,10 +621,13 @@ public class PythonDocumentationProvider extends AbstractDocumentationProvider i private static class RaiseVisitor extends PyRecursiveElementVisitor { private boolean myHasRaise = false; private boolean myHasReturn = false; + private PyExpression myRaiseTarget = null; @Override public void visitPyRaiseStatement(PyRaiseStatement node) { myHasRaise = true; + final PyExpression[] expressions = node.getExpressions(); + if (expressions.length > 0) myRaiseTarget = expressions[0]; } @Override