def _color_delegator(parent): # htest # from tkinter import Toplevel, Text from idlelib.percolator import Percolator top = Toplevel(parent) top.title("Test ColorDelegator") x, y = map(int, parent.geometry().split('+')[1:]) 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" "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" "b'x',B'x', br'x',Br'x',bR'x',BR'x', rb'x'.rB'x',Rb'x',RB'x'\n") text = Text(top, background="white") text.pack(expand=1, fill="both") text.insert("insert", source) text.focus_set() color_config(text) p = Percolator(text) d = ColorDelegator() p.insertfilter(d)
def _color_delegator(parent): # htest # from tkinter import Toplevel, Text from idlelib.percolator import Percolator top = Toplevel(parent) top.title("Test ColorDelegator") x, y = map(int, parent.geometry().split('+')[1:]) 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" "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" "b'x',B'x', br'x',Br'x',bR'x',BR'x', rb'x'.rB'x',Rb'x',RB'x'\n") text = Text(top, background="white") text.pack(expand=1, fill="both") text.insert("insert", source) text.focus_set() color_config(text) p = Percolator(text) d = ColorDelegator() p.insertfilter(d)
def _color_delegator(parent): from tkinter import Toplevel, Text from idlelib.percolator import Percolator top = Toplevel(parent) top.title('Test ColorDelegator') x, y = map(int, parent.geometry().split('+')[1:]) top.geometry('700x250+%d+%d' % (x + 20, y + 175)) source = """# Following has syntax errors if True: then int 1 elif False: print 0 else: float(None) if iF + If + IF: 'keywork matching must respect case' # All valid prefixes for unicode and byte strings should be colored 'x', '''x''', "x", ""\"x""\" r'x', u'x', R'x', U'x', f'x', F'x', ur'is invalid' fr'x', Fr'x', fR'x', FR'x', rf'x', rF'x', Rf'x', RF'x' b'x',B'x', br'x',Br'x',bR'x',BR'x', rb'x'.rB'x',Rb'x',RB'x' """ text = Text(top, background='white') text.pack(expand=1, fill='both') text.insert('insert', source) text.focus_set() color_config(text) p = Percolator(text) d = ColorDelegator() p.insertfilter(d)
def _color_delegator(parent): # htest # from tkinter import Toplevel, Text from idlelib.percolator import Percolator top = Toplevel(parent) top.title("Test ColorDelegator") x, y = map(int, parent.geometry().split('+')[1:]) top.geometry("700x250+%d+%d" % (x + 20, y + 175)) source = ( "if True: int ('1') # keyword, builtin, string, comment\n" "elif False: print(0)\n" "else: float(None)\n" "if iF + If + IF: 'keyword matching must respect case'\n" "if'': x or'' # valid string-keyword no-space combinations\n" "async def f(): await g()\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'\n" "fr'x', Fr'x', fR'x', FR'x', rf'x', rF'x', Rf'x', RF'x'\n" "b'x',B'x', br'x',Br'x',bR'x',BR'x', rb'x', rB'x',Rb'x',RB'x'\n" "# Invalid combinations of legal characters should be half colored.\n" "ur'x', ru'x', uf'x', fu'x', UR'x', ufr'x', rfu'x', xf'x', fx'x'\n" ) text = Text(top, background="white") text.pack(expand=1, fill="both") text.insert("insert", source) text.focus_set() color_config(text) p = Percolator(text) d = ColorDelegator() p.insertfilter(d)
def _color_delegator(parent): # htest # from tkinter import Toplevel, Text from idlelib.percolator import Percolator top = Toplevel(parent) top.title("Test ColorDelegator") x, y = map(int, parent.geometry().split('+')[1:]) top.geometry("700x250+%d+%d" % (x + 20, y + 175)) source = ( "if True: int ('1') # keyword, builtin, string, comment\n" "elif False: print(0)\n" "else: float(None)\n" "if iF + If + IF: 'keyword matching must respect case'\n" "if'': x or'' # valid string-keyword no-space combinations\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'\n" "fr'x', Fr'x', fR'x', FR'x', rf'x', rF'x', Rf'x', RF'x'\n" "b'x',B'x', br'x',Br'x',bR'x',BR'x', rb'x'.rB'x',Rb'x',RB'x'\n" "# Invalid combinations of legal characters should be half colored.\n" "ur'x', ru'x', uf'x', fu'x', UR'x', ufr'x', rfu'x', xf'x', fx'x'" ) text = Text(top, background="white") text.pack(expand=1, fill="both") text.insert("insert", source) text.focus_set() color_config(text) p = Percolator(text) d = ColorDelegator() p.insertfilter(d)
def colour_py(self, inherit_config=True): if 'idlelib' in sys.modules: col = idlelib.colorizer if inherit_config: col.color_config(self) p = Percolator(self) d = col.ColorDelegator() p.insertfilter(d)
class Dummy_editwin: def __init__(self, text): self.text = text self.text_frame = self.text.master self.per = Percolator(text) self.undo = Delegator() self.per.insertfilter(self.undo) def setvar(self, name, value): pass def getlineno(self, index): return int(float(self.text.index(index)))
def _color_delegator(parent): # htest # from tkinter import Toplevel, Text from idlelib.percolator import Percolator top = Toplevel(parent) top.title("Test ColorDelegator") top.geometry("200x100+%d+%d" % (parent.winfo_rootx() + 200, parent.winfo_rooty() + 150)) source = "if somename: x = 'abc' # comment\nprint\n" text = Text(top, background="white") text.pack(expand=1, fill="both") text.insert("insert", source) text.focus_set() color_config(text) p = Percolator(text) d = ColorDelegator() p.insertfilter(d)
def _color_delegator(parent): # htest # from tkinter import Toplevel, Text from idlelib.percolator import Percolator top = Toplevel(parent) top.title("Test ColorDelegator") x, y = map(int, parent.geometry().split('+')[1:]) top.geometry("200x100+%d+%d" % (x + 250, y + 175)) source = "if somename: x = 'abc' # comment\nprint\n" text = Text(top, background="white") text.pack(expand=1, fill="both") text.insert("insert", source) text.focus_set() color_config(text) p = Percolator(text) d = ColorDelegator() p.insertfilter(d)
def _color_delegator(parent): # htest # from tkinter import Toplevel, Text from idlelib.idle_test.test_colorizer import source from idlelib.percolator import Percolator top = Toplevel(parent) top.title("Test ColorDelegator") x, y = map(int, parent.geometry().split('+')[1:]) top.geometry("700x550+%d+%d" % (x + 20, y + 175)) text = Text(top, background="white") text.pack(expand=1, fill="both") text.insert("insert", source) text.focus_set() color_config(text) p = Percolator(text) d = ColorDelegator() p.insertfilter(d)
def _undo_delegator(parent): from tkinter import Toplevel, Text, Button from idlelib.percolator import Percolator undowin = Toplevel(parent) undowin.title('Test UndoDelegator') x, y = map(int, parent.geometry().split('+')[1:]) undowin.geometry('+%d+%d' % (x, y + 175)) text = Text(undowin, height=10) text.pack() text.focus_set() p = Percolator(text) d = UndoDelegator() p.insertfilter(d) undo = Button(undowin, text='Undo', command=lambda: d.undo_event(None)) undo.pack(side='left') redo = Button(undowin, text='Redo', command=lambda: d.redo_event(None)) redo.pack(side='left') dump = Button(undowin, text='Dump', command=lambda: d.dump_event(None)) dump.pack(side='left')
def _undo_delegator(parent): # htest # from tkinter import Toplevel, Text, Button from idlelib.percolator import Percolator undowin = Toplevel(parent) undowin.title("Test UndoDelegator") x, y = map(int, parent.geometry().split('+')[1:]) undowin.geometry("+%d+%d" % (x, y + 175)) text = Text(undowin, height=10) text.pack() text.focus_set() p = Percolator(text) d = UndoDelegator() p.insertfilter(d) undo = Button(undowin, text="Undo", command=lambda:d.undo_event(None)) undo.pack(side='left') redo = Button(undowin, text="Redo", command=lambda:d.redo_event(None)) redo.pack(side='left') dump = Button(undowin, text="Dump", command=lambda:d.dump_event(None)) dump.pack(side='left')
def _undo_delegator(parent): # htest # import re import tkinter as tk from idlelib.percolator import Percolator undowin = tk.Toplevel() undowin.title("Test UndoDelegator") width, height, x, y = list(map(int, re.split('[x+]', parent.geometry()))) undowin.geometry("+%d+%d"%(x, y + 150)) text = Text(undowin, height=10) text.pack() text.focus_set() p = Percolator(text) d = UndoDelegator() p.insertfilter(d) undo = Button(undowin, text="Undo", command=lambda:d.undo_event(None)) undo.pack(side='left') redo = Button(undowin, text="Redo", command=lambda:d.redo_event(None)) redo.pack(side='left') dump = Button(undowin, text="Dump", command=lambda:d.dump_event(None)) dump.pack(side='left')
def _undo_delegator(parent): # htest # import re from tkinter import Toplevel, Text, Button from idlelib.percolator import Percolator undowin = Toplevel(parent) undowin.title("Test UndoDelegator") width, height, x, y = list(map(int, re.split('[x+]', parent.geometry()))) undowin.geometry("+%d+%d" % (x, y + 175)) text = Text(undowin, height=10) text.pack() text.focus_set() p = Percolator(text) d = UndoDelegator() p.insertfilter(d) undo = Button(undowin, text="Undo", command=lambda: d.undo_event(None)) undo.pack(side='left') redo = Button(undowin, text="Redo", command=lambda: d.redo_event(None)) redo.pack(side='left') dump = Button(undowin, text="Dump", command=lambda: d.dump_event(None)) dump.pack(side='left')
def code_color(text: tk.Text): color_config(text) p = Percolator(text) d = ColorDelegator() p.insertfilter(d)
class PercolatorTest(unittest.TestCase): @classmethod def setUpClass(cls): cls.root = Tk() cls.text = Text(cls.root) @classmethod def tearDownClass(cls): del cls.text cls.root.destroy() del cls.root def setUp(self): self.percolator = Percolator(self.text) self.filter_one = MyFilter() self.filter_two = MyFilter() self.percolator.insertfilter(self.filter_one) self.percolator.insertfilter(self.filter_two) def tearDown(self): self.percolator.close() self.text.delete("1.0", END) def test_insertfilter(self): self.assertIsNotNone(self.filter_one.delegate) self.assertEqual(self.percolator.top, self.filter_two) self.assertEqual(self.filter_two.delegate, self.filter_one) self.assertEqual(self.filter_one.delegate, self.percolator.bottom) def test_removefilter(self): filter_three = MyFilter() self.percolator.removefilter(self.filter_two) self.assertEqual(self.percolator.top, self.filter_one) self.assertIsNone(self.filter_two.delegate) filter_three = MyFilter() self.percolator.insertfilter(self.filter_two) self.percolator.insertfilter(filter_three) self.percolator.removefilter(self.filter_one) self.assertEqual(self.percolator.top, filter_three) self.assertEqual(filter_three.delegate, self.filter_two) self.assertEqual(self.filter_two.delegate, self.percolator.bottom) self.assertIsNone(self.filter_one.delegate) def test_insert(self): self.text.insert("insert", "foo") self.assertEqual(self.text.get("1.0", END), "foo\n") self.assertTupleEqual(self.filter_one.insert_called_with, ("insert", "foo", None)) def test_modify_insert(self): self.filter_one.insert = self.filter_one.uppercase_insert self.text.insert("insert", "bAr") self.assertEqual(self.text.get("1.0", END), "BAR\n") def test_modify_chain_insert(self): filter_three = MyFilter() self.percolator.insertfilter(filter_three) self.filter_two.insert = self.filter_two.uppercase_insert self.filter_one.insert = self.filter_one.lowercase_insert self.text.insert("insert", "BaR") self.assertEqual(self.text.get("1.0", END), "bar\n") def test_dont_insert(self): self.filter_one.insert = self.filter_one.dont_insert self.text.insert("insert", "foo bar") self.assertEqual(self.text.get("1.0", END), "\n") self.filter_one.insert = self.filter_one.dont_insert self.text.insert("insert", "foo bar") self.assertEqual(self.text.get("1.0", END), "\n") def test_without_filter(self): self.text.insert("insert", "hello") self.assertEqual(self.text.get("1.0", "end"), "hello\n") def test_delete(self): self.text.insert("insert", "foo") self.text.delete("1.0", "1.2") self.assertEqual(self.text.get("1.0", END), "o\n") self.assertTupleEqual(self.filter_one.delete_called_with, ("1.0", "1.2"))
class PercolatorTest(unittest.TestCase): @classmethod def setUpClass(cls): cls.root = Tk() cls.text = Text(cls.root) @classmethod def tearDownClass(cls): del cls.text cls.root.destroy() del cls.root def setUp(self): self.percolator = Percolator(self.text) self.filter_one = MyFilter() self.filter_two = MyFilter() self.percolator.insertfilter(self.filter_one) self.percolator.insertfilter(self.filter_two) def tearDown(self): self.percolator.close() self.text.delete('1.0', END) def test_insertfilter(self): self.assertIsNotNone(self.filter_one.delegate) self.assertEqual(self.percolator.top, self.filter_two) self.assertEqual(self.filter_two.delegate, self.filter_one) self.assertEqual(self.filter_one.delegate, self.percolator.bottom) def test_removefilter(self): filter_three = MyFilter() self.percolator.removefilter(self.filter_two) self.assertEqual(self.percolator.top, self.filter_one) self.assertIsNone(self.filter_two.delegate) filter_three = MyFilter() self.percolator.insertfilter(self.filter_two) self.percolator.insertfilter(filter_three) self.percolator.removefilter(self.filter_one) self.assertEqual(self.percolator.top, filter_three) self.assertEqual(filter_three.delegate, self.filter_two) self.assertEqual(self.filter_two.delegate, self.percolator.bottom) self.assertIsNone(self.filter_one.delegate) def test_insert(self): self.text.insert('insert', 'foo') self.assertEqual(self.text.get('1.0', END), 'foo\n') self.assertTupleEqual(self.filter_one.insert_called_with, ('insert', 'foo', None)) def test_modify_insert(self): self.filter_one.insert = self.filter_one.uppercase_insert self.text.insert('insert', 'bAr') self.assertEqual(self.text.get('1.0', END), 'BAR\n') def test_modify_chain_insert(self): filter_three = MyFilter() self.percolator.insertfilter(filter_three) self.filter_two.insert = self.filter_two.uppercase_insert self.filter_one.insert = self.filter_one.lowercase_insert self.text.insert('insert', 'BaR') self.assertEqual(self.text.get('1.0', END), 'bar\n') def test_dont_insert(self): self.filter_one.insert = self.filter_one.dont_insert self.text.insert('insert', 'foo bar') self.assertEqual(self.text.get('1.0', END), '\n') self.filter_one.insert = self.filter_one.dont_insert self.text.insert('insert', 'foo bar') self.assertEqual(self.text.get('1.0', END), '\n') def test_without_filter(self): self.text.insert('insert', 'hello') self.assertEqual(self.text.get('1.0', 'end'), 'hello\n') def test_delete(self): self.text.insert('insert', 'foo') self.text.delete('1.0', '1.2') self.assertEqual(self.text.get('1.0', END), 'o\n') self.assertTupleEqual(self.filter_one.delete_called_with, ('1.0', '1.2'))
class PercolatorTest(unittest.TestCase): @classmethod def setUpClass(cls): cls.root = Tk() cls.text = Text(cls.root) @classmethod def tearDownClass(cls): del cls.text cls.root.destroy() del cls.root def setUp(self): self.percolator = Percolator(self.text) self.filter_one = MyFilter() self.filter_two = MyFilter() self.percolator.insertfilter(self.filter_one) self.percolator.insertfilter(self.filter_two) def tearDown(self): self.percolator.close() self.text.delete('1.0', END) def test_insertfilter(self): self.assertIsNotNone(self.filter_one.delegate) self.assertEqual(self.percolator.top, self.filter_two) self.assertEqual(self.filter_two.delegate, self.filter_one) self.assertEqual(self.filter_one.delegate, self.percolator.bottom) def test_removefilter(self): filter_three = MyFilter() self.percolator.removefilter(self.filter_two) self.assertEqual(self.percolator.top, self.filter_one) self.assertIsNone(self.filter_two.delegate) filter_three = MyFilter() self.percolator.insertfilter(self.filter_two) self.percolator.insertfilter(filter_three) self.percolator.removefilter(self.filter_one) self.assertEqual(self.percolator.top, filter_three) self.assertEqual(filter_three.delegate, self.filter_two) self.assertEqual(self.filter_two.delegate, self.percolator.bottom) self.assertIsNone(self.filter_one.delegate) def test_insert(self): self.text.insert('insert', 'foo') self.assertEqual(self.text.get('1.0', END), 'foo\n') self.assertTupleEqual(self.filter_one.insert_called_with, ('insert', 'foo', None)) def test_modify_insert(self): self.filter_one.insert = self.filter_one.uppercase_insert self.text.insert('insert', 'bAr') self.assertEqual(self.text.get('1.0', END), 'BAR\n') def test_modify_chain_insert(self): filter_three = MyFilter() self.percolator.insertfilter(filter_three) self.filter_two.insert = self.filter_two.uppercase_insert self.filter_one.insert = self.filter_one.lowercase_insert self.text.insert('insert', 'BaR') self.assertEqual(self.text.get('1.0', END), 'bar\n') def test_dont_insert(self): self.filter_one.insert = self.filter_one.dont_insert self.text.insert('insert', 'foo bar') self.assertEqual(self.text.get('1.0', END), '\n') self.filter_one.insert = self.filter_one.dont_insert self.text.insert('insert', 'foo bar') self.assertEqual(self.text.get('1.0', END), '\n') def test_without_filter(self): self.text.insert('insert', 'hello') self.assertEqual(self.text.get('1.0', 'end'), 'hello\n') def test_delete(self): self.text.insert('insert', 'foo') self.text.delete('1.0', '1.2') self.assertEqual(self.text.get('1.0', END), 'o\n') self.assertTupleEqual(self.filter_one.delete_called_with, ('1.0', '1.2'))