(original) (raw)
changeset: 105922:62d3c0336df6 branch: 3.6 parent: 105920:f36f9bce997d user: Terry Jan Reedy tjreedy@udel.edu date: Sun Jan 01 21:21:39 2017 -0500 files: Lib/idlelib/colorizer.py description: Issue #29071: Use local flags for IDLE colorizer string prefix matcher. Revised re by Serhiy Storchaka. diff -r f36f9bce997d -r 62d3c0336df6 Lib/idlelib/colorizer.py --- a/Lib/idlelib/colorizer.py Sun Jan 01 19:05:29 2017 +0200 +++ b/Lib/idlelib/colorizer.py Sun Jan 01 21:21:39 2017 -0500 @@ -21,8 +21,7 @@ # 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 @@ 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" /tjreedy@udel.edu