PY-29717 Unify headers for properties and attributes

* normalize capitalization
* get rid of excess <code/> tags inside <pre/>
* use the same way to get links to classes
* always show fully qualified names of definition classes
* don't add base classes for definition classes
This commit is contained in:
Mikhail Golubev
2018-06-09 15:59:38 +03:00
parent f94e80c996
commit 17c690d0ab
14 changed files with 27 additions and 22 deletions
@@ -239,9 +239,13 @@ public class PyDocumentationBuilder {
final AccessDirection direction = AccessDirection.of((PyElement)outerElement);
final Maybe<PyCallable> accessor = property.getByDirection(direction);
myProlog.addItem("property ").addWith(TagBold, $().addWith(TagCode, $(elementName)))
.addItem(" of ")
.add(PythonDocumentationProvider.describeClass(cls, Function.identity(), TO_ONE_LINE_AND_ESCAPE, true, true, myContext));
final String link = getLinkToClass(cls, true);
if (link != null) {
myProlog.addItem("Property ")
.addWith(TagBold, $(elementName))
.addItem(" of ")
.addItem(link);
}
// Choose appropriate docstring
String docstring = null;
@@ -349,12 +353,13 @@ public class PyDocumentationBuilder {
else if (elementDefinition instanceof PyTargetExpression) {
final PyTargetExpression target = (PyTargetExpression)elementDefinition;
if (isAttribute() && !isProperty) {
final String type = PyUtil.isInstanceAttribute(target) ? "Instance attribute " : "Class attribute ";
myProlog
.addItem(type)
.addWith(TagBold, $().addWith(TagCode, $(elementDefinition.getName())))
.addItem(" of class ")
.addItem(PyDocumentationLink.toContainingClass(WRAP_IN_CODE.apply(target.getContainingClass().getName())));
@SuppressWarnings("ConstantConditions") final String link = getLinkToClass(target.getContainingClass(), true);
if (link != null) {
myProlog.addItem(PyUtil.isInstanceAttribute(target) ? "Instance attribute " : "Class attribute ")
.addWith(TagBold, $(elementDefinition.getName()))
.addItem(" of ")
.addItem(link);
}
}
myBody.add(PythonDocumentationProvider.describeTarget(target, myContext));
}
+1 -1
View File
@@ -1 +1 @@
<html><body><div class='definition'><pre>Class attribute <b><code>the_attr</code></b> of class <a href="psi_element://#class#"><code>C</code></a><br>the_attr: <a href="psi_element://#typename#str">str</a> = &quot;&quot;</pre></div><div class='content'>The&nbsp;documentation&nbsp;for&nbsp;the&nbsp;attribute.</div></body></html>
<html><body><div class='definition'><pre>Class attribute <b>the_attr</b> of <a href="psi_element://#typename#ClassAttr.C">ClassAttr.C</a><br>the_attr: <a href="psi_element://#typename#str">str</a> = &quot;&quot;</pre></div><div class='content'>The&nbsp;documentation&nbsp;for&nbsp;the&nbsp;attribute.</div></body></html>
+1 -1
View File
@@ -1 +1 @@
<html><body><div class='definition'><pre>Instance attribute <b><code>foo</code></b> of class <a href="psi_element://#class#"><code>C</code></a><br>foo: <a href="psi_element://#typename#str">str</a> = &quot;Foo&quot;</pre></div><div class='content'>The&nbsp;docstring&nbsp;for&nbsp;the&nbsp;attribute&nbsp;foo.</div></body></html>
<html><body><div class='definition'><pre>Instance attribute <b>foo</b> of <a href="psi_element://#typename#InstanceAttr.C">InstanceAttr.C</a><br>foo: <a href="psi_element://#typename#str">str</a> = &quot;Foo&quot;</pre></div><div class='content'>The&nbsp;docstring&nbsp;for&nbsp;the&nbsp;attribute&nbsp;foo.</div></body></html>
+1 -1
View File
@@ -1 +1 @@
<html><body><div class='definition'><pre>property <b><code>x</code></b> of class <a href="psi_element://#class#">A</a>(<a href="psi_element://#typename#object">object</a>)<br>@<i>x.deleter</i><br>def&nbsp;<b>x</b>(self:&nbsp;<a href="psi_element://#typename#A">A</a>,&nbsp;v:&nbsp;Any)&nbsp;-&gt;&nbsp;None</pre></div><div class='content'>Deletes&nbsp;X</div><table class='sections'><tr><td valign='top' class='section'><p>Accessor kind:</td><td valign='top'>Deleter</td></table></body></html>
<html><body><div class='definition'><pre>Property <b>x</b> of <a href="psi_element://#typename#PropNewDeleter.A">PropNewDeleter.A</a><br>@<i>x.deleter</i><br>def&nbsp;<b>x</b>(self:&nbsp;<a href="psi_element://#typename#A">A</a>,&nbsp;v:&nbsp;Any)&nbsp;-&gt;&nbsp;None</pre></div><div class='content'>Deletes&nbsp;X</div><table class='sections'><tr><td valign='top' class='section'><p>Accessor kind:</td><td valign='top'>Deleter</td></table></body></html>
@@ -1 +1 @@
<html><body><div class='definition'><pre>property <b><code>m</code></b> of class <a href="psi_element://#class#">C</a><br>@<i>m.setter</i><br>def&nbsp;<b>m</b>(self:&nbsp;<a href="psi_element://#typename#C">C</a>,&nbsp;x:&nbsp;Any)&nbsp;-&gt;&nbsp;None</pre></div><div class='content'>Foo</div><table class='sections'><tr><td valign='top' class='section'><p>Documentation is copied from:</td><td valign='top'>property getter</td><tr><td valign='top' class='section'><p>Accessor kind:</td><td valign='top'>Setter</td></table></body></html>
<html><body><div class='definition'><pre>Property <b>m</b> of <a href="psi_element://#typename#PropNewDocstringOfGetter.C">PropNewDocstringOfGetter.C</a><br>@<i>m.setter</i><br>def&nbsp;<b>m</b>(self:&nbsp;<a href="psi_element://#typename#C">C</a>,&nbsp;x:&nbsp;Any)&nbsp;-&gt;&nbsp;None</pre></div><div class='content'>Foo</div><table class='sections'><tr><td valign='top' class='section'><p>Documentation is copied from:</td><td valign='top'>property getter</td><tr><td valign='top' class='section'><p>Accessor kind:</td><td valign='top'>Setter</td></table></body></html>
+1 -1
View File
@@ -1 +1 @@
<html><body><div class='definition'><pre>property <b><code>x</code></b> of class <a href="psi_element://#class#">A</a>(<a href="psi_element://#typename#object">object</a>)<br>@<i>property</i><br>def&nbsp;<b>x</b>(self:&nbsp;<a href="psi_element://#typename#A">A</a>)&nbsp;-&gt;&nbsp;<a href="psi_element://#typename#int">int</a></pre></div><div class='content'>Does&nbsp;things&nbsp;to&nbsp;X</div><table class='sections'><tr><td valign='top' class='section'><p>Accessor kind:</td><td valign='top'>Getter</td></table></body></html>
<html><body><div class='definition'><pre>Property <b>x</b> of <a href="psi_element://#typename#PropNewGetter.A">PropNewGetter.A</a><br>@<i>property</i><br>def&nbsp;<b>x</b>(self:&nbsp;<a href="psi_element://#typename#A">A</a>)&nbsp;-&gt;&nbsp;<a href="psi_element://#typename#int">int</a></pre></div><div class='content'>Does&nbsp;things&nbsp;to&nbsp;X</div><table class='sections'><tr><td valign='top' class='section'><p>Accessor kind:</td><td valign='top'>Getter</td></table></body></html>
+1 -1
View File
@@ -1 +1 @@
<html><body><div class='definition'><pre>property <b><code>x</code></b> of class <a href="psi_element://#class#">A</a>(<a href="psi_element://#typename#object">object</a>)<br>@<i>x.setter</i><br>def&nbsp;<b>x</b>(self:&nbsp;<a href="psi_element://#typename#A">A</a>,&nbsp;v:&nbsp;Any)&nbsp;-&gt;&nbsp;None</pre></div><div class='content'>Sets&nbsp;X</div><table class='sections'><tr><td valign='top' class='section'><p>Accessor kind:</td><td valign='top'>Setter</td></table></body></html>
<html><body><div class='definition'><pre>Property <b>x</b> of <a href="psi_element://#typename#PropNewSetter.A">PropNewSetter.A</a><br>@<i>x.setter</i><br>def&nbsp;<b>x</b>(self:&nbsp;<a href="psi_element://#typename#A">A</a>,&nbsp;v:&nbsp;Any)&nbsp;-&gt;&nbsp;None</pre></div><div class='content'>Sets&nbsp;X</div><table class='sections'><tr><td valign='top' class='section'><p>Accessor kind:</td><td valign='top'>Setter</td></table></body></html>
@@ -1 +1 @@
<html><body><div class='definition'><pre>property <b><code>attr</code></b> of class <a href="psi_element://#class#">C</a>(<a href="psi_element://#typename#object">object</a>)<br>@<i>property</i><br>def&nbsp;<b>attr</b>(self:&nbsp;<a href="psi_element://#typename#C">C</a>)&nbsp;-&gt;&nbsp;<a href="psi_element://#typename#int">int</a></pre></div><div class='content'>Docstring.</div><table class='sections'><tr><td valign='top' class='section'><p>Documentation is copied from:</td><td valign='top'>property getter</td><tr><td valign='top' class='section'><p>Accessor kind:</td><td valign='top'>Setter (not defined)</td></table></body></html>
<html><body><div class='definition'><pre>Property <b>attr</b> of <a href="psi_element://#typename#PropNewUndefinedSetter.C">PropNewUndefinedSetter.C</a><br>@<i>property</i><br>def&nbsp;<b>attr</b>(self:&nbsp;<a href="psi_element://#typename#C">C</a>)&nbsp;-&gt;&nbsp;<a href="psi_element://#typename#int">int</a></pre></div><div class='content'>Docstring.</div><table class='sections'><tr><td valign='top' class='section'><p>Documentation is copied from:</td><td valign='top'>property getter</td><tr><td valign='top' class='section'><p>Accessor kind:</td><td valign='top'>Setter (not defined)</td></table></body></html>
+1 -1
View File
@@ -1 +1 @@
<html><body><div class='definition'><pre>property <b><code>x</code></b> of class <a href="psi_element://#class#">A</a>(<a href="psi_element://#typename#object">object</a>)<br>def&nbsp;<b>__getX</b>(self:&nbsp;<a href="psi_element://#typename#A">A</a>)&nbsp;-&gt;&nbsp;Any</pre></div><div class='content'>Doc&nbsp;of&nbsp;getter</div><table class='sections'><tr><td valign='top' class='section'><p>Accessor kind:</td><td valign='top'>Deleter</td></table></body></html>
<html><body><div class='definition'><pre>Property <b>x</b> of <a href="psi_element://#typename#PropOldDeleter.A">PropOldDeleter.A</a><br>def&nbsp;<b>__getX</b>(self:&nbsp;<a href="psi_element://#typename#A">A</a>)&nbsp;-&gt;&nbsp;Any</pre></div><div class='content'>Doc&nbsp;of&nbsp;getter</div><table class='sections'><tr><td valign='top' class='section'><p>Accessor kind:</td><td valign='top'>Deleter</td></table></body></html>
@@ -1 +1 @@
<html><body><div class='definition'><pre>property <b><code>attr</code></b> of class <a href="psi_element://#class#">C</a><br>def&nbsp;<b>_set</b>(self:&nbsp;<a href="psi_element://#typename#C">C</a>,&nbsp;x:&nbsp;Any)&nbsp;-&gt;&nbsp;None</pre></div><div class='content'>Docstring</div><table class='sections'><tr><td valign='top' class='section'><p>Accessor kind:</td><td valign='top'>Setter</td></table></body></html>
<html><body><div class='definition'><pre>Property <b>attr</b> of <a href="psi_element://#typename#PropOldDocParamOfPropertyCall.C">PropOldDocParamOfPropertyCall.C</a><br>def&nbsp;<b>_set</b>(self:&nbsp;<a href="psi_element://#typename#C">C</a>,&nbsp;x:&nbsp;Any)&nbsp;-&gt;&nbsp;None</pre></div><div class='content'>Docstring</div><table class='sections'><tr><td valign='top' class='section'><p>Accessor kind:</td><td valign='top'>Setter</td></table></body></html>
@@ -1 +1 @@
<html><body><div class='definition'><pre>property <b><code>attr</code></b> of class <a href="psi_element://#class#">C</a><br>def&nbsp;<b>_set</b>(self:&nbsp;<a href="psi_element://#typename#C">C</a>,&nbsp;x:&nbsp;Any)&nbsp;-&gt;&nbsp;None</pre></div><div class='content'>Getter.</div><table class='sections'><tr><td valign='top' class='section'><p>Documentation is copied from:</td><td valign='top'>property getter</td><tr><td valign='top' class='section'><p>Accessor kind:</td><td valign='top'>Setter</td></table></body></html>
<html><body><div class='definition'><pre>Property <b>attr</b> of <a href="psi_element://#typename#PropOldDocstringOfGetter.C">PropOldDocstringOfGetter.C</a><br>def&nbsp;<b>_set</b>(self:&nbsp;<a href="psi_element://#typename#C">C</a>,&nbsp;x:&nbsp;Any)&nbsp;-&gt;&nbsp;None</pre></div><div class='content'>Getter.</div><table class='sections'><tr><td valign='top' class='section'><p>Documentation is copied from:</td><td valign='top'>property getter</td><tr><td valign='top' class='section'><p>Accessor kind:</td><td valign='top'>Setter</td></table></body></html>
+1 -1
View File
@@ -1 +1 @@
<html><body><div class='definition'><pre>property <b><code>x</code></b> of class <a href="psi_element://#class#">A</a>(<a href="psi_element://#typename#object">object</a>)<br>def&nbsp;<b>__getX</b>(self:&nbsp;<a href="psi_element://#typename#A">A</a>)&nbsp;-&gt;&nbsp;Any</pre></div><div class='content'>Doc&nbsp;of&nbsp;getter</div><table class='sections'><tr><td valign='top' class='section'><p>Accessor kind:</td><td valign='top'>Getter</td></table></body></html>
<html><body><div class='definition'><pre>Property <b>x</b> of <a href="psi_element://#typename#PropOldGetter.A">PropOldGetter.A</a><br>def&nbsp;<b>__getX</b>(self:&nbsp;<a href="psi_element://#typename#A">A</a>)&nbsp;-&gt;&nbsp;Any</pre></div><div class='content'>Doc&nbsp;of&nbsp;getter</div><table class='sections'><tr><td valign='top' class='section'><p>Accessor kind:</td><td valign='top'>Getter</td></table></body></html>
+1 -1
View File
@@ -1 +1 @@
<html><body><div class='definition'><pre>property <b><code>x</code></b> of class <a href="psi_element://#class#">A</a>(<a href="psi_element://#typename#object">object</a>)<br>def&nbsp;<b>__getX</b>(self:&nbsp;<a href="psi_element://#typename#A">A</a>,&nbsp;x:&nbsp;Any)&nbsp;-&gt;&nbsp;None</pre></div><div class='content'>Doc&nbsp;of&nbsp;getter</div><table class='sections'><tr><td valign='top' class='section'><p>Accessor kind:</td><td valign='top'>Setter</td></table></body></html>
<html><body><div class='definition'><pre>Property <b>x</b> of <a href="psi_element://#typename#PropOldSetter.A">PropOldSetter.A</a><br>def&nbsp;<b>__getX</b>(self:&nbsp;<a href="psi_element://#typename#A">A</a>,&nbsp;x:&nbsp;Any)&nbsp;-&gt;&nbsp;None</pre></div><div class='content'>Doc&nbsp;of&nbsp;getter</div><table class='sections'><tr><td valign='top' class='section'><p>Accessor kind:</td><td valign='top'>Setter</td></table></body></html>
@@ -1 +1 @@
<html><body><div class='definition'><pre>property <b><code>attr</code></b> of class <a href="psi_element://#class#">C</a>(<a href="psi_element://#typename#object">object</a>)<br>def&nbsp;<b>_get</b>(self:&nbsp;<a href="psi_element://#typename#C">C</a>)&nbsp;-&gt;&nbsp;<a href="psi_element://#typename#int">int</a></pre></div><div class='content'>Docstring.</div><table class='sections'><tr><td valign='top' class='section'><p>Documentation is copied from:</td><td valign='top'>property getter</td><tr><td valign='top' class='section'><p>Accessor kind:</td><td valign='top'>Setter (not defined)</td></table></body></html>
<html><body><div class='definition'><pre>Property <b>attr</b> of <a href="psi_element://#typename#PropOldUndefinedSetter.C">PropOldUndefinedSetter.C</a><br>def&nbsp;<b>_get</b>(self:&nbsp;<a href="psi_element://#typename#C">C</a>)&nbsp;-&gt;&nbsp;<a href="psi_element://#typename#int">int</a></pre></div><div class='content'>Docstring.</div><table class='sections'><tr><td valign='top' class='section'><p>Documentation is copied from:</td><td valign='top'>property getter</td><tr><td valign='top' class='section'><p>Accessor kind:</td><td valign='top'>Setter (not defined)</td></table></body></html>