From 1ee1d9b43da37b157a91662a312415e4db400ba9 Mon Sep 17 00:00:00 2001 From: Jon Parise Date: Wed, 13 Aug 2025 22:34:51 +0200 Subject: [PATCH] runtime(python): highlight "self" and "cls" in syntax script These are special names by convention, and giving them distinct highlighting is a nice visual clue (using Identifier by default). This group is named "pythonClassVar" to match the name used by python-syntax. Some third-party color schemes are aware of this name and customized their colors accordingly. closes: #17968 Signed-off-by: Jon Parise Signed-off-by: Zvezdan Petkovic Signed-off-by: Christian Brabandt --- runtime/syntax/python.vim | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/runtime/syntax/python.vim b/runtime/syntax/python.vim index cc62babbfa..5c437b511f 100644 --- a/runtime/syntax/python.vim +++ b/runtime/syntax/python.vim @@ -1,7 +1,7 @@ " Vim syntax file " Language: Python " Maintainer: Zvezdan Petkovic -" Last Change: 2025 Aug 11 +" Last Change: 2025 Aug 13 " Credits: Neil Schemenauer " Dmitry Vasiliev " Rob B @@ -113,6 +113,10 @@ syn keyword pythonAsync async await syn match pythonConditional "^\s*\zscase\%(\s\+.*:.*$\)\@=" syn match pythonConditional "^\s*\zsmatch\%(\s\+.*:\s*\%(#.*\)\=$\)\@=" +" These names are special by convention. While they aren't real keywords, +" giving them distinct highlighting provides a nice visual cue. +syn keyword pythonClassVar self cls + " Decorators " A dot must be allowed because of @MyClass.myfunc decorators. syn match pythonDecorator "@" display contained @@ -378,6 +382,7 @@ hi def link pythonOperator Operator hi def link pythonException Exception hi def link pythonInclude Include hi def link pythonAsync Statement +hi def link pythonClassVar Identifier hi def link pythonDecorator Define hi def link pythonDecoratorName Function hi def link pythonClass Structure