MCPcopy Index your code
hub / github.com/python/cpython / SearchEngine

Class SearchEngine

Lib/idlelib/searchengine.py:19–186  ·  view source on GitHub ↗

Handles searching a text widget for Find, Replace, and Grep.

Source from the content-addressed store, hash-verified

17
18
19class SearchEngine:
20 """Handles searching a text widget for Find, Replace, and Grep."""
21
22 def __init__(self, root):
23 '''Initialize Variables that save search state.
24
25 The dialogs bind these to the UI elements present in the dialogs.
26 '''
27 self.root = root # need for report_error()
28 self.patvar = StringVar(root, '') # search pattern
29 self.revar = BooleanVar(root, False) # regular expression?
30 self.casevar = BooleanVar(root, False) # match case?
31 self.wordvar = BooleanVar(root, False) # match whole word?
32 self.wrapvar = BooleanVar(root, True) # wrap around buffer?
33 self.backvar = BooleanVar(root, False) # search backwards?
34
35 # Access methods
36
37 def getpat(self):
38 return self.patvar.get()
39
40 def setpat(self, pat):
41 self.patvar.set(pat)
42
43 def isre(self):
44 return self.revar.get()
45
46 def iscase(self):
47 return self.casevar.get()
48
49 def isword(self):
50 return self.wordvar.get()
51
52 def iswrap(self):
53 return self.wrapvar.get()
54
55 def isback(self):
56 return self.backvar.get()
57
58 # Higher level access methods
59
60 def setcookedpat(self, pat):
61 "Set pattern after escaping if re."
62 # called only in search.py: 66
63 if self.isre():
64 pat = re.escape(pat)
65 self.setpat(pat)
66
67 def getcookedpat(self):
68 pat = self.getpat()
69 if not self.isre(): # if True, see setcookedpat
70 pat = re.escape(pat)
71 if self.isword():
72 pat = r"\b%s\b" % pat
73 return pat
74
75 def getprog(self):
76 "Return compiled cooked search pattern."

Callers 1

getFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…