mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-05 01:50:56 +07:00
PY-76819 Show the link to "types.NoneType" when rendering None inside Optionals and elsewhere
GitOrigin-RevId: e5e76015202eb2e77e103197fd09c4ad26bf09a0
This commit is contained in:
committed by
intellij-monorepo-bot
parent
a2bacfa2ad
commit
1621c292e9
@@ -8,7 +8,6 @@ import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import com.jetbrains.python.PyNames;
|
||||
import com.jetbrains.python.codeInsight.typing.PyTypingTypeProvider;
|
||||
import com.jetbrains.python.highlighting.PyHighlighter;
|
||||
import com.jetbrains.python.psi.LanguageLevel;
|
||||
@@ -61,12 +60,6 @@ public abstract class PyTypeRenderer extends PyTypeVisitorExt<@NotNull HtmlChunk
|
||||
return PyDocumentationLink.toPossibleClass(name, myAnchor, myTypeEvalContext);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected @NotNull HtmlChunk toClass(@NotNull String qualifiedName, @Nls @NotNull String linkText, @Nullable TextAttributesKey style) {
|
||||
final var result = PyDocumentationLink.toClass(qualifiedName, linkText);
|
||||
return style != null ? styledSpan(result, style) : result;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected @NotNull HtmlChunk styledExpression(@NotNull PyExpression expression) {
|
||||
return highlightExpressionText(expression.getText(), expression);
|
||||
@@ -169,10 +162,6 @@ public abstract class PyTypeRenderer extends PyTypeVisitorExt<@NotNull HtmlChunk
|
||||
return escaped(name);
|
||||
}
|
||||
|
||||
protected @NotNull HtmlChunk toClass(@NotNull String qualifiedName, @Nls @NotNull String linkText, @Nullable TextAttributesKey style) {
|
||||
return HtmlChunk.raw(linkText);
|
||||
}
|
||||
|
||||
protected @NotNull HtmlChunk styledExpression(@NotNull PyExpression expression) {
|
||||
return HtmlChunk.raw(expression.getText());
|
||||
}
|
||||
@@ -299,8 +288,7 @@ public abstract class PyTypeRenderer extends PyTypeVisitorExt<@NotNull HtmlChunk
|
||||
if (isBitwiseOrUnionAvailable()) {
|
||||
result.append(render(ContainerUtil.find(type.getMembers(), t -> !isNoneType(t))));
|
||||
result.append(styled(" | ", PyHighlighter.PY_OPERATION_SIGN));
|
||||
// TODO make this rendering consistent with rendering on None as a PyClassType instance
|
||||
result.append(toClass(PyNames.TYPE_NONE, "None", PyHighlighter.PY_KEYWORD)); //NON-NLS
|
||||
result.append(render(ContainerUtil.find(type.getMembers(), t -> isNoneType(t)))); //NON-NLS
|
||||
}
|
||||
else {
|
||||
result.append(escaped("Optional")); //NON-NLS
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<html><body><div class="bottom"><icon src="AllIcons.Nodes.Package"/> <code><a href="psi_element://#module#FunctionWrapping">FunctionWrapping</a></code></div><div class="definition"><pre><span style="color:#000080;font-weight:bold;">def </span><span style="color:#000000;">maybe_add_numbers</span><span style="">(</span><span style="color:#000000;">a</span><span style="">: </span><span style="color:#000000;"><span style="color:#000080;"><a href="psi_element://#typename#int">int</a></span><span style=""> | </span><span style="color:#000080;font-weight:bold;"><a href="psi_element://#typename#_typeshed.NoneType">None</a></span></span><span style="">,</span>
|
||||
<span style="color:#000000;">b</span><span style="">: </span><span style="color:#000000;"><span style="color:#000080;"><a href="psi_element://#typename#int">int</a></span><span style=""> | </span><span style="color:#000080;font-weight:bold;"><a href="psi_element://#typename#_typeshed.NoneType">None</a></span></span><span style="">,</span>
|
||||
<span style="color:#000000;">c</span><span style="">: </span><span style="color:#000000;"><span style="color:#000080;"><a href="psi_element://#typename#int">int</a></span><span style=""> | </span><span style="color:#000080;font-weight:bold;"><a href="psi_element://#typename#_typeshed.NoneType">None</a></span></span><span style="">,</span>
|
||||
<span style="color:#000000;">d</span><span style="">: </span><span style="color:#000000;"><span style="color:#000080;"><a href="psi_element://#typename#int">int</a></span><span style=""> | </span><span style="color:#000080;font-weight:bold;"><a href="psi_element://#typename#_typeshed.NoneType">None</a></span></span><span style="">)</span> -> <span style="color:#000000;"><span style="color:#000080;"><a href="psi_element://#typename#int">int</a></span><span style=""> | </span><span style="color:#000080;font-weight:bold;"><a href="psi_element://#typename#_typeshed.NoneType">None</a></span></span></pre></div></body></html>
|
||||
<html><body><div class="bottom"><icon src="AllIcons.Nodes.Package"/> <code><a href="psi_element://#module#FunctionWrapping">FunctionWrapping</a></code></div><div class="definition"><pre><span style="color:#000080;font-weight:bold;">def </span><span style="color:#000000;">maybe_add_numbers</span><span style="">(</span><span style="color:#000000;">a</span><span style="">: </span><span style="color:#000000;"><span style="color:#000080;"><a href="psi_element://#typename#int">int</a></span><span style=""> | </span><span style="color:#000080;font-weight:bold;"><a href="psi_element://#typename#types.NoneType">None</a></span></span><span style="">,</span>
|
||||
<span style="color:#000000;">b</span><span style="">: </span><span style="color:#000000;"><span style="color:#000080;"><a href="psi_element://#typename#int">int</a></span><span style=""> | </span><span style="color:#000080;font-weight:bold;"><a href="psi_element://#typename#types.NoneType">None</a></span></span><span style="">,</span>
|
||||
<span style="color:#000000;">c</span><span style="">: </span><span style="color:#000000;"><span style="color:#000080;"><a href="psi_element://#typename#int">int</a></span><span style=""> | </span><span style="color:#000080;font-weight:bold;"><a href="psi_element://#typename#types.NoneType">None</a></span></span><span style="">,</span>
|
||||
<span style="color:#000000;">d</span><span style="">: </span><span style="color:#000000;"><span style="color:#000080;"><a href="psi_element://#typename#int">int</a></span><span style=""> | </span><span style="color:#000080;font-weight:bold;"><a href="psi_element://#typename#types.NoneType">None</a></span></span><span style="">)</span> -> <span style="color:#000000;"><span style="color:#000080;"><a href="psi_element://#typename#int">int</a></span><span style=""> | </span><span style="color:#000080;font-weight:bold;"><a href="psi_element://#typename#types.NoneType">None</a></span></span></pre></div></body></html>
|
||||
@@ -1 +1 @@
|
||||
<span style="color:#000080;font-weight:bold;">def </span><span style="color:#000000;">ones</span><span style="">(</span><span style="color:#000000;">shape</span><span style="">: </span><span style="color:#000000;"><span style="color:#000080;"><a href="psi_element://#typename#int">int</a></span><span style=""> | </span>Iterable<span style="">[</span><span style="color:#000080;"><a href="psi_element://#typename#int">int</a></span><span style="">]</span></span><span style="">,</span> <span style="color:#000000;">dtype</span><span style="">: </span><span style="color:#000000;"><span style="color:#000080;"><a href="psi_element://#typename#object">object</a></span><span style=""> | </span><span style="color:#000080;font-weight:bold;"><a href="psi_element://#typename#_typeshed.NoneType">None</a></span></span><span style=""> = </span><span style="color:#000080;font-weight:bold;">None</span><span style="">,</span> <span style="color:#000000;">order</span><span style="">: </span><span style="color:#000000;"><span style="color:#000080;"><a href="psi_element://#typename#str">str</a></span><span style=""> | </span><span style="color:#000080;font-weight:bold;"><a href="psi_element://#typename#_typeshed.NoneType">None</a></span></span><span style=""> = </span><span style="color:#008000;font-weight:bold;">'C'</span><span style="">)</span> -> <span style="color:#000000;"><a href="psi_element://#typename#numpy.core.multiarray.ndarray">ndarray</a></span>
|
||||
<span style="color:#000080;font-weight:bold;">def </span><span style="color:#000000;">ones</span><span style="">(</span><span style="color:#000000;">shape</span><span style="">: </span><span style="color:#000000;"><span style="color:#000080;"><a href="psi_element://#typename#int">int</a></span><span style=""> | </span>Iterable<span style="">[</span><span style="color:#000080;"><a href="psi_element://#typename#int">int</a></span><span style="">]</span></span><span style="">,</span> <span style="color:#000000;">dtype</span><span style="">: </span><span style="color:#000000;"><span style="color:#000080;"><a href="psi_element://#typename#object">object</a></span><span style=""> | </span><span style="color:#000080;font-weight:bold;"><a href="psi_element://#typename#types.NoneType">None</a></span></span><span style=""> = </span><span style="color:#000080;font-weight:bold;">None</span><span style="">,</span> <span style="color:#000000;">order</span><span style="">: </span><span style="color:#000000;"><span style="color:#000080;"><a href="psi_element://#typename#str">str</a></span><span style=""> | </span><span style="color:#000080;font-weight:bold;"><a href="psi_element://#typename#types.NoneType">None</a></span></span><span style=""> = </span><span style="color:#008000;font-weight:bold;">'C'</span><span style="">)</span> -> <span style="color:#000000;"><a href="psi_element://#typename#numpy.core.multiarray.ndarray">ndarray</a></span>
|
||||
@@ -1,2 +1,2 @@
|
||||
<html><body><div class="bottom"><icon src="AllIcons.Nodes.Package"/> <code><a href="psi_element://#module#OptionalAndUnionTypesContainingTypeVars">OptionalAndUnionTypesContainingTypeVars</a></code></div><div class="definition"><pre><span style="color:#000080;font-weight:bold;">def </span><span style="color:#000000;">f</span><span style="">(</span><span style="color:#000000;">x1</span><span style="">: </span><span style="color:#000000;">T<span style=""> | </span><span style="color:#000080;font-weight:bold;"><a href="psi_element://#typename#_typeshed.NoneType">None</a></span></span><span style="">,</span>
|
||||
<html><body><div class="bottom"><icon src="AllIcons.Nodes.Package"/> <code><a href="psi_element://#module#OptionalAndUnionTypesContainingTypeVars">OptionalAndUnionTypesContainingTypeVars</a></code></div><div class="definition"><pre><span style="color:#000080;font-weight:bold;">def </span><span style="color:#000000;">f</span><span style="">(</span><span style="color:#000000;">x1</span><span style="">: </span><span style="color:#000000;">T<span style=""> | </span><span style="color:#000080;font-weight:bold;"><a href="psi_element://#typename#types.NoneType">None</a></span></span><span style="">,</span>
|
||||
<span style="color:#000000;">x2</span><span style="">: </span><span style="color:#000000;">T<span style=""> | </span><span style="color:#000080;">tuple</span><span style="">[</span>Any<span style="">, </span>Any<span style="">]</span></span><span style="">)</span> -> <span style="color:#000000;"><span style="color:#000080;font-weight:bold;"><a href="psi_element://#typename#types.NoneType">None</a></span></span></pre></div></body></html>
|
||||
@@ -1,2 +1,2 @@
|
||||
<html><body><div class="bottom"><icon src="AllIcons.Nodes.Package"/> <code><a href="psi_element://#module#OptionalParameterType">OptionalParameterType</a></code></div><div class="definition"><pre><span style="color:#000080;font-weight:bold;">def </span><span style="color:#000000;">open</span><span style="">(</span><span style="color:#000000;">encoding</span><span style="">: </span><span style="color:#000000;"><span style="color:#000080;"><a href="psi_element://#typename#str">str</a></span><span style=""> | </span><span style="color:#000080;font-weight:bold;"><a href="psi_element://#typename#_typeshed.NoneType">None</a></span></span><span style=""> = </span><span style="color:#000080;font-weight:bold;">None</span><span style="">,</span>
|
||||
<span style="color:#000000;">errors</span><span style="">: </span><span style="color:#000000;"><span style="color:#000080;"><a href="psi_element://#typename#str">str</a></span><span style=""> | </span><span style="color:#000080;font-weight:bold;"><a href="psi_element://#typename#_typeshed.NoneType">None</a></span></span><span style=""> = </span><span style="color:#000080;font-weight:bold;">None</span><span style="">)</span> -> <span style="color:#000000;"><span style="color:#000080;font-weight:bold;"><a href="psi_element://#typename#types.NoneType">None</a></span></span></pre></div></body></html>
|
||||
<html><body><div class="bottom"><icon src="AllIcons.Nodes.Package"/> <code><a href="psi_element://#module#OptionalParameterType">OptionalParameterType</a></code></div><div class="definition"><pre><span style="color:#000080;font-weight:bold;">def </span><span style="color:#000000;">open</span><span style="">(</span><span style="color:#000000;">encoding</span><span style="">: </span><span style="color:#000000;"><span style="color:#000080;"><a href="psi_element://#typename#str">str</a></span><span style=""> | </span><span style="color:#000080;font-weight:bold;"><a href="psi_element://#typename#types.NoneType">None</a></span></span><span style=""> = </span><span style="color:#000080;font-weight:bold;">None</span><span style="">,</span>
|
||||
<span style="color:#000000;">errors</span><span style="">: </span><span style="color:#000000;"><span style="color:#000080;"><a href="psi_element://#typename#str">str</a></span><span style=""> | </span><span style="color:#000080;font-weight:bold;"><a href="psi_element://#typename#types.NoneType">None</a></span></span><span style=""> = </span><span style="color:#000080;font-weight:bold;">None</span><span style="">)</span> -> <span style="color:#000000;"><span style="color:#000080;font-weight:bold;"><a href="psi_element://#typename#types.NoneType">None</a></span></span></pre></div></body></html>
|
||||
Reference in New Issue
Block a user