Handle triple-quoted strings correctly: take 2
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
python-mode.el |
Fix Released
|
Medium
|
Andreas Roehler |
Bug Description
This patch uses font-lock-mode's syntactic keyword feature to ensure that
triple quoted strings are displayed correctly. In particular, it defines a
font-lock-
not be considered string delimiters because they occur inside triple-quoted
strings, and sets their syntactic designation to "normal punctuation" (the
same designation used for e.g. operators).
This is a more principled approach than my previous attempt to fix
python-mode's handling of triple-quoted strings [1], and as a result the
patch is about a third as big, and should never incur any serious
overhead.
This patch has been tested successfully on the following emacs variants:
XEmacs 21.4 (patch 13) (i386-redhat-linux)
XEmacs 21.4 (patch 17) (i386-debian-linux)
GNU Emacs 21.3.1 (i386-wingw-
GNU Emacs 21.3.1 (i386-redhat-
GNU Emacs 22.0.50.1 (powerpc-
I am also including the file test-triple-
of test cases to make sure the mode is working correctly. This file is
*not* intended to be run -- it is intended to be opened in python-mode, and
examined by hand to verify that the correct faces are used. I included
test cases for every corner case that I thought of (e.g. interactions
between backslashes and quotes, and cases with more than 3 quotes in a
row).
The new behavior can be turned off using the customization constant
"py-syntactic-
to ever be necessary.
I am retiring my previous patch with the same goal [1] -- this patch
supsercedes it.
If this patch looks acceptable, let me know, and I can commit it. (Or feel
free to commit it yourself.) It might be good to include the test file,
possibly in a "tests/" subdirectory.
[1]
http://
6916&atid=581351
[http://
Related branches
- python-mode.el developers: Pending requested
-
Diff: 349 lines (+178/-63)1 file modifiedpython-mode.el (+178/-63)
Changed in python-mode: | |
assignee: | nobody → Andreas Roehler (a-roehler) |
status: | New → Confirmed |
Changed in python-mode: | |
status: | Fix Committed → Fix Released |
Originator: YES
File Added: test-triple- strings. py