diff options
author | Steven M. Gava <elguavas@python.net> | 2001-12-03 00:37:28 (GMT) |
---|---|---|
committer | Steven M. Gava <elguavas@python.net> | 2001-12-03 00:37:28 (GMT) |
commit | 17d015409765d29e199d4828cb136acd3196efe6 (patch) | |
tree | 5894be28faad0c3178e07918a19618fec242419f | |
parent | 20ffa0e5bc274ac873a4ff318deb1faaefee0703 (diff) | |
download | cpython-17d015409765d29e199d4828cb136acd3196efe6.zip cpython-17d015409765d29e199d4828cb136acd3196efe6.tar.gz cpython-17d015409765d29e199d4828cb136acd3196efe6.tar.bz2 |
further work on new configuration system, specifically,
on keybinding configuration
-rw-r--r-- | Lib/idlelib/Bindings.py | 13 | ||||
-rw-r--r-- | Lib/idlelib/config-keys.def | 114 | ||||
-rw-r--r-- | Lib/idlelib/configHandler.py | 49 |
3 files changed, 110 insertions, 66 deletions
diff --git a/Lib/idlelib/Bindings.py b/Lib/idlelib/Bindings.py index 7baa913..1a8374b 100644 --- a/Lib/idlelib/Bindings.py +++ b/Lib/idlelib/Bindings.py @@ -14,7 +14,8 @@ import sys import string -from keydefs import * +#from keydefs import * +from configHandler import idleConf menudefs = [ # underscore prefixes character to underscore @@ -65,9 +66,11 @@ menudefs = [ ]), ] -if sys.platform == 'win32': - default_keydefs = windows_keydefs -else: - default_keydefs = unix_keydefs +#if sys.platform == 'win32': +# default_keydefs = windows_keydefs +#else: +# default_keydefs = unix_keydefs + +default_keydefs = idleConf.GetKeys(keySetName=None) del sys diff --git a/Lib/idlelib/config-keys.def b/Lib/idlelib/config-keys.def index cae0301..feec31c 100644 --- a/Lib/idlelib/config-keys.def +++ b/Lib/idlelib/config-keys.def @@ -1,58 +1,64 @@ # IDLE reads several config files to determine user preferences. This # file is the default config file for idle key binding settings. +# Where multiple keys are specified for an action: if they are separated +# by a space (eg. action=<key1> <key2>) then the keys are altenatives, if +# there is no space (eg. action=<key1>key2>) then the keys comprise a +# single 'emacs style' multi-keystoke binding. -[IDLE Classic - windows] -Copy= '<Control-c> <Control-C>' -Cut= '<Control-x> <Control-X>' -Paste= '<Control-v> <Control-V>' -beginning-of-line= '<Control-a> <Home>' -center-insert= '<Control-l>' -close-all-windows= '<Control-q>' -close-window= '<Alt-F4>' -dump-undo-state= '<Control-backslash>' -end-of-file= '<Control-d>' -python-docs= '<F1>' -history-next= '<Alt-n>' -history-previous= '<Alt-p>' -interrupt-execution= '<Control-c>' -open-class-browser= '<Alt-c>' -open-module= '<Alt-m>' -open-new-window= '<Control-n>' -open-window-from-file= '<Control-o>' -plain-newline-and-indent= '<Control-j>' -redo= '<Control-y>' -remove-selection= '<Escape>' -save-copy-of-window-as-file= '<Alt-Shift-s>' -save-window-as-file= '<Alt-s>' -save-window= '<Control-s>' -select-all= '<Alt-a>' -toggle-auto-coloring= '<Control-slash>' -undo= '<Control-z>' +[IDLE CUA-ish] +Copy=<Control-c> <Control-C> +Cut=<Control-x> <Control-X> +Paste=<Control-v> <Control-V> +beginning-of-line=<Control-a> <Home> +center-insert=<Control-l> +close-all-windows=<Control-q> +close-window=<Alt-F4> +dump-undo-state=<Control-backslash> +end-of-file=<Control-d> +python-docs=<F1> +python-context-help=<Shift-F1> +history-next=<Alt-n> +history-previous=<Alt-p> +interrupt-execution=<Control-c> +open-class-browser=<Alt-c> +open-module=<Alt-m> +open-new-window=<Control-n> +open-window-from-file=<Control-o> +plain-newline-and-indent=<Control-j> +redo=<Control-Shift-z> +remove-selection=<Escape> +save-copy-of-window-as-file=<Alt-Shift-s> +save-window-as-file=<Alt-s> +save-window=<Control-s> +select-all=<Alt-a> +toggle-auto-coloring=<Control-slash> +undo=<Control-z> -[IDLE Classic - posix] -Copy= '<Alt-w> <Meta-w>' -Cut= '<Control-w>' -Paste= '<Control-y>' -beginning-of-line= '<Control-a> <Home>' -center-insert= '<Control-l>' -close-all-windows= '<Control-x><Control-c>' -close-window= '<Control-x><Control-0> <Control-x><Key-0>' -do-nothing= '<Control-x>' -dump-undo-state= '<Control-backslash>' -end-of-file= '<Control-d>' -help= '<F1>' -history-next= '<Alt-n> <Meta-n>' -history-previous= '<Alt-p> <Meta-p>' -interrupt-execution= '<Control-c>' -open-class-browser= '<Control-x><Control-b>' -open-module= '<Control-x><Control-m>' -open-new-window= '<Control-x><Control-n>' -open-window-from-file= '<Control-x><Control-f>' -plain-newline-and-indent= '<Control-j>' -redo= '<Alt-z> <Meta-z>' -save-copy-of-window-as-file= '<Control-x><w>' -save-window-as-file= '<Control-x><Control-w>' -save-window= '<Control-x><Control-s>' -select-all= '<Alt-a> <Meta-a>' -toggle-auto-coloring= '<Control-slash>' -undo= '<Control-z>' +[IDLE Emacs-ish] +Copy=<Alt-w> <Meta-w> +Cut=<Control-w> +Paste=<Control-y> +beginning-of-line=<Control-a> <Home> +center-insert=<Control-l> +close-all-windows=<Control-x><Control-c> +close-window=<Control-x><Control-0> <Control-x><Key-0> +do-nothing=<Control-x> +dump-undo-state=<Control-backslash> +end-of-file=<Control-d> +history-next=<Alt-n> <Meta-n> +history-previous=<Alt-p> <Meta-p> +interrupt-execution=<Control-c> +open-class-browser=<Control-x><Control-b> +open-module=<Control-x><Control-m> +open-new-window=<Control-x><Control-n> +open-window-from-file=<Control-x><Control-f> +plain-newline-and-indent=<Control-j> +python-docs=<Control-h> +python-context-help=<Control-Shift-h> +redo=<Alt-z> <Meta-z> +save-copy-of-window-as-file=<Control-x><w> +save-window-as-file=<Control-x><Control-w> +save-window=<Control-x><Control-s> +select-all=<Alt-a> <Meta-a> +toggle-auto-coloring=<Control-slash> +undo=<Control-z> diff --git a/Lib/idlelib/configHandler.py b/Lib/idlelib/configHandler.py index 4539627..f1fbd8d 100644 --- a/Lib/idlelib/configHandler.py +++ b/Lib/idlelib/configHandler.py @@ -174,13 +174,48 @@ class IdleConf: """ pass - def GetKeys(self, name=None): - """ - Gets the requested keybindings or returns a final fallback keybinding - set in case one can't be obtained from either the user or default - config files. - """ - pass + def GetKeys(self, keySetName=None): + """ + returns the requested keybindings, with fallbacks if required. + """ + #default keybindings. + #keybindings loaded from the config file(s) are loaded _over_ these + #defaults, so if there is a problem getting any binding there will + #be an 'ultimate last resort fallback' to the CUA-ish bindings + #defined here. + keyBindings={ + '<<Copy>>': ['<Control-c>', '<Control-C>'], + '<<Cut>>': ['<Control-x>', '<Control-X>'], + '<<Paste>>': ['<Control-v>', '<Control-V>'], + '<<beginning-of-line>>': ['<Control-a>', '<Home>'], + '<<center-insert>>': ['<Control-l>'], + '<<close-all-windows>>': ['<Control-q>'], + '<<close-window>>': ['<Alt-F4>'], + '<<dump-undo-state>>': ['<Control-backslash>'], + '<<end-of-file>>': ['<Control-d>'], + '<<python-docs>>': ['<F1>'], + '<<python-context-help>>': ['<Shift-F1>'], + '<<history-next>>': ['<Alt-n>'], + '<<history-previous>>': ['<Alt-p>'], + '<<interrupt-execution>>': ['<Control-c>'], + '<<open-class-browser>>': ['<Alt-c>'], + '<<open-module>>': ['<Alt-m>'], + '<<open-new-window>>': ['<Control-n>'], + '<<open-window-from-file>>': ['<Control-o>'], + '<<plain-newline-and-indent>>': ['<Control-j>'], + '<<redo>>': ['<Control-y>'], + '<<remove-selection>>': ['<Escape>'], + '<<save-copy-of-window-as-file>>': ['<Alt-Shift-s>'], + '<<save-window-as-file>>': ['<Alt-s>'], + '<<save-window>>': ['<Control-s>'], + '<<select-all>>': ['<Alt-a>'], + '<<toggle-auto-coloring>>': ['<Control-slash>'], + '<<undo>>': ['<Control-z>']} + if keySetName: + pass + + return keyBindings + def LoadCfgFiles(self): """ |