From efc364c13f872f29e9c731530aaef5dbb27974a7 Mon Sep 17 00:00:00 2001 From: Petr Date: Fri, 4 Jul 2025 16:31:47 +0200 Subject: [PATCH] PY-71549 Move None, True and False rehighlighting from PyHighlightingAnnotatorVisitor to PyKeywordHighlightingAnnotator GitOrigin-RevId: 4ca534b964d02236ad688fd8446cd963d647e350 --- .../validation/PyHighlightingAnnotatorVisitor.java | 10 ---------- .../validation/PyKeywordHighlightingAnnotator.java | 11 +++++++++++ 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/python/python-psi-impl/src/com/jetbrains/python/validation/PyHighlightingAnnotatorVisitor.java b/python/python-psi-impl/src/com/jetbrains/python/validation/PyHighlightingAnnotatorVisitor.java index 2651abac07cd..99c799476160 100644 --- a/python/python-psi-impl/src/com/jetbrains/python/validation/PyHighlightingAnnotatorVisitor.java +++ b/python/python-psi-impl/src/com/jetbrains/python/validation/PyHighlightingAnnotatorVisitor.java @@ -95,16 +95,6 @@ public class PyHighlightingAnnotatorVisitor extends PyElementVisitor { } } - @Override - public void visitElement(@NotNull PsiElement element) { - // Highlight None, True and False as keywords once again inside annotations after PyHighlighter - // to keep their original color - if (PyTokenTypes.EXPRESSION_KEYWORDS.contains(element.getNode().getElementType()) && - PsiTreeUtil.getParentOfType(element, PyAnnotation.class) != null) { - myHolder.addHighlightingAnnotation(element, PyHighlighter.PY_KEYWORD); - } - } - private static @Nullable PyNamedParameter findParameterRecursively(@NotNull PyFunction function, @NotNull String referencedName) { for (PyFunction f = function; f != null; f = ObjectUtils.tryCast(ScopeUtil.getScopeOwner(f), PyFunction.class)) { PyNamedParameter element = f.getParameterList().findParameterByName(referencedName); diff --git a/python/python-syntax-core/src/com/jetbrains/python/validation/PyKeywordHighlightingAnnotator.java b/python/python-syntax-core/src/com/jetbrains/python/validation/PyKeywordHighlightingAnnotator.java index 45312b6dc99c..24af6caa05ed 100644 --- a/python/python-syntax-core/src/com/jetbrains/python/validation/PyKeywordHighlightingAnnotator.java +++ b/python/python-syntax-core/src/com/jetbrains/python/validation/PyKeywordHighlightingAnnotator.java @@ -21,6 +21,7 @@ import com.intellij.lang.annotation.HighlightSeverity; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFile; import com.intellij.psi.tree.TokenSet; +import com.intellij.psi.util.PsiTreeUtil; import com.jetbrains.python.PySyntaxCoreBundle; import com.jetbrains.python.PyTokenTypes; import com.jetbrains.python.PythonLanguage; @@ -108,6 +109,16 @@ public final class PyKeywordHighlightingAnnotator extends PyAnnotatorBase implem highlightKeyword(node, PyTokenTypes.TYPE_KEYWORD); } + @Override + public void visitElement(@NotNull PsiElement element) { + // Highlight None, True and False as keywords once again inside annotations after PyHighlighter + // to keep their original color + if (PyTokenTypes.EXPRESSION_KEYWORDS.contains(element.getNode().getElementType()) && + PsiTreeUtil.getParentOfType(element, PyAstAnnotation.class) != null) { + myHolder.addHighlightingAnnotation(element, PyHighlighter.PY_KEYWORD); + } + } + private void highlightKeyword(@NotNull PsiElement node, @NotNull PyElementType elementType) { highlightAsKeyword(node.getNode().findChildByType(elementType)); }