summaryrefslogtreecommitdiffstats
path: root/Lib/idlelib/paragraph.py
diff options
context:
space:
mode:
authorwohlganger <charles.wohlganger@gmail.com>2017-09-10 21:19:47 (GMT)
committerTerry Jan Reedy <tjreedy@udel.edu>2017-09-10 21:19:47 (GMT)
commit58fc71c447049d0efe4e11db1b55edc307f1bede (patch)
tree237891f31c741848809fa8dab7b6652849f37fa0 /Lib/idlelib/paragraph.py
parentd39dbf4cf18488beb190ab358b7ab38792cd5043 (diff)
downloadcpython-58fc71c447049d0efe4e11db1b55edc307f1bede.zip
cpython-58fc71c447049d0efe4e11db1b55edc307f1bede.tar.gz
cpython-58fc71c447049d0efe4e11db1b55edc307f1bede.tar.bz2
bpo-27099: IDLE - Convert built-in extensions to regular features (#2494)
About 10 IDLE features were implemented as supposedly optional extensions. Their different behavior could be confusing or worse for users and not good for maintenance. Hence the conversion. The main difference for users is that user configurable key bindings for builtin features are now handled uniformly. Now, editing a binding in a keyset only affects its value in the keyset. All bindings are defined together in the system-specific default keysets in config- extensions.def. All custom keysets are saved as a whole in config- extension.cfg. All take effect as soon as one clicks Apply or Ok. The affected events are '<<force-open-completions>>', '<<expand-word>>', '<<force-open-calltip>>', '<<flash-paren>>', '<<format-paragraph>>', '<<run-module>>', '<<check-module>>', and '<<zoom-height>>'. Any (global) customizations made before 3.6.3 will not affect their keyset- specific customization after 3.6.3. and vice versa. Inital patch by Charles Wohlganger, revised by Terry Jan Reedy.
Diffstat (limited to 'Lib/idlelib/paragraph.py')
-rw-r--r--Lib/idlelib/paragraph.py22
1 files changed, 10 insertions, 12 deletions
diff --git a/Lib/idlelib/paragraph.py b/Lib/idlelib/paragraph.py
index f11bdae..cf8dfdb 100644
--- a/Lib/idlelib/paragraph.py
+++ b/Lib/idlelib/paragraph.py
@@ -1,4 +1,4 @@
-"""Extension to format a paragraph or selection to a max width.
+"""Format a paragraph, comment block, or selection to a max width.
Does basic, standard text formatting, and also understands Python
comment blocks. Thus, for editing Python source code, this
@@ -21,15 +21,14 @@ from idlelib.config import idleConf
class FormatParagraph:
- menudefs = [
- ('format', [ # /s/edit/format dscherer@cmu.edu
- ('Format Paragraph', '<<format-paragraph>>'),
- ])
- ]
-
def __init__(self, editwin):
self.editwin = editwin
+ @classmethod
+ def reload(cls):
+ cls.max_width = idleConf.GetOption('extensions', 'FormatParagraph',
+ 'max-width', type='int', default=72)
+
def close(self):
self.editwin = None
@@ -45,11 +44,7 @@ class FormatParagraph:
The length limit parameter is for testing with a known value.
"""
- if limit is None:
- # The default length limit is that defined by pep8
- limit = idleConf.GetOption(
- 'extensions', 'FormatParagraph', 'max-width',
- type='int', default=72)
+ limit = self.max_width if limit is None else limit
text = self.editwin.text
first, last = self.editwin.get_selection_indices()
if first and last:
@@ -75,6 +70,9 @@ class FormatParagraph:
text.see("insert")
return "break"
+
+FormatParagraph.reload()
+
def find_paragraph(text, mark):
"""Returns the start/stop indices enclosing the paragraph that mark is in.