runtime(python): Highlight f-string replacement fields in Python

Highlight f-string replacement fields, including

- Comments
- Debugging flags
- Conversion fields
- Format specifications
- Delimiters

Syntax inside fields will be addressed in a separate commit.

related: #10734
related: #14033
closes: #17784

Signed-off-by: Rob B <github@0x7e.net>
Signed-off-by: Zvezdan Petkovic <zpetkovic@acm.org>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
Rob B
2025-08-10 10:35:31 +02:00
committed by Christian Brabandt
parent 48b7eb1ceb
commit a94a0555d9
14 changed files with 249 additions and 87 deletions

View File

@@ -1,20 +1,20 @@
|t+0&#ffffff0|e|s|t| |=| |R+0#e000002&|b|'|R|a|w| |b|y|t|e|s| |w|i|t|h| |l|i|t|e|r|a|l| |\|u|0@1|A|1| |a|n|d| |\|U|0@2|1|0|6|0|5| |a|n|d| |\|N|{|I|N|V|E|R|T|E|D| |E|X|C|L
|A|M|A|T|I|O|N| |M|A|R|K|}|'| +0#0000000&@60
|t|e|s|t| |=| |R+0#e000002&|B|"|R|a|w| |b|y|t|e|s| |w|i|t|h| |l|i|t|e|r|a|l| |\@1| |b|a|c|k|s|l|a|s|h|e|s| |a|n|d| |l|i|t|e|r|a|l| |\| +0#0000000&@13
|n+0#e000002&|e|w|l|i|n|e|"| +0#0000000&@66
|t|e|s|t| |=| |b+0#e000002&|r|'@2|R|a|w| |b|y|t|e|s| |w|i|t|h| |q|u|o|t|e|s| |'| |a|n|d| |"| +0#0000000&@33
>a+0#e000002&|n|d| |l|i|t|e|r|a|l| |\|t| |a|n|d| |\|0|4|0| |a|n|d| |\|x|F@1| +0#0000000&@42
|a+0#e000002&|n|d| |l|i|t|e|r|a|l| |\|u|0@1|A|1| |a|n|d| |\|U|0@2|1|0|6|0|5|'@2| +0#0000000&@38
|t|e|s|t| |=| |R+0#e000002&|B|"@2|R|a|w| |b|y|t|e|s| |w|i|t|h| |q|u|o|t|e|s| |'| |a|n|d| |"| +0#0000000&@33
|a+0#e000002&|n|d| |l|i|t|e|r|a|l| |\|t| |a|n|d| |\|0|4|0| |a|n|d| |\|x|F@1| +0#0000000&@42
|a+0#e000002&|n|d| |l|i|t|e|r|a|l| |\|u|0@1|A|1| |a|n|d| |\|U|0@2|1|0|6|0|5|"@2| +0#0000000&@38
|~+0#4040ff13&| @73
|~| @73
|~| @73
|~| @73
|~| @73
|~| @73
|~| @73
|~| @73
|~| @73
| +0#0000000&@56|1|2|7|,|1| @8|B|o|t|
|t+0&#ffffff0|e|s|t| |=| |f+0#e000002&|"|{+0#e000e06&|n+0#0000000&|u|m|b|e|r|:+0#e000e06&| |<|+|#|0|x|}|"+0#e000002&| +0#0000000&@49
|t|e|s|t| |=| |f+0#e000002&|"|{+0#e000e06&|n+0#0000000&|u|m|b|e|r|:+0#e000e06&|<|#|0|x|}|"+0#e000002&| +0#0000000&@51
|t|e|s|t| |=| |f+0#e000002&|"|{+0#e000e06&|n+0#0000000&|u|m|b|e|r|:+0#e000e06&| |<|#|0|x|}|"+0#e000002&| +0#0000000&@50
|t|e|s|t| |=| |f+0#e000002&|"|{+0#e000e06&|s+0#0000000&|t|r|i|n|g|=+0#e000e06&|}|"+0#e000002&| +0#0000000&@55
|t|e|s|t| |=| |f+0#e000002&|"|{+0#e000e06&|s+0#0000000&|t|r|i|n|g|=+0#e000e06&|!|r|}|"+0#e000002&| +0#0000000&@53
>t|e|s|t| |=| |f+0#e000002&|"|{+0#e000e06&|s+0#0000000&|t|r|i|n|g|=+0#e000e06&|:|2|0|}|"+0#e000002&| +0#0000000&@52
|t|e|s|t| |=| |f+0#e000002&|"|{+0#e000e06&|s+0#0000000&|t|r|i|n|g|=+0#e000e06&|!|r|:|2|0|}|"+0#e000002&| +0#0000000&@50
|t|e|s|t| |=| |f+0#e000002&|"|{+0#e000e06&|s+0#0000000&|t|r|i|n|g| +0#e000e06&|=| |}|"+0#e000002&| +0#0000000&@53
|t|e|s|t| |=| |f+0#e000002&|"|{+0#e000e06&|s+0#0000000&|t|r|i|n|g| +0#e000e06&|=| |!|r|}|"+0#e000002&| +0#0000000&@51
|t|e|s|t| |=| |f+0#e000002&|"|{+0#e000e06&|s+0#0000000&|t|r|i|n|g| +0#e000e06&|=| |:|2|0|}|"+0#e000002&| +0#0000000&@50
|t|e|s|t| |=| |f+0#e000002&|"|{+0#e000e06&|s+0#0000000&|t|r|i|n|g| +0#e000e06&|=| |!|r|:|2|0|}|"+0#e000002&| +0#0000000&@48
|t|e|s|t| |=| |f+0#e000002&|"|a|b|c| |{+0#e000e06&|a+0#0000000&|[|"|x|"|]|}+0#e000e06&| +0#e000002&|d|e|f|"| +0#0000000&@48
|t|e|s|t| |=| |f+0#e000002&|"|L|i|s|t| |c|o|n|t|a|i|n|s|:|\+0#e000e06&|n|{|"+0#0000000&|\|n|"|.|j|o|i|n|(|a|)|}+0#e000e06&|"+0#e000002&| +0#0000000&@34
|t|e|s|t| |=| |f+0#e000002&|"|T|o|d|a|y|'|s| |d|a|t|e| |i|s| |{+0#e000e06&|d+0#0000000&|a|t|e|t|i|m|e|.|n|o|w|(|)|}+0#e000e06&|"+0#e000002&| +0#0000000&@32
|t|e|s|t| |=| |f+0#e000002&|"|T|o|d|a|y|'|s| |f|o|r|m|a|t@1|e|d| |d|a|t|e| |i|s| |{+0#e000e06&|d+0#0000000&|a|t|e|t|i|m|e|.|n|o|w|(|)|:+0#e000e06&|%|Y|-|%|m|-|%|d| |%|H|:|%|M|:|%|S|}|"+0#e000002&| +0#0000000&@4
|t|e|s|t| |=| |f+0#e000002&|"|D|a|t|e| |i|s| |{+0#e000e06&|d+0#0000000&|a|t|e|t|i|m|e|.|d|a|t|e|t|i|m|e|(|2|0|1|0|,| |7|,| |4|,| |1|2|,| |1|5|,| |5|8|)|}+0#e000e06&|"+0#e000002&| +0#0000000&@13
|t|e|s|t| |=| |f+0#e000002&|"|F|o|r|m|a|t@1|e|d| |d|a|t|e| |i|s| |{+0#e000e06&|d+0#0000000&|a|t|e|t|i|m|e|.|d|a|t|e|t|i|m|e|(|2|0|1|0|,| |7|,| |4|,| |1|2|,| |1|5|,| |5|8|)|:+0#e000e06&|%|Y|-|%|m
|-|%|d| |%|H|:|%|M|:|%|S|}|"+0#e000002&| +0#0000000&@60
|t|e|s|t| |=| |f+0#e000002&|"|L|a|m|b|d|a| |r|e|t|u|r|n|s| |{+0#e000e06&|(+0#0000000&|l|a|m|b|d|a| |x|:| |x|*@1|2|)|}+0#e000e06&|"+0#e000002&| +0#0000000&@31
@57|1|3|1|,|1| @8|7|1|%|