mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
PY-22729 "Parameter" in highlighting settings covers only their names
Previously, it also included type annotations unless a parameter also had a default value.
This commit is contained in:
@@ -19,7 +19,6 @@ import com.intellij.lang.ASTNode;
|
||||
import com.intellij.lang.annotation.Annotation;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.editor.colors.TextAttributesKey;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.jetbrains.python.highlighting.PyHighlighter;
|
||||
import com.jetbrains.python.psi.*;
|
||||
@@ -34,8 +33,7 @@ public class HighlightingAnnotator extends PyAnnotator {
|
||||
public void visitPyParameter(PyParameter node) {
|
||||
PyFunction function = PsiTreeUtil.getParentOfType(node, PyFunction.class);
|
||||
if (function != null) {
|
||||
final PsiElement anchor = node.hasDefaultValue() ? node.getFirstChild() : node;
|
||||
final Annotation annotation = getHolder().createInfoAnnotation(anchor, null);
|
||||
final Annotation annotation = getHolder().createInfoAnnotation(node.getFirstChild(), null);
|
||||
annotation.setTextAttributes(node.isSelf() ? PyHighlighter.PY_SELF_PARAMETER : PyHighlighter.PY_PARAMETER);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,5 +2,5 @@ TOP_LEVEL: <info descr="null"><info descr="PY.ANNOTATION">str</info></info> = 'f
|
||||
|
||||
class <info descr="null">C</info>:
|
||||
attr: <info descr="PY.ANNOTATION">Optional[Any]</info> = None
|
||||
def <info descr="null">method</info>(<info descr="null">self</info>, <info descr="null">xs: <info descr="PY.ANNOTATION">List[<info descr="null">int</info>]</info></info>) -> <info descr="PY.ANNOTATION">None</info>:
|
||||
def <info descr="null">method</info>(<info descr="null">self</info>, <info descr="null">xs</info>: <info descr="PY.ANNOTATION">List[<info descr="null">int</info>]</info>) -> <info descr="PY.ANNOTATION">None</info>:
|
||||
pass
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
def <info descr="null">f</info>(<info descr="null">p1</info>: <info descr="null"><info descr="PY.ANNOTATION">int</info></info>, <info descr="null">p2</info>: <info descr="null"><info descr="PY.ANNOTATION">int</info></info> = 42):
|
||||
<info descr="null"><info descr="PY.FUNCTION_CALL">print</info></info>(<info descr="null">p1</info>, <info descr="null">p2</info>)
|
||||
@@ -374,6 +374,11 @@ public class PythonHighlightingTest extends PyTestCase {
|
||||
runWithLanguageLevel(LanguageLevel.PYTHON36, this::doTest);
|
||||
}
|
||||
|
||||
// PY-22729
|
||||
public void testParametersWithAnnotationsAndDefaults() {
|
||||
runWithLanguageLevel(LanguageLevel.PYTHON30, this::doTest);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private static EditorColorsScheme createTemporaryColorScheme() {
|
||||
EditorColorsManager manager = EditorColorsManager.getInstance();
|
||||
|
||||
Reference in New Issue
Block a user