<feed xmlns='http://www.w3.org/2005/Atom'>
<title>neovim/runtime/syntax/python.vim, branch master</title>
<subtitle>Vim-fork focused on extensibility and usability</subtitle>
<id>http://git.waynecole.info/neovim/atom?h=master</id>
<link rel='self' href='http://git.waynecole.info/neovim/atom?h=master'/>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/'/>
<updated>2026-03-11T23:55:00Z</updated>
<entry>
<title>vim-patch:2cf18fc: runtime(python): Update syntax, improve pythonNumber pattern performance (#38263)</title>
<updated>2026-03-11T23:55:00Z</updated>
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<published>2026-03-11T23:55:00Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=99a0b2f7b86d447af752ee7436dd5fd69fc6a101'/>
<id>urn:sha1:99a0b2f7b86d447af752ee7436dd5fd69fc6a101</id>
<content type='text'>
- Improve the performance of all pythonNumber patterns by unrolling
  digit/underscore sequence loops.
- Split the float literal pattern into two simpler patterns.

fixes:  vim/vim#19625 (Reported by James McCoy)
closes: vim/vim#19630

https://github.com/vim/vim/commit/2cf18fcc240030880bbd138e5174e436a3f20823

Co-authored-by: Doug Kearns &lt;dougkearns@gmail.com&gt;</content>
</entry>
<entry>
<title>vim-patch:632fd8b: runtime(python): Highlight built-in constants in Python</title>
<updated>2026-01-26T23:20:41Z</updated>
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<published>2026-01-26T23:13:57Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=6543217afc0203f5edafc6c696a70be1ac7f4923'/>
<id>urn:sha1:6543217afc0203f5edafc6c696a70be1ac7f4923</id>
<content type='text'>
Also add syntax tests for those newly constants.

closes: vim/vim#17788
closes: vim/vim#18922

https://github.com/vim/vim/commit/632fd8bb968b029d0a7c40a00101008ea5200b91

Co-authored-by: Rob B &lt;github@0x7e.net&gt;
</content>
</entry>
<entry>
<title>vim-patch:8d8c907: runtime(python): Highlight t-strings</title>
<updated>2025-12-04T00:52:06Z</updated>
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<published>2025-12-04T00:51:52Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=a278eebcfba84663257ff0d2e33a33917920e2b3'/>
<id>urn:sha1:a278eebcfba84663257ff0d2e33a33917920e2b3</id>
<content type='text'>
- Highlight t-strings
- Update comments
- Add tests

closes: vim/vim#18679

https://github.com/vim/vim/commit/8d8c9074c3cbb33b2b8b97556bdb7267e2617b93

Co-authored-by: Rob B &lt;github@0x7e.net&gt;
</content>
</entry>
<entry>
<title>vim-patch:900c747: runtime(python): fix 'type' syntax highlighting (#35918)</title>
<updated>2025-09-25T23:54:19Z</updated>
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<published>2025-09-25T23:54:19Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=a9486fe7e1291a997175d6ab74450a73ff3bc090'/>
<id>urn:sha1:a9486fe7e1291a997175d6ab74450a73ff3bc090</id>
<content type='text'>
The previous patterns unintentionally highlighted words like 'typename'.

addresses: https://github.com/vim/vim/pull/18090#issuecomment-3333025523
closes: vim/vim#18394

https://github.com/vim/vim/commit/900c747da393b031f3347428fb640224ac2f5442

Co-authored-by: Jon Parise &lt;jon@indelible.org&gt;</content>
</entry>
<entry>
<title>vim-patch:15070ee: runtime(python): Update syntax, fix pythonEllipsis pattern (#35724)</title>
<updated>2025-09-12T00:17:04Z</updated>
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<published>2025-09-12T00:17:04Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=0f3fef9bab31d8e61a8a1a72eef4afbbac60e17a'/>
<id>urn:sha1:0f3fef9bab31d8e61a8a1a72eef4afbbac60e17a</id>
<content type='text'>
fixes: vim/vim#18263
closes: vim/vim#18264

https://github.com/vim/vim/commit/15070eee2f1e11a69a4c2d99bad03c8f6756e6e0

Co-authored-by: Doug Kearns &lt;dougkearns@gmail.com&gt;</content>
</entry>
<entry>
<title>vim-patch:77cfc49: runtime(python): highlight ellipsis literals</title>
<updated>2025-09-09T03:39:23Z</updated>
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<published>2025-09-09T03:39:03Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=12868474db6fe7e4c3a1494bac26c8b0799393a3'/>
<id>urn:sha1:12868474db6fe7e4c3a1494bac26c8b0799393a3</id>
<content type='text'>
The ellipsis literal (`...`) can be used in multiple contexts:

- Placeholders:     `class Foo: ...`
- Containers:       `Tuple[int, ...]`
- Assignments:      `x = ...`

This is a trickier pattern to match because we can't rely on keyword
boundaries, so we instead look for exactly three dots (`...`).

This does mean that we will match the `...` portion of `x...x`, which
isn't valid Python syntax, but I think that's an acceptable trade-off
that avoids making this pattern much more complex.

Reference:
- https://docs.python.org/3/library/constants.html#Ellipsis

closes: vim/vim#18107

https://github.com/vim/vim/commit/77cfc49060a50daefd1675b8a1dece0e6e943384

Co-authored-by: Jon Parise &lt;jon@indelible.org&gt;
</content>
</entry>
<entry>
<title>vim-patch:6bb16d2: runtime(python): Update syntax file, fix f-string float highlighting</title>
<updated>2025-09-09T03:37:12Z</updated>
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<published>2025-09-09T03:36:47Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=53e78bec7c60fea67ef4ef05ada11ab3c058b0eb'/>
<id>urn:sha1:53e78bec7c60fea67ef4ef05ada11ab3c058b0eb</id>
<content type='text'>
Fix matching of floats at the beginning of an f-string replacement
field, immediately after the opening brace.

The existing pattern, using `\zs`, cannot consume the already matched
`{` so use a lookbehind instead.

See comment: https://github.com/vim/vim/pull/17962#issuecomment-3201550443

closes: vim/vim#18220

https://github.com/vim/vim/commit/6bb16d2cee87f834f003bf368ce70c5688242ac1

Co-authored-by: Doug Kearns &lt;dougkearns@gmail.com&gt;
</content>
</entry>
<entry>
<title>vim-patch:f1212a7: runtime(python): Do not match contained identifiers as pythonType</title>
<updated>2025-09-05T23:08:23Z</updated>
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<published>2025-09-05T23:08:08Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=b399a13f70887a9835c37710eb8d703ec01524b2'/>
<id>urn:sha1:b399a13f70887a9835c37710eb8d703ec01524b2</id>
<content type='text'>
related: vim/vim#17962
closes: vim/vim#18206

https://github.com/vim/vim/commit/f1212a7b4554f2f544b581f7e819d6ef67c5e9ad

Co-authored-by: Rob B &lt;github@0x7e.net&gt;
</content>
</entry>
<entry>
<title>vim-patch:d2b28dd: runtime(python): add syntax support inside f-strings</title>
<updated>2025-09-05T23:07:34Z</updated>
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<published>2025-09-05T09:58:57Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=665d5d80ac0be2c26c12dedd305329370110deaf'/>
<id>urn:sha1:665d5d80ac0be2c26c12dedd305329370110deaf</id>
<content type='text'>
fixes: vim/vim#14033
closes: vim/vim#17962

https://github.com/vim/vim/commit/d2b28ddfc2a7350c2f63b75d06cc53d17b3a66ff

Co-authored-by: Rob B &lt;github@0x7e.net&gt;
</content>
</entry>
<entry>
<title>vim-patch:99964e2: runtime(python): support 'type's soft keyword form</title>
<updated>2025-08-24T12:09:33Z</updated>
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<published>2025-08-24T12:09:17Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=98407a8b91e102ea7f10b3d17acbb3107dee3c15'/>
<id>urn:sha1:98407a8b91e102ea7f10b3d17acbb3107dee3c15</id>
<content type='text'>
`type` became a soft keyword in Python 3.12. In that form, it is a
statement that declares a type alias:

    # type_stmt ::= 'type' identifier [type_params] "=" expression
    type Point = tuple[float, float]

To implement support for this, this change does three things:

1. adds a `pythonType` group (linked to `Type`)
2. matches `type` followed by an identifier as `pythonStatement`
3. continues to match `type` in other forms as `pythonBuiltin`

Ref:
- https://docs.python.org/3/reference/lexical_analysis.html#soft-keywords
- https://docs.python.org/3/reference/simple_stmts.html#the-type-statement

closes: vim/vim#18090

https://github.com/vim/vim/commit/99964e2ea704465f25207c519fefb2bb6d6931bb

Co-authored-by: Jon Parise &lt;jon@indelible.org&gt;
</content>
</entry>
</feed>
