]> git.eshelyaron.com Git - emacs.git/commit
Fix font lock of assignments with type hints in Python
authorDario Gjorgjevski <dario.gjorgjevski@gmail.com>
Wed, 11 Nov 2020 09:49:04 +0000 (10:49 +0100)
committerLars Ingebrigtsen <larsi@gnus.org>
Wed, 11 Nov 2020 09:49:04 +0000 (10:49 +0100)
commit296e4dd15e3754fdddf70d33f2d630462d4b3309
treec68acf1a006fefda69f8a5ec65807a10f38e5ba9
parent9038890ae21eed644251df9511cfda298a594ed9
Fix font lock of assignments with type hints in Python

* lisp/progmodes/python.el
(python-font-lock-keywords-maximum-decoration): Fix regular
expressions for font lock of assignments with type hints (bug#44568).

The font lock of assignments with type hints in Python is rather bad.
Consider the following example:

    from typing import Mapping, Tuple, Sequence
    var1: int = 5
    var2: Mapping[int, int] = {10: 1024}
    var3: Mapping[Tuple[int, int], int] = {(2, 5): 32}
    var4: Sequence[Sequence[int]] = [[1], [1, 2], [1, 2, 3]]
    var5: Sequence[Mapping[str, Sequence[str]]] = [
        {
            'red': ['scarlet', 'vermilion', 'ruby'],
            'green': ['emerald green', 'aqua']
        },
        {
            'sword': ['cutlass', 'rapier']
        }
    ]

As things stand right now, only ‘var1’ would be highlighted.  To make
things worse, the ‘Mapping’ type hint of ‘var2’ would also be
highlighted, which is entirely incorrect.

This commit makes all of ‘var1’ through ‘var5’ be highlighted
correctly.
lisp/progmodes/python.el