/opt/alt/python34/lib64/python3.4/idlelib
NameSizeModeActions
Icons/-0755rm
idle_test/-0755rm
__pycache__/-0755rm
aboutDialog.py66880644editdlrm
AutoComplete.py92020644editdlrm
AutoCompleteWindow.py177390644editdlrm
AutoExpand.py33950644editdlrm
Bindings.py30460644editdlrm
CallTips.py59320644editdlrm
CallTipWindow.py60340644editdlrm
ChangeLog563930644editdlrm
ClassBrowser.py69990644editdlrm
CodeContext.py83480644editdlrm
ColorDelegator.py96950644editdlrm
config-extensions.def29650644editdlrm
config-highlight.def25150644editdlrm
config-keys.def77770644editdlrm
config-main.def25630644editdlrm
configDialog.py643050644editdlrm
configHandler.py321970644editdlrm
configHelpSourceEdit.py66700644editdlrm
configSectionNameDialog.py40070644editdlrm
CREDITS.txt18650644editdlrm
Debugger.py187590644editdlrm
Delegator.py6650644editdlrm
dynOptionMenuWidget.py19900644editdlrm
EditorWindow.py660590644editdlrm
extend.txt36420644editdlrm
FileList.py38130644editdlrm
FormatParagraph.py72870644editdlrm
GrepDialog.py51240644editdlrm
help.html411260644editdlrm
help.py97010644editdlrm
help.txt179000644editdlrm
HISTORY.txt103170644editdlrm
HyperParser.py128770644editdlrm
idle.py4000644editdlrm
idle.pyw5700644editdlrm
IdleHistory.py40520644editdlrm
idlever.py4150644editdlrm
IOBinding.py197730644editdlrm
keybindingDialog.py124160644editdlrm
macosxSupport.py86840644editdlrm
MultiCall.py185710644editdlrm
MultiStatusBar.py13480644editdlrm
NEWS.txt398350644editdlrm
ObjectBrowser.py39750644editdlrm
OutputWindow.py43940644editdlrm
ParenMatch.py67130644editdlrm
PathBrowser.py32070644editdlrm
Percolator.py32440644editdlrm
PyParse.py204610644editdlrm
PyShell.py584500755editdlrm
README.txt77090644editdlrm
RemoteDebugger.py120070644editdlrm
RemoteObjectBrowser.py9640644editdlrm
ReplaceDialog.py66400644editdlrm
rpc.py207820644editdlrm
RstripExtension.py10500644editdlrm
run.py136730644editdlrm
ScriptBinding.py80610644editdlrm
ScrolledList.py43750644editdlrm
SearchDialog.py26300644editdlrm
SearchDialogBase.py70090644editdlrm
SearchEngine.py74850644editdlrm
StackViewer.py44260644editdlrm
tabbedpages.py184180644editdlrm
textView.py32250644editdlrm
TODO.txt84780644editdlrm
ToolTip.py31730644editdlrm
TreeWidget.py150240644editdlrm
UndoDelegator.py108150644editdlrm
WidgetRedirector.py68690644editdlrm
WindowList.py24720644editdlrm
ZoomHeight.py13000644editdlrm
__init__.py2880644editdlrm
__main__.py1590644editdlrm
Edit: /opt/alt/python34/lib64/python3.4/idlelib/extend.txt (3642B)
Writing an IDLE extension ========================= An IDLE extension can define new key bindings and menu entries for IDLE edit windows. There is a simple mechanism to load extensions when IDLE starts up and to attach them to each edit window. (It is also possible to make other changes to IDLE, but this must be done by editing the IDLE source code.) The list of extensions loaded at startup time is configured by editing the file config-extensions.def. See below for details. An IDLE extension is defined by a class. Methods of the class define actions that are invoked by event bindings or menu entries. Class (or instance) variables define the bindings and menu additions; these are automatically applied by IDLE when the extension is linked to an edit window. An IDLE extension class is instantiated with a single argument, `editwin', an EditorWindow instance. The extension cannot assume much about this argument, but it is guaranteed to have the following instance variables: text a Text instance (a widget) io an IOBinding instance (more about this later) flist the FileList instance (shared by all edit windows) (There are a few more, but they are rarely useful.) The extension class must not directly bind Window Manager (e.g. X) events. Rather, it must define one or more virtual events, e.g. <>, and corresponding methods, e.g. zoom_height_event(). The virtual events will be bound to the corresponding methods, and Window Manager events can then be bound to the virtual events. (This indirection is done so that the key bindings can easily be changed, and so that other sources of virtual events can exist, such as menu entries.) An extension can define menu entries. This is done with a class or instance variable named menudefs; it should be a list of pairs, where each pair is a menu name (lowercase) and a list of menu entries. Each menu entry is either None (to insert a separator entry) or a pair of strings (menu_label, virtual_event). Here, menu_label is the label of the menu entry, and virtual_event is the virtual event to be generated when the entry is selected. An underscore in the menu label is removed; the character following the underscore is displayed underlined, to indicate the shortcut character (for Windows). At the moment, extensions cannot define whole new menus; they must define entries in existing menus. Some menus are not present on some windows; such entry definitions are then ignored, but key bindings are still applied. (This should probably be refined in the future.) Extensions are not required to define menu entries for all the events they implement. (They are also not required to create keybindings, but in that case there must be empty bindings in cofig-extensions.def) Here is a complete example: class ZoomHeight: menudefs = [ ('edit', [ None, # Separator ('_Zoom Height', '<>'), ]) ] def __init__(self, editwin): self.editwin = editwin def zoom_height_event(self, event): "...Do what you want here..." The final piece of the puzzle is the file "config-extensions.def", which is used to configure the loading of extensions and to establish key (or, more generally, event) bindings to the virtual events defined in the extensions. See the comments at the top of config-extensions.def for information. It's currently necessary to manually modify that file to change IDLE's extension loading or extension key bindings. For further information on binding refer to the Tkinter Resources web page at python.org and to the Tk Command "bind" man page.