]> granicus.if.org Git - python/commitdiff
Issue #29071: Use local flags for IDLE colorizer string prefix matcher.
authorTerry Jan Reedy <tjreedy@udel.edu>
Mon, 2 Jan 2017 02:21:39 +0000 (21:21 -0500)
committerTerry Jan Reedy <tjreedy@udel.edu>
Mon, 2 Jan 2017 02:21:39 +0000 (21:21 -0500)
Revised re by Serhiy Storchaka.

Lib/idlelib/colorizer.py

index 7a919f164fcd328d8bcd7334e5a130caabfb8635..ff4084528804bd9a1bc3be88693d39719f747cec 100644 (file)
@@ -21,8 +21,7 @@ def make_pat():
     # 1st 'file' colorized normal, 2nd as builtin, 3rd as string
     builtin = r"([^.'\"\\#]\b|^)" + any("BUILTIN", builtinlist) + r"\b"
     comment = any("COMMENT", [r"#[^\n]*"])
-    stringprefix = (r"(\br|R|u|U|f|F|fr|Fr|fR|FR|rf|rF|Rf|RF"
-                    "|b|B|br|Br|bR|BR|rb|rB|Rb|RB)?")
+    stringprefix = r"(?i:\br|u|f|fr|rf|b|br|rb)?"
     sqstring = stringprefix + r"'[^'\\\n]*(\\.[^'\\\n]*)*'?"
     dqstring = stringprefix + r'"[^"\\\n]*(\\.[^"\\\n]*)*"?'
     sq3string = stringprefix + r"'''[^'\\]*((\\.|'(?!''))[^'\\]*)*(''')?"
@@ -262,10 +261,11 @@ def _color_delegator(parent):  # htest #
     top = Toplevel(parent)
     top.title("Test ColorDelegator")
     x, y = map(int, parent.geometry().split('+')[1:])
-    top.geometry("600x200+%d+%d" % (x + 100, y + 175))
+    top.geometry("700x250+%d+%d" % (x + 20, y + 175))
     source = ("# Following has syntax errors\n"
         "if True: then int 1\nelif False: print 0\nelse: float(None)\n"
-        "#unicode and byte strings, valid prefixes should be colored\n"
+        "if iF + If + IF: 'keywork matching must respect case'\n"
+        "# All valid prefixes for unicode and byte strings should be colored\n"
         "'x', '''x''', \"x\", \"\"\"x\"\"\"\n"
         "r'x', u'x', R'x', U'x', f'x', F'x', ur'is invalid'\n"
         "fr'x', Fr'x', fR'x', FR'x', rf'x', rF'x', Rf'x', RF'x'\n"