Author terry.reedy
Recipients csabella, louielu, serhiy.storchaka, terry.reedy, wohlganger
Date 2017-09-11.02:14:44
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1505096086.19.0.98207147024.issue27099@psf.upfronthosting.co.za>
In-reply-to
Content
Here is a high-level overview of the steps involved in the patch, and a few TODOs for new issues.

Move menu specifications from feature files to mainmenu.py.  Remove enable items from config-extensions.def sections.  Most features were enabled for both shell and editor. FormatParagraph appears on the Format menu which is only present for editor windows.  Ditto for Check Module and Run Module and the Run menu. Disable CodeText in Outwin.  TODO: Also grey-out the menu item.

Handle user-configurable pseudoevent -- key sequence definitions the same for these features as all others.  This fixes oddities that could be considered bugs.  Delete them from config-extensions.def sections.  Add them to the default keysets in config-keys.def, with adjustments for the Mac keysets.  Let user changes be stored in custom keysets in config-keys.cfg instead of diverting them to config-extensions.cfg.  Do not warn when they are missing from older custom keysets (when they get default values).  TODO: Augment config.IdleConf to add new pairs to existing custom keysets, at least when they are used.

I have tested that 2.7 runs with an augmented custom keyset, ignoring the new keys, and does not delete the new definitions when an older one is changed and the keyset changed.  TODO: Fix regressions in keyset handling that predate this patch and were not caught by existing tests.

Handle fixed pseudoevent -- key sequence pairs more like existing non-extension pairs.  Delete them from config-extensions.def.  For the present, put event_add() calls in EditorWindow.__init__.  TODO: If I am correct that these calls are needed just once and not for each instance, move them.  (Not an immediate priority.)

Remove sections that are now empty, leaving 4 with non-key options.  Add widgets to the General Page of ConfigDialog for customizing these options.  Make the option values class attributes in the respective classes, initialize by a class method that is called upon import and when config dialog changes are accepted.  (This means that changes now take effect immediately rather than when IDLE is started.)  For the present, for back-compatibility, leave these sections in config-extensions.def rather than moving them to config-main.def (and moving user values between the corresponding .cfg files.)  Add a note in config-extensions.def explaining that these sections do not represent extensions but why there are there.  Modify IdleConf to not treat these as extension sections.  TODO: re-evaluate whether some of the options should really be kept as options.

Add a dummy extension Zzdummy to serve as an example and for use in tests.  TODO: Modify test so that Zzdummy can be disabled by default.

Anything else that I forgot or is too trivial to mention ;-).
History
Date User Action Args
2017-09-11 02:14:46terry.reedysetrecipients: + terry.reedy, serhiy.storchaka, louielu, csabella, wohlganger
2017-09-11 02:14:46terry.reedysetmessageid: <1505096086.19.0.98207147024.issue27099@psf.upfronthosting.co.za>
2017-09-11 02:14:46terry.reedylinkissue27099 messages
2017-09-11 02:14:44terry.reedycreate