bpo-30663: IDLE: Add lineno sidebar to editor window by mlouielu · Pull Request #2183 · python/cpython
# The default tab setting for a Text widget, in average-width characters. TK_TABWIDTH_DEFAULT = 8
def __init__(self, flist=None, filename=None, key=None, root=None): def __init__(self, flist=None, filename=None, key=None, root=None, has_lineno=False): if EditorWindow.help_url is None: dochome = os.path.join(sys.base_prefix, 'Doc', 'index.html') if sys.platform.count('linux'):
self.text = text = MultiCallCreator(sidebar.SidebarText)(text_frame, **text_options) self.top.focused_widget = self.text
self.createmenubar()
if has_lineno: self.sidebar = sidebar.LineNumberSidebar(text_frame, width=48) self.sidebar.attach(text) self.sidebar.pack(side=LEFT, fill=Y) self.text.bind('<<Change>>', self.set_sidebar) self.text.bind('<Configure>', self.set_sidebar)
text.pack(side=TOP, fill=BOTH, expand=1) text.focus_set()
def set_sidebar(self, event=None): self.sidebar.redraw()
menu_specs = [ ("file", "_File"), ("edit", "_Edit"),