mirror of https://github.com/python/cpython
Formatted some paragraphs
This commit is contained in:
parent
94e82ceeac
commit
f903898fff
|
@ -10,9 +10,9 @@ a Tkinter-based IDE for Python. It has the following features:
|
||||||
- 100% pure Python
|
- 100% pure Python
|
||||||
- works on Windows and Unix (probably works on Mac too)
|
- works on Windows and Unix (probably works on Mac too)
|
||||||
|
|
||||||
The main program is in the file "idle"; on Windows you can use
|
The main program is in the file "idle"; on Windows you can use idle.pyw
|
||||||
idle.pyw to avoid popping up a DOS console. Any arguments passed are
|
to avoid popping up a DOS console. Any arguments passed are interpreted
|
||||||
interpreted as files that will be opened for editing.
|
as files that will be opened for editing.
|
||||||
|
|
||||||
IDLE requires Python 1.5.2, so it is currently only usable with the
|
IDLE requires Python 1.5.2, so it is currently only usable with the
|
||||||
Python 1.5.2 beta distribution (luckily, IDLE is bundled with Python
|
Python 1.5.2 beta distribution (luckily, IDLE is bundled with Python
|
||||||
|
@ -119,8 +119,8 @@ Notes after trying to run Grail
|
||||||
-------------------------------
|
-------------------------------
|
||||||
|
|
||||||
- Grail does stuff to sys.path based on sys.argv[0]; you must set
|
- Grail does stuff to sys.path based on sys.argv[0]; you must set
|
||||||
sys.argv[0] to something decent first (it is normally set to the path
|
sys.argv[0] to something decent first (it is normally set to the path of
|
||||||
of the idle script).
|
the idle script).
|
||||||
|
|
||||||
- Grail must be exec'ed in __main__ because that's imported by some
|
- Grail must be exec'ed in __main__ because that's imported by some
|
||||||
other parts of Grail.
|
other parts of Grail.
|
||||||
|
|
|
@ -1,24 +1,24 @@
|
||||||
Writing an IDLE extension
|
Writing an IDLE extension
|
||||||
|
|
||||||
An IDLE extension can define new key bindings and menu entries for
|
An IDLE extension can define new key bindings and menu entries for IDLE
|
||||||
IDLE edit windows. There is a simple mechanism to load extensions
|
edit windows. There is a simple mechanism to load extensions when IDLE
|
||||||
when IDLE starts up and to attach them to each edit window.
|
starts up and to attach them to each edit window. (It is also possible
|
||||||
(It is also possible to make other changes to IDLE, but this must
|
to make other changes to IDLE, but this must be done by editing the IDLE
|
||||||
be done by editing the IDLE source code.)
|
source code.)
|
||||||
|
|
||||||
The list of extensions loaded at startup time is configured by editing
|
The list of extensions loaded at startup time is configured by editing
|
||||||
the file extend.py; see below for details.
|
the file extend.py; see below for details.
|
||||||
|
|
||||||
An IDLE extension is defined by a class. Methods of the class define
|
An IDLE extension is defined by a class. Methods of the class define
|
||||||
actions that are invoked by those bindings or menu entries.
|
actions that are invoked by those bindings or menu entries. Class (or
|
||||||
Class (or instance) variables define the bindings and menu additions;
|
instance) variables define the bindings and menu additions; these are
|
||||||
these are automatically applied by IDLE when the extension is linked
|
automatically applied by IDLE when the extension is linked to an edit
|
||||||
to an edit window.
|
window.
|
||||||
|
|
||||||
An IDLE extension class is instantiated with a single argument,
|
An IDLE extension class is instantiated with a single argument,
|
||||||
`editwin', an EditorWindow instance.
|
`editwin', an EditorWindow instance. The extension cannot assume much
|
||||||
The extension cannot assume much about this argument, but it
|
about this argument, but it is guarateed to have the following instance
|
||||||
is guarateed to have the following instance variables:
|
variables:
|
||||||
|
|
||||||
text a Text instance (a widget)
|
text a Text instance (a widget)
|
||||||
io an IOBinding instance (more about this later)
|
io an IOBinding instance (more about this later)
|
||||||
|
@ -33,8 +33,8 @@ variables that define mappings between virtual events and key sequences,
|
||||||
e.g. <Alt-F2>. When the extension is loaded, these key sequences will
|
e.g. <Alt-F2>. When the extension is loaded, these key sequences will
|
||||||
be bound to the corresponding virtual events, and the virtual events
|
be bound to the corresponding virtual events, and the virtual events
|
||||||
will be bound to the corresponding methods. (This indirection is done
|
will be bound to the corresponding methods. (This indirection is done
|
||||||
so that the key bindings can easily be changed, and so that other sources
|
so that the key bindings can easily be changed, and so that other
|
||||||
of virtual events can exist, such as menu entries.)
|
sources of virtual events can exist, such as menu entries.)
|
||||||
|
|
||||||
The following class or instance variables are used to define key
|
The following class or instance variables are used to define key
|
||||||
bindings for virtual events:
|
bindings for virtual events:
|
||||||
|
@ -49,18 +49,18 @@ keys are virtual events, and whose values are lists of key sequences.
|
||||||
|
|
||||||
An extension can define menu entries in a similar fashion. This is done
|
An extension can define menu entries in a similar fashion. This is done
|
||||||
with a class or instance variable named menudefs; it should be a list of
|
with a class or instance variable named menudefs; it should be a list of
|
||||||
pair, where each pair is a menu name (lowercase) and a list of menu entries.
|
pair, where each pair is a menu name (lowercase) and a list of menu
|
||||||
Each menu entry is either None (to insert a separator entry) or a pair of
|
entries. Each menu entry is either None (to insert a separator entry) or
|
||||||
strings (menu_label, virtual_event). Here, menu_label is the label of the
|
a pair of strings (menu_label, virtual_event). Here, menu_label is the
|
||||||
menu entry, and virtual_event is the virtual event to be generated when the
|
label of the menu entry, and virtual_event is the virtual event to be
|
||||||
entry is selected. An underscore in the menu label is removed; the
|
generated when the entry is selected. An underscore in the menu label
|
||||||
character following the underscore is displayed underlined, to indicate the
|
is removed; the character following the underscore is displayed
|
||||||
shortcut character (for Windows).
|
underlined, to indicate the shortcut character (for Windows).
|
||||||
|
|
||||||
At the moment, extensions cannot define whole new menus; they must define
|
At the moment, extensions cannot define whole new menus; they must
|
||||||
entries in existing menus. Some menus are not present on some windows;
|
define entries in existing menus. Some menus are not present on some
|
||||||
such entry definitions are then ignored, but the key bindings are still
|
windows; such entry definitions are then ignored, but the key bindings
|
||||||
applied. (This should probably be refined in the future.)
|
are still applied. (This should probably be refined in the future.)
|
||||||
|
|
||||||
Here is a complete example example:
|
Here is a complete example example:
|
||||||
|
|
||||||
|
@ -87,19 +87,20 @@ class ZoomHeight:
|
||||||
"...Do what you want here..."
|
"...Do what you want here..."
|
||||||
|
|
||||||
The final piece of the puzzle is the file "extend.py", which contains a
|
The final piece of the puzzle is the file "extend.py", which contains a
|
||||||
simple table used to configure the loading of extensions. This file currently
|
simple table used to configure the loading of extensions. This file
|
||||||
contains a single list variable named "standard", which is a list of extension
|
currently contains a single list variable named "standard", which is a
|
||||||
names that are to be loaded. (In the future, other configuration variables
|
list of extension names that are to be loaded. (In the future, other
|
||||||
may be added to this module.)
|
configuration variables may be added to this module.)
|
||||||
|
|
||||||
Extensions can define key bindings and menu entries that reference events they
|
Extensions can define key bindings and menu entries that reference
|
||||||
don't implement (including standard events); however this is not recommended
|
events they don't implement (including standard events); however this is
|
||||||
(and may be forbidden in the future).
|
not recommended (and may be forbidden in the future).
|
||||||
|
|
||||||
Extensions are not required to define menu entries for all events
|
Extensions are not required to define menu entries for all events they
|
||||||
they implement.
|
implement.
|
||||||
|
|
||||||
Note: in order to change key bindings, you must currently edit the file
|
Note: in order to change key bindings, you must currently edit the file
|
||||||
keydefs. It contains two dictionaries named and formatted like the
|
keydefs. It contains two dictionaries named and formatted like the
|
||||||
keydefs dictionaries described above, one for the Unix bindings and one for
|
keydefs dictionaries described above, one for the Unix bindings and one
|
||||||
the Windows bindings. In the future, a better mechanism will be provided.
|
for the Windows bindings. In the future, a better mechanism will be
|
||||||
|
provided.
|
||||||
|
|
|
@ -2,18 +2,6 @@
|
||||||
|
|
||||||
File menu:
|
File menu:
|
||||||
|
|
||||||
New window -- create a new editing window
|
|
||||||
Open file... -- open an existing file from a dialog box
|
|
||||||
Open module... -- asks for a module name, finds it on sys.path,
|
|
||||||
and opens it; if there's a selection, it's the module name
|
|
||||||
Class browser... -- open a class browser for the current module
|
|
||||||
---
|
|
||||||
Save -- save the current window to its associated file
|
|
||||||
Save As... -- save to a new file from a dialog box
|
|
||||||
Save Copy As... -- save to a new file without changing window name
|
|
||||||
---
|
|
||||||
Close -- close current window; asks to save if unsaved
|
|
||||||
Exit -- close all windows; asks to save unsaved windows
|
|
||||||
|
|
||||||
Edit menu:
|
Edit menu:
|
||||||
|
|
||||||
|
@ -90,6 +78,6 @@ Tips:
|
||||||
to, e.g.,
|
to, e.g.,
|
||||||
text['font'] = ("courier new", 10)
|
text['font'] = ("courier new", 10)
|
||||||
|
|
||||||
To change the Python syntax colors, edit the tagdefs table
|
To change the Python syntax colors, edit the tagdefs table in
|
||||||
in ColorDelegator.py; to change the shell colors, edit the
|
ColorDelegator.py; to change the shell colors, edit the tagdefs
|
||||||
tagdefs table in PyShell.py.
|
table in PyShell.py.
|
||||||
|
|
Loading…
Reference in New Issue