neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

commit 9df9d3af3be88ad17157a4028fe0d40101d2664c
parent fd5d04fbffec9a4ba87add584b36abbefa21a69e
Author: Christian Clason <c.clason@uni-graz.at>
Date:   Fri, 18 Jul 2025 09:42:50 +0200

vim-patch:b7fc24d: runtime(python): Highlight f-strings in Python

fixes: vim/vim#10734
fixes: vim/vim#14033
closes: vim/vim#17767

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

Co-authored-by: Rob B <github@0x7e.net>

Diffstat:
Mruntime/syntax/python.vim | 31++++++++++++++++++++++++++++++-
1 file changed, 30 insertions(+), 1 deletion(-)

diff --git a/runtime/syntax/python.vim b/runtime/syntax/python.vim @@ -1,7 +1,7 @@ " Vim syntax file " Language: Python " Maintainer: Zvezdan Petkovic <zpetkovic@acm.org> -" Last Change: 2025 Jul 14 +" Last Change: 2025 Jul 17 " Credits: Neil Schemenauer <nas@python.ca> " Dmitry Vasiliev " Rob B @@ -156,6 +156,33 @@ syn region pythonRawString matchgroup=pythonTripleQuotes \ start=+[rR]\z('''\|"""\)+ end="\z1" keepend \ contains=pythonSpaceError,pythonDoctest,@Spell +" Formatted string literals (f-strings) +" https://docs.python.org/3/reference/lexical_analysis.html#f-strings +syn region pythonFString + \ matchgroup=pythonQuotes + \ start=+\cF\z(['"]\)+ + \ end="\z1" + \ skip="\\\\\|\\\z1" + \ contains=pythonEscape,pythonUnicodeEscape,@Spell +syn region pythonFString + \ matchgroup=pythonTripleQuotes + \ start=+\cF\z('''\|"""\)+ + \ end="\z1" + \ keepend + \ contains=pythonEscape,pythonUnicodeEscape,pythonSpaceError,pythonDoctest,@Spell +syn region pythonRawFString + \ matchgroup=pythonQuotes + \ start=+\c\%(FR\|RF\)\z(['"]\)+ + \ end="\z1" + \ skip="\\\\\|\\\z1" + \ contains=@Spell +syn region pythonRawFString + \ matchgroup=pythonTripleQuotes + \ start=+\c\%(FR\|RF\)\z('''\|"""\)+ + \ end="\z1" + \ keepend + \ contains=pythonSpaceError,pythonDoctest,@Spell + " Bytes syn region pythonBytes \ matchgroup=pythonQuotes @@ -338,6 +365,8 @@ hi def link pythonComment Comment hi def link pythonTodo Todo hi def link pythonString String hi def link pythonRawString String +hi def link pythonFString String +hi def link pythonRawFString String hi def link pythonBytes String hi def link pythonRawBytes String hi def link pythonQuotes String