fixed PY-10007 Epytext @raise should include type name

This commit is contained in:
Ekaterina Tuzova
2013-06-19 14:25:22 +04:00
parent 5c6ffa5e29
commit 6b6062d6e2
@@ -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