Add support for Python 3.6 f-string literal, underscore in numbers, and Python 3.5 type annotations#60
Add support for Python 3.6 f-string literal, underscore in numbers, and Python 3.5 type annotations#60achimnol wants to merge 23 commits intohdima:masterfrom
Conversation
More specifically, they are "built-in constants": https://docs.python.org/2/library/constants.html#built-in-consts
* "_0" is a valid identifier!
|
It works great for me, thank you! |
|
Seems like @hdima is rare guest on github lately. But this is the best known vim python syntax repository. |
|
That will need privileges granted by hdima, or we can only have forks. I'm already maintaining my own fork. |
mostly taken from hdima/python-syntax#60
* Make them highlighted only when used as in the global namespace. (e.g., `id` in `something.id` is not highlighted) * Also add self and cls to builtin objects
* Builtin-functions are highlighted only when used as global functions. * Annotations in type-only variable definitions and assignment statements are not supported yet due to potential conflicts with dictionary expressions. * Uses a custom syntax highlight def "Optional" (in my setup, it applies italic style.) * Taken from purpleP/python-syntax commits and customized.
* It is recommended to override it in colorschemes.
|
Thanks you for you work. I seems that *red arrow indicate the code that should not mark as python type annotation. * |
|
as I know Vim runtime has python syntax file. so what is the differences? and why is can not be merged into Vim core repo? |
|
@achimnol @yech1990 don't include |
| syn match pythonStatement "\<async\s\+for\>" display | ||
| endif | ||
|
|
||
| syn cluster pythonTypeExpression contains=pythonTypeAnno,pythonTypeUnion,pythonTypeArgs |
|
@lilydjwg Thank you for your reply. I remove |
|
@yech1990 No. I was using another version. I've switched to this version since it has more features. I'll comment here if I notice anything wrong. |
|
@yech1990 here's another bug: def func():
a = call(x | y)
|


PR for #58 and #59.
Finally I figured out how to "embed" other syntax inside a region using
syn cluster.Python keywords, numbers, booleans, and builtins are highlighted inside f-string braced regions.
I tried to prevent the content inside braces from being highlighted as "Special" while keeping the braces and format string highlighted, but could not separate them. Still, I think this version much improves readability.
Comments, optimizations, and fixes are welcome.