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

Method recall

Lib/idlelib/pyshell.py:1323–1349  ·  view source on GitHub ↗
(self, s, event)

Source from the content-addressed store, hash-verified

1321 return "break"
1322
1323 def recall(self, s, event):
1324 # remove leading and trailing empty or whitespace lines
1325 s = re.sub(r'^\s*\n', '', s)
1326 s = re.sub(r'\n\s*$', '', s)
1327 lines = s.split('\n')
1328 self.text.undo_block_start()
1329 try:
1330 self.text.tag_remove("sel", "1.0", "end")
1331 self.text.mark_set("insert", "end-1c")
1332 prefix = self.text.get("insert linestart", "insert")
1333 if prefix.rstrip().endswith(':'):
1334 self.newline_and_indent_event(event)
1335 prefix = self.text.get("insert linestart", "insert")
1336 self.text.insert("insert", lines[0].strip(),
1337 self.user_input_insert_tags)
1338 if len(lines) > 1:
1339 orig_base_indent = re.search(r'^([ \t]*)', lines[0]).group(0)
1340 new_base_indent = re.search(r'^([ \t]*)', prefix).group(0)
1341 for line in lines[1:]:
1342 if line.startswith(orig_base_indent):
1343 # replace orig base indentation with new indentation
1344 line = new_base_indent + line[len(orig_base_indent):]
1345 self.text.insert('insert', '\n' + line.rstrip(),
1346 self.user_input_insert_tags)
1347 finally:
1348 self.text.see("insert")
1349 self.text.undo_block_stop()
1350
1351 _last_newline_re = re.compile(r"[ \t]*(\n[ \t]*)?\z")
1352 def runit(self):

Callers 1

enter_callbackMethod · 0.95

Calls 15

subMethod · 0.45
splitMethod · 0.45
undo_block_startMethod · 0.45
tag_removeMethod · 0.45
mark_setMethod · 0.45
getMethod · 0.45
endswithMethod · 0.45
rstripMethod · 0.45
insertMethod · 0.45
stripMethod · 0.45
groupMethod · 0.45

Tested by

no test coverage detected