* lisp/progmodes/python.el (python--font-lock-f-strings): Bind
'parse-sexp-ignore-comments' to nil so that we can look for
closing braces even if a hash is used in the format specifier.
* test/lisp/progmodes/python-tests.el
(python-font-lock-f-string-1): New test. (Bug#74738)
(cherry picked from commit
71cd290c20dbbd8b14f09818b3c1b58623aea350)
(forward-char 1) ;Just skip over {{
(let ((beg (match-beginning 0))
(end (condition-case nil
- (progn (up-list 1) (min send (point)))
+ (let ((parse-sexp-ignore-comments))
+ (up-list 1)
+ (min send (point)))
(scan-error send))))
(goto-char end)
(put-text-property beg end 'face nil))))
(17 . font-lock-operator-face) (18)
(19 . font-lock-string-face))))
+(ert-deftest python-font-lock-f-string-1 ()
+ "Test for bug#74738."
+ (python-tests-assert-faces
+ "print(f\"{value:#x} is a value\")"
+ '((1 . font-lock-builtin-face) (6)
+ (8 . font-lock-string-face) (9)
+ (19 . font-lock-string-face) (31))))
+
\f
;;; Indentation