| 36 | darwin = sys.platform == 'darwin' |
| 37 | |
| 38 | class EditorWindow: |
| 39 | from idlelib.percolator import Percolator |
| 40 | from idlelib.colorizer import ColorDelegator, color_config |
| 41 | from idlelib.undo import UndoDelegator |
| 42 | from idlelib.iomenu import IOBinding, encoding |
| 43 | from idlelib import mainmenu |
| 44 | from idlelib.statusbar import MultiStatusBar |
| 45 | from idlelib.autocomplete import AutoComplete |
| 46 | from idlelib.autoexpand import AutoExpand |
| 47 | from idlelib.calltip import Calltip |
| 48 | from idlelib.codecontext import CodeContext |
| 49 | from idlelib.sidebar import LineNumbers |
| 50 | from idlelib.format import FormatParagraph, FormatRegion, Indents, Rstrip |
| 51 | from idlelib.parenmatch import ParenMatch |
| 52 | from idlelib.zoomheight import ZoomHeight |
| 53 | |
| 54 | filesystemencoding = sys.getfilesystemencoding() # for file names |
| 55 | help_url = None |
| 56 | |
| 57 | allow_code_context = True |
| 58 | allow_line_numbers = True |
| 59 | user_input_insert_tags = None |
| 60 | |
| 61 | def __init__(self, flist=None, filename=None, key=None, root=None): |
| 62 | # Delay import: runscript imports pyshell imports EditorWindow. |
| 63 | from idlelib.runscript import ScriptBinding |
| 64 | |
| 65 | if EditorWindow.help_url is None: |
| 66 | EditorWindow.help_url = _get_dochome() |
| 67 | self.flist = flist |
| 68 | root = root or flist.root |
| 69 | self.root = root |
| 70 | self.menubar = Menu(root) |
| 71 | self.top = top = window.ListedToplevel(root, menu=self.menubar) |
| 72 | if flist: |
| 73 | self.tkinter_vars = flist.vars |
| 74 | #self.top.instance_dict makes flist.inversedict available to |
| 75 | #configdialog.py so it can access all EditorWindow instances |
| 76 | self.top.instance_dict = flist.inversedict |
| 77 | else: |
| 78 | self.tkinter_vars = {} # keys: Tkinter event names |
| 79 | # values: Tkinter variable instances |
| 80 | self.top.instance_dict = {} |
| 81 | self.recent_files_path = idleConf.userdir and os.path.join( |
| 82 | idleConf.userdir, 'recent-files.lst') |
| 83 | |
| 84 | self.prompt_last_line = '' # Override in PyShell |
| 85 | self.text_frame = text_frame = Frame(top) |
| 86 | self.vbar = vbar = Scrollbar(text_frame, name='vbar') |
| 87 | width = idleConf.GetOption('main', 'EditorWindow', 'width', type='int') |
| 88 | text_options = { |
| 89 | 'name': 'text', |
| 90 | 'padx': 5, |
| 91 | 'wrap': 'none', |
| 92 | 'highlightthickness': 0, |
| 93 | 'width': width, |
| 94 | 'tabstyle': 'wordprocessor', # new in 8.5 |
| 95 | 'height': idleConf.GetOption( |
no outgoing calls
searching dependent graphs…