Skip to content

IDLE parenmatch - left and right highlighting, independent flash-delay #74908

Closed

Description

@wohlganger
BPO 30723
Nosy @terryjreedy, @wohlganger
PRs
  • bpo-30723: Enhancement to IDLE parenmatch extension #2306
  • [3.6] bpo-30723: IDLE -- Enhance parenmatch; add style, flash, and he… #2460
  • bpo-19903: IDLE: Calltips changed to use inspect.signature #2822
  • Files
  • test_parenmatch.py: update parenmatch test
  • 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 = <Date 2017-06-28.04:54:22.634>
    created_at = <Date 2017-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 = <Date 2017-08-04.02:46:50.031>
    user = 'https://github.com/wohlganger'

    bugs.python.org fields:

    activity = <Date 2017-08-04.02:46:50.031>
    actor = 'louielu'
    assignee = 'terry.reedy'
    closed = True
    closed_date = <Date 2017-06-28.04:54:22.634>
    closer = 'terry.reedy'
    components = ['IDLE']
    creation = <Date 2017-06-21.13:23:10.624>
    creator = 'wohlganger'
    dependencies = []
    files = ['46967']
    hgrepos = []
    issue_num = 30723
    keywords = []
    message_count = 12.0
    messages = ['296554', '296578', '296581', '296605', '296612', '297058', '297061', '297063', '297070', '297141', '297143', '297151']
    nosy_count = 2.0
    nosy_names = ['terry.reedy', 'wohlganger']
    pr_nums = ['2306', '2460', '2822']
    priority = 'normal'
    resolution = 'fixed'
    stage = 'resolved'
    status = 'closed'
    superseder = None
    type = 'enhancement'
    url = 'https://bugs.python.org/issue30723'
    versions = ['Python 3.6', 'Python 3.7']

    Activity

    1. wohlganger commented on Jun 21, 2017

      wohlgangermannequin
      MannequinAuthor

      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.

    2. terryjreedy commented on Jun 21, 2017

      @terryjreedy
      Member

      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.

    3. terryjreedy commented on Jun 21, 2017

      @terryjreedy
      Member

      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?

    4. wohlganger commented on Jun 21, 2017

      wohlgangermannequin
      MannequinAuthor

      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.

    5. terryjreedy commented on Jun 22, 2017

      @terryjreedy
      Member

      Thanks. That gives me something to work with.

    6. terryjreedy commented on Jun 27, 2017

      @terryjreedy
      Member

      The unlinked PR is a closed duplicate. PR 2306 is the one being updated and reviewed.

    7. terryjreedy commented on Jun 27, 2017

      @terryjreedy
      Member

      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'.

    8. wohlganger commented on Jun 27, 2017

      wohlgangermannequin
      MannequinAuthor

      '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.

    9. terryjreedy commented on Jun 27, 2017

      @terryjreedy
      Member

      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.

    10. terryjreedy commented on Jun 28, 2017

      @terryjreedy
      Member

      New changeset fae2c35 by terryjreedy (wohlganger) in branch 'master':
      bpo-30723: IDLE -- Enhance parenmatch; add style, flash, and help (bpo-2306)
      fae2c35

    11. terryjreedy commented on Jun 28, 2017

      @terryjreedy
      Member

      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

    12. terryjreedy commented on Jun 28, 2017

      @terryjreedy
      Member

      Charles, thank you for the focused suggestion and patch. If you are interested, bpo-30422 reviews IDLE goals and current issues.

    13. transferred this issue fromon Apr 10, 2022
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

    Metadata

    Metadata

    Assignees

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions