(self, s, event)
| 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): |
no test coverage detected