Thanks to visit codestin.com
Credit goes to github.com

Skip to content

gh-130693: Add options of the tkinter.Text.search method: -nolinestop -all -overlap -strictlimits #130848

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 20 commits into
base: main
Choose a base branch
from

Conversation

sharktide
Copy link
Contributor

@sharktide sharktide commented Mar 4, 2025

Add options -nolinestop, -all, -overlap, and -strictlimits to the search function of the text class of tkinter.

Fixes #130693
Closes #130693

Tested against

.\PCbuild\amd64\python_d.exe -m test -ugui test_tkinter

And test passed. Result:

0:00:00 [1/1] test_tkinter
0:00:27 load avg: 3.93 [1/1] test_tkinter passed

== Tests result: SUCCESS ==

1 test OK.

Total duration: 27.6 sec
Total tests: run=787 skipped=11
Total test files: run=1/1
Result: SUCCESS

Also tested against a custom test file:

import tkinter as tk

root = tk.Tk()
text = tk.Text(root)
text.pack()

text.insert('1.0', 'This is a test. This is only a test.\nAnother line.\nYet another line.')

# Test without options
result = text.search('test', '1.0', 'end')
print('Without options:', result)

# Test with -nolinestop
result = text.search('line', '1.0', 'end', nolinestop=True, regexp=True)
print('With -nolinestop:', result)

# Test with -all
result = text.search('test', '1.0', 'end', all=True)
print('With -all:', result)

# Test with -overlap
result = text.search('test', '1.0', 'end', overlap=True, all=True)
print('With -overlap:', result)

# Test with -strictlimits
result = text.search('test', '1.0', 'end', strictlimits=True)
print('With -strictlimits:', result)

root.mainloop()

Which returns:

Without options: 1.10
With -nolinestop: 2.8
With -all: (<textindex object: '1.10'>, <textindex object: '1.31'>)
With -overlap: (<textindex object: '1.10'>, <textindex object: '1.31'>)
With -strictlimits: 1.10

Indicating that the new features are functioning correctly

@bedevere-app
Copy link

bedevere-app bot commented Mar 4, 2025

Most changes to Python require a NEWS entry. Add one using the blurb_it web app or the blurb command-line tool.

If this change has little impact on Python users, wait for a maintainer to apply the skip news label instead.

@sharktide sharktide requested a review from Wulian233 March 5, 2025 15:20
@sharktide
Copy link
Contributor Author

@ZeroIntensity Could someone please review? I think the original reviewer forgot

@sharktide sharktide requested a review from Wulian233 May 5, 2025 15:49
@sharktide
Copy link
Contributor Author

@Wulian233 Please Review again

@sharktide
Copy link
Contributor Author

I am currently pinging this PR as I have not seen a review in nearly a month.
Could someone please review?

@sharktide
Copy link
Contributor Author

sharktide commented May 30, 2025 via email

@sharktide
Copy link
Contributor Author

Done!

@sharktide sharktide requested a review from ZeroIntensity May 30, 2025 20:09
@sharktide
Copy link
Contributor Author

It has been nearly a month. @ZeroIntensity Could you please review?

Copy link
Member

@ZeroIntensity ZeroIntensity left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All new features need tests. Please add one to test_tkinter.

@sharktide
Copy link
Contributor Author

sharktide commented Jun 17, 2025 via email

@sharktide
Copy link
Contributor Author

I updated the branch as it has been a while since this PR has been opened

@sharktide
Copy link
Contributor Author

I’ll make an issue about the docs about tkinter.text later and fix everything else. For now i will not use the :meth: calls until that gets fixed. Will raise another pr for that later.

It’ll be difficult for me to do this now as I’m going out to a dinner party and will only have my phone. I might try phone coding for the next few hrs though :)

P.S. I’m traveling and visiting family in India. That’s why it’s like night here

@sharktide
Copy link
Contributor Author

Oh yeah and @ZeroIntensity congrats on becoming a core dev (I’ve liked you since the beginning, you are always quick in responding, know the dev guide in and out and I would say more nice things but I’m on an iPhone and my fingers are starting to hurt) I’ve mentioned this in a few places but u definitely deserve it. Maybe in a few years when I become roughly your age I hopefully might become one of ya’ll (assuming I don’t screw up up on the way, which I will)

@ZeroIntensity
Copy link
Member

Thanks! Shoot for the stars :)

@sharktide
Copy link
Contributor Author

Ready for review

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

tkinter missing -nolinestop on tk.Text
3 participants