assignment feature:
`for var in range(3)` highlight var as font-lock-variable-name-face
`var1[ii] = 1; t.var2[jj] = 2` highlight var1, var2 as font-lock-variable-name-face
type feature:
support nested optional types up to 3 level deep, for example `tuple[tuple, list[Lvl1 | Lvl2[Lvl3[Lvl3], Lvl2]]]`
Summary of all changes in the patch:
keyword feature:
Add "is not" to the `python--treesit-keywords` list.
assignment feature:
For all examples,
`for var in range(3)`
`var1[ii] = 1; t.var2[jj] = 2`
`var := 3`
`var *= 3`
highlight var as font-lock-variable-name-face
string feature:
Fix fontification of strings inside of f-strings interpolation,
e.g. for f"beg {'nested'}" - 'nested' was not fontified as string.
function feature:
Do not override the face of builtin functions (all, bytes etc.) with
the function call face
type feature:
Fontify built-ins (dict,list,etc.) as types when they are used in type hints.
E.g. def func(v:dict[ list[ tuple[str] ], int | None] | None):