You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
IDLE parenmatch - left and right highlighting, independent flash-delay #74908
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
assignee='https://github.com/terryjreedy'closed_at=<Date2017-06-28.04:54:22.634>created_at=<Date2017-06-21.13:23:10.624>labels= ['expert-IDLE', 'type-feature', '3.7']
title='IDLE parenmatch - left and right highlighting, independent flash-delay'updated_at=<Date2017-08-04.02:46:50.031>user='https://github.com/wohlganger'
Sorry, I'm new to this, and I've done it out of order. Commit bpo-2306 covers the following:
In IDLE, parenmatch extension:
Add highlighting left and right parens to styles.
Make flash-delay setting independent of parens highlighting style. Currently, the flash-delay option only affects one of the two styles, but there is no good reason for it not to affect both.
On bugs.python.org tracker a number prefixed by '#' refers an issue number on this tracker. On the other hand, PR2306 or PR 2306 should do what you meant.
Hi Charles. Welcome to CPython development and its issue tracker. Everyone starts 'new at this'.
Can you please describe, in detail, a simple, minimal example of how to invoke the existing behavior that you want to change, then what change you want to see. Behavior change patches should be accompanied by a test that fails before the patch and passes after it is applies. Such a description is the basis for a new test.
The test for idlelib.parenmatch is in idlelib.idle_test.test_parenmatch. Can you see if you can make sense of the existing tests and if you have any idea how to add a new one?
wohlganger commented on Jun 21, 2017
wohlgangermannequin
MannequinAuthor
More actions
There are two changes:
First - The flash-delay option is for how until the parens that are highlighted will stop highlighting. The flash-delay option for the ParenMatch only affects the 'default' style. Similarly the 'expressions' style does not use the flash-delay option and will not stop highlighting until input is given to IDLE. Desired behavior is for the flash-delay option to work for both styles, and setting flash-delay to 0 will cause the input required behavior that is currently only used by the 'expressions' style.
I couldn't find anything in the test suite for testing the delay behavior specific to styles, only that the timer works in general, so I'm not sure how to test it other than just observing it. The test did not seem to cover if 'default' style worked properly using the 'show surrounding parens' command. I have added that to all style tests.
Second - There is no style for highlighting the opening and closing parens. The new behavior is to write 'parens' (without ticks) for the style option, apply/ok the options, restart IDLE, and make a statement with parens, and it highlights both parens.
The uploaded parenmatch test file covers the parens style, ensuring it works correctly.
I have compared current behavior with you explanation and I agree on the enhancement. 'parens' seems more useful than 'default'.
'default' is a misnomer for current IDLE since the current default in config-extensions.def is 'expression', not 'default', I am inclined to add synonym such as 'opener'. Do you have another suggestion?
On the todo list, the first item is covered by the newish Extensions tab, and should be removed. What the tab lacks is input validation. Immediately, pressing [Help] when on the Extensions tab should display text than included the parenmatch styles and the meaning of delay 0. I will add this.
The second item mentions other Emacs stuff. Just curious, do you know if 'parens' is part of this? The 'below' just mentions the 'highlight when cursor returns issue'.
wohlganger commented on Jun 27, 2017
wohlgangermannequin
MannequinAuthor
More actions
'opener' sounds fine to me. I agree it makes much more sense than 'default'.
I don't know much about Emacs, and couldn't find what their parens highlighting styles were. I can't think of anything sensible that isn't in this extension with this enhancement; apart from highlighting whenever the cursor is beside a parens.
New changeset fae2c35 by terryjreedy (wohlganger) in branch 'master': bpo-30723: IDLE -- Enhance parenmatch; add style, flash, and help (bpo-2306) fae2c35
New changeset af68382 by terryjreedy in branch '3.6':
[3.6] bpo-30723: IDLE -- Enhance parenmatch; add style, flash, and help (GH-2306) (bpo-2460) af68382
Activity
wohlganger commentedon Jun 21, 2017
Sorry, I'm new to this, and I've done it out of order. Commit bpo-2306 covers the following:
In IDLE, parenmatch extension:
Add highlighting left and right parens to styles.
Make flash-delay setting independent of parens highlighting style. Currently, the flash-delay option only affects one of the two styles, but there is no good reason for it not to affect both.
terryjreedy commentedon Jun 21, 2017
On bugs.python.org tracker a number prefixed by '#' refers an issue number on this tracker. On the other hand, PR2306 or PR 2306 should do what you meant.
https://docs.python.org/devguide/triaging.html#generating-special-links-in-a-comment
In a pull request, bpo-30723 should refer back to this issue, at least in a title.
terryjreedy commentedon Jun 21, 2017
Hi Charles. Welcome to CPython development and its issue tracker. Everyone starts 'new at this'.
Can you please describe, in detail, a simple, minimal example of how to invoke the existing behavior that you want to change, then what change you want to see. Behavior change patches should be accompanied by a test that fails before the patch and passes after it is applies. Such a description is the basis for a new test.
The test for idlelib.parenmatch is in idlelib.idle_test.test_parenmatch. Can you see if you can make sense of the existing tests and if you have any idea how to add a new one?
wohlganger commentedon Jun 21, 2017
There are two changes:
First - The flash-delay option is for how until the parens that are highlighted will stop highlighting. The flash-delay option for the ParenMatch only affects the 'default' style. Similarly the 'expressions' style does not use the flash-delay option and will not stop highlighting until input is given to IDLE. Desired behavior is for the flash-delay option to work for both styles, and setting flash-delay to 0 will cause the input required behavior that is currently only used by the 'expressions' style.
I couldn't find anything in the test suite for testing the delay behavior specific to styles, only that the timer works in general, so I'm not sure how to test it other than just observing it. The test did not seem to cover if 'default' style worked properly using the 'show surrounding parens' command. I have added that to all style tests.
Second - There is no style for highlighting the opening and closing parens. The new behavior is to write 'parens' (without ticks) for the style option, apply/ok the options, restart IDLE, and make a statement with parens, and it highlights both parens.
The uploaded parenmatch test file covers the parens style, ensuring it works correctly.
terryjreedy commentedon Jun 22, 2017
Thanks. That gives me something to work with.
terryjreedy commentedon Jun 27, 2017
The unlinked PR is a closed duplicate. PR 2306 is the one being updated and reviewed.
terryjreedy commentedon Jun 27, 2017
I have compared current behavior with you explanation and I agree on the enhancement. 'parens' seems more useful than 'default'.
'default' is a misnomer for current IDLE since the current default in config-extensions.def is 'expression', not 'default', I am inclined to add synonym such as 'opener'. Do you have another suggestion?
On the todo list, the first item is covered by the newish Extensions tab, and should be removed. What the tab lacks is input validation. Immediately, pressing [Help] when on the Extensions tab should display text than included the parenmatch styles and the meaning of delay 0. I will add this.
The second item mentions other Emacs stuff. Just curious, do you know if 'parens' is part of this? The 'below' just mentions the 'highlight when cursor returns issue'.
wohlganger commentedon Jun 27, 2017
'opener' sounds fine to me. I agree it makes much more sense than 'default'.
I don't know much about Emacs, and couldn't find what their parens highlighting styles were. I can't think of anything sensible that isn't in this extension with this enhancement; apart from highlighting whenever the cursor is beside a parens.
terryjreedy commentedon Jun 27, 2017
I am working on revising the patch now, so don't push anything until I do. I will revise the docstring and add 'opener' and help and news file.
terryjreedy commentedon Jun 28, 2017
New changeset fae2c35 by terryjreedy (wohlganger) in branch 'master':
bpo-30723: IDLE -- Enhance parenmatch; add style, flash, and help (bpo-2306)
fae2c35
terryjreedy commentedon Jun 28, 2017
New changeset af68382 by terryjreedy in branch '3.6':
[3.6] bpo-30723: IDLE -- Enhance parenmatch; add style, flash, and help (GH-2306) (bpo-2460)
af68382
terryjreedy commentedon Jun 28, 2017
Charles, thank you for the focused suggestion and patch. If you are interested, bpo-30422 reviews IDLE goals and current issues.