summaryrefslogtreecommitdiff
path: root/Lib/idlelib
diff options
context:
space:
mode:
authorSteven M. Gava <elguavas@python.net>2002-01-19 10:41:51 +0000
committerSteven M. Gava <elguavas@python.net>2002-01-19 10:41:51 +0000
commit72c3bf076f785aaf54d63a7e8cae29bc8282920e (patch)
tree25a7d261d1cd962735f40dc038fd51ce5b1edf99 /Lib/idlelib
parentc628a06c709dcf0d96ad55a475a5a1318d06dba4 (diff)
downloadcpython-git-72c3bf076f785aaf54d63a7e8cae29bc8282920e.tar.gz
changeover to new keybinding configuration implementation
Diffstat (limited to 'Lib/idlelib')
-rw-r--r--Lib/idlelib/AutoExpand.py8
-rw-r--r--Lib/idlelib/AutoIndent.py34
-rw-r--r--Lib/idlelib/Bindings.py2
-rw-r--r--Lib/idlelib/CallTips.py13
-rw-r--r--Lib/idlelib/EditorWindow.py13
-rw-r--r--Lib/idlelib/ExecBinding.py5
-rw-r--r--Lib/idlelib/FormatParagraph.py8
-rw-r--r--Lib/idlelib/ParenMatch.py12
-rw-r--r--Lib/idlelib/ScriptBinding.py6
-rw-r--r--Lib/idlelib/ZoomHeight.py9
-rw-r--r--Lib/idlelib/config-extensions.def49
11 files changed, 50 insertions, 109 deletions
diff --git a/Lib/idlelib/AutoExpand.py b/Lib/idlelib/AutoExpand.py
index 09f34b38d9..c50e52a14f 100644
--- a/Lib/idlelib/AutoExpand.py
+++ b/Lib/idlelib/AutoExpand.py
@@ -7,14 +7,6 @@ import re
class AutoExpand:
- keydefs = {
- '<<expand-word>>': ['<Alt-slash>'],
- }
-
- unix_keydefs = {
- '<<expand-word>>': ['<Meta-slash>', '<Alt-slash>'],
- }
-
menudefs = [
('edit', [
('E_xpand word', '<<expand-word>>'),
diff --git a/Lib/idlelib/AutoIndent.py b/Lib/idlelib/AutoIndent.py
index 6d38481a42..eff398b527 100644
--- a/Lib/idlelib/AutoIndent.py
+++ b/Lib/idlelib/AutoIndent.py
@@ -41,7 +41,6 @@ class AutoIndent:
menudefs = [
('format', [ # /s/edit/format dscherer@cmu.edu
- None,
('_Indent region', '<<indent-region>>'),
('_Dedent region', '<<dedent-region>>'),
('Comment _out region', '<<comment-region>>'),
@@ -53,39 +52,6 @@ class AutoIndent:
]),
]
- keydefs = {
- '<<smart-backspace>>': ['<Key-BackSpace>'],
- '<<newline-and-indent>>': ['<Key-Return>', '<KP_Enter>'],
- '<<smart-indent>>': ['<Key-Tab>']
- }
-
- windows_keydefs = {
- '<<indent-region>>': ['<Control-bracketright>'],
- '<<dedent-region>>': ['<Shift-Tab>', # dscherer@cmu.edu
- '<Control-bracketleft>'],
- '<<comment-region>>': ['<Alt-Key-3>'],
- '<<uncomment-region>>': ['<Alt-Key-4>'],
- '<<tabify-region>>': ['<Alt-Key-5>'],
- '<<untabify-region>>': ['<Alt-Key-6>'],
- '<<toggle-tabs>>': ['<Alt-Key-t>'],
- '<<change-indentwidth>>': ['<Alt-Key-u>'],
- }
-
- unix_keydefs = {
- '<<indent-region>>': ['<Alt-bracketright>',
- '<Meta-bracketright>',
- '<Control-bracketright>'],
- '<<dedent-region>>': ['<Alt-bracketleft>',
- '<Meta-bracketleft>',
- '<Control-bracketleft>'],
- '<<comment-region>>': ['<Alt-Key-3>', '<Meta-Key-3>'],
- '<<uncomment-region>>': ['<Alt-Key-4>', '<Meta-Key-4>'],
- '<<tabify-region>>': ['<Alt-Key-5>', '<Meta-Key-5>'],
- '<<untabify-region>>': ['<Alt-Key-6>', '<Meta-Key-6>'],
- '<<toggle-tabs>>': ['<Alt-Key-t>'],
- '<<change-indentwidth>>': ['<Alt-Key-u>'],
- }
-
# usetabs true -> literal tab characters are used by indent and
# dedent cmds, possibly mixed with spaces if
# indentwidth is not a multiple of tabwidth
diff --git a/Lib/idlelib/Bindings.py b/Lib/idlelib/Bindings.py
index 862ceb69f9..2269a90223 100644
--- a/Lib/idlelib/Bindings.py
+++ b/Lib/idlelib/Bindings.py
@@ -73,6 +73,6 @@ menudefs = [
]),
]
-default_keydefs = idleConf.GetKeys(keySetName=idleConf.CurrentKeys())
+default_keydefs = idleConf.GetCurrentKeySet()
del sys
diff --git a/Lib/idlelib/CallTips.py b/Lib/idlelib/CallTips.py
index 7c5f41c73d..b1f100f222 100644
--- a/Lib/idlelib/CallTips.py
+++ b/Lib/idlelib/CallTips.py
@@ -10,19 +10,6 @@ class CallTips:
menudefs = [
]
- keydefs = {
- '<<paren-open>>': ['<Key-parenleft>'],
- '<<paren-close>>': ['<Key-parenright>'],
- '<<check-calltip-cancel>>': ['<KeyRelease>'],
- '<<calltip-cancel>>': ['<ButtonPress>', '<Key-Escape>'],
- }
-
- windows_keydefs = {
- }
-
- unix_keydefs = {
- }
-
def __init__(self, editwin):
self.editwin = editwin
self.text = editwin.text
diff --git a/Lib/idlelib/EditorWindow.py b/Lib/idlelib/EditorWindow.py
index 237a462c5c..bba1702e4d 100644
--- a/Lib/idlelib/EditorWindow.py
+++ b/Lib/idlelib/EditorWindow.py
@@ -590,17 +590,7 @@ class EditorWindow:
cls = getattr(mod, name)
ins = cls(self)
self.extensions[name] = ins
- kdnames = ["keydefs"]
- if sys.platform == 'win32':
- kdnames.append("windows_keydefs")
- elif sys.platform == 'mac':
- kdnames.append("mac_keydefs")
- else:
- kdnames.append("unix_keydefs")
- keydefs = {}
- for kdname in kdnames:
- if hasattr(ins, kdname):
- keydefs.update(getattr(ins, kdname))
+ keydefs=idleConf.GetExtensionBindings(name)
if keydefs:
self.apply_bindings(keydefs)
for vevent in keydefs.keys():
@@ -612,6 +602,7 @@ class EditorWindow:
methodname = methodname + "_event"
if hasattr(ins, methodname):
self.text.bind(vevent, getattr(ins, methodname))
+
if hasattr(ins, "menudefs"):
self.fill_menus(ins.menudefs, keydefs)
return ins
diff --git a/Lib/idlelib/ExecBinding.py b/Lib/idlelib/ExecBinding.py
index 67b08220d9..e148769c98 100644
--- a/Lib/idlelib/ExecBinding.py
+++ b/Lib/idlelib/ExecBinding.py
@@ -45,11 +45,6 @@ def loader_connect(client, addr):
protocol.publish('ExecBinding', loader_connect)
class ExecBinding:
- keydefs = {
- '<<run-complete-script>>': ['<F5>'],
- '<<stop-execution>>': ['<Cancel>'], #'<Control-c>'
- }
-
menudefs = [
('run', [None,
('Run program', '<<run-complete-script>>'),
diff --git a/Lib/idlelib/FormatParagraph.py b/Lib/idlelib/FormatParagraph.py
index 498e2efbad..cf5e36589b 100644
--- a/Lib/idlelib/FormatParagraph.py
+++ b/Lib/idlelib/FormatParagraph.py
@@ -25,14 +25,6 @@ class FormatParagraph:
])
]
- keydefs = {
- '<<format-paragraph>>': ['<Alt-q>'],
- }
-
- unix_keydefs = {
- '<<format-paragraph>>': ['<Meta-q>'],
- }
-
def __init__(self, editwin):
self.editwin = editwin
diff --git a/Lib/idlelib/ParenMatch.py b/Lib/idlelib/ParenMatch.py
index 17d76c2659..78514226a7 100644
--- a/Lib/idlelib/ParenMatch.py
+++ b/Lib/idlelib/ParenMatch.py
@@ -43,19 +43,7 @@ class ParenMatch:
to the right of a right paren. I don't know how to do that in Tk,
so I haven't bothered.
"""
-
menudefs = []
-
- keydefs = {
- '<<flash-open-paren>>' : ('<KeyRelease-parenright>',
- '<KeyRelease-bracketright>',
- '<KeyRelease-braceright>'),
- '<<check-restore>>' : ('<KeyPress>',),
- }
-
- windows_keydefs = {}
- unix_keydefs = {}
-
iconf = idleconf.getsection('ParenMatch')
STYLE = iconf.getdef('style', 'default')
FLASH_DELAY = iconf.getint('flash-delay')
diff --git a/Lib/idlelib/ScriptBinding.py b/Lib/idlelib/ScriptBinding.py
index b54dfc4c79..2b3bf99267 100644
--- a/Lib/idlelib/ScriptBinding.py
+++ b/Lib/idlelib/ScriptBinding.py
@@ -35,12 +35,6 @@ by Untabify Region (both in the Edit menu)."""
class ScriptBinding:
- keydefs = {
- '<<check-module>>': ['<Alt-F5>', '<Meta-F5>'],
- '<<import-module>>': ['<F5>'],
- '<<run-script>>': ['<Control-F5>'],
- }
-
menudefs = [
('edit', [None,
('Check module', '<<check-module>>'),
diff --git a/Lib/idlelib/ZoomHeight.py b/Lib/idlelib/ZoomHeight.py
index ecc306a733..f2b99e96b2 100644
--- a/Lib/idlelib/ZoomHeight.py
+++ b/Lib/idlelib/ZoomHeight.py
@@ -10,14 +10,7 @@ class ZoomHeight:
('_Zoom Height', '<<zoom-height>>'),
])
]
-
- windows_keydefs = {
- '<<zoom-height>>': ['<Alt-F2>'],
- }
- unix_keydefs = {
- '<<zoom-height>>': ['<Control-x><Control-z>'],
- }
-
+
def __init__(self, editwin):
self.editwin = editwin
diff --git a/Lib/idlelib/config-extensions.def b/Lib/idlelib/config-extensions.def
index b4e9b02509..c0439e6d45 100644
--- a/Lib/idlelib/config-extensions.def
+++ b/Lib/idlelib/config-extensions.def
@@ -1,26 +1,66 @@
# IDLE reads several config files to determine user preferences. This
# file is the default config file for idle extensions settings.
+#
+# Each extension must have at least one section, named after the extension
+# module. This section must contain an 'enable' item (=1 to enable the
+# extension, =0 to disable it) and also contains any other general configuration
+# items for the extension. Each extension may also define up to two optional
+# sections named ExtensionName_bindings and ExtensionName_cfgBindings. If
+# present, ExtensionName_bindings defines virtual event bindings for the
+# extension that are not sensibly re-configurable. If present,
+# ExtensionName_cfgBindings defines virtual event bindings for the extension
+# that may be sensibly re-configured.
[FormatParagraph]
enable=1
+[FormatParagraph_cfgBindings]
+format-paragraph=<Alt-Key-q>
[AutoIndent]
enable=1
+[AutoIndent_cfgBindings]
+smart-backspace=<Key-BackSpace>
+newline-and-indent=<Key-Return> <Key-KP_Enter>
+smart-indent=<Key-Tab>
+indent-region=<Control-Key-bracketright>
+dedent-region=<Control-Key-bracketleft>
+comment-region=<Alt-Key-3>
+uncomment-region=<Alt-Key-4>
+tabify-region=<Alt-Key-5>
+untabify-region=<Alt-Key-6>
+toggle-tabs=<Alt-Key-t>
+change-indentwidth=<Alt-Key-u>
[AutoExpand]
enable=1
+[AutoExpand_cfgBindings]
+expand-word=<Alt-Key-slash>
[ZoomHeight]
enable=1
-
-#[ScriptBinding] # disabled in favor of ExecBinding
-#enable=0
+[ZoomHeight_cfgBindings]
+zoom-height=<Alt-Key-F2>
[ExecBinding]
enable=1
+[ExecBinding_cfgBindings]
+run-complete-script=<Key-F5>
+stop-execution=<Key-Cancel>
+
+#[ScriptBinding] #currently ExecBinding has replaced ScriptBinding
+#enable=0
+#[ScriptBinding_cfgBindings]
+#run-script=<Key-F5>
+#check-module=<Alt-Key-F5> <Meta-Key-F5>
+#import-module=<Control-Key-F5>
[CallTips]
enable=1
+[CallTips_bindings]
+paren-open=<Key-parenleft>
+paren-close=<Key-parenright>
+check-calltip-cancel=<KeyRelease>
+calltip-cancel=<ButtonPress> <Key-Escape>
[ParenMatch]
enable=0
@@ -29,3 +69,6 @@ flash-delay= 500
bell= 1
hilite-foreground= black
hilite-background= #43cd80
+[ParenMatch_bindings]
+flash-open-paren=<KeyRelease-parenright> <KeyRelease-bracketright> <KeyRelease-braceright>
+check-restore=<KeyPress>