def _on_key_pressed(self, event):
        """
        Override key press to select the current scope if the user wants
        to deleted a folded scope (without selecting it).
        """
        delete_request = event.key() in [QtCore.Qt.Key_Backspace,
                                         QtCore.Qt.Key_Delete]
        if event.text() or delete_request:
            cursor = self.editor.textCursor()
            if cursor.hasSelection():
                # change selection to encompass the whole scope.
                positions_to_check = cursor.selectionStart(), cursor.selectionEnd()
            else:
                positions_to_check = (cursor.position(), )
            for pos in positions_to_check:
                block = self.editor.document().findBlock(pos)
                th = TextBlockHelper()
                if th.is_fold_trigger(block) and th.is_collapsed(block):
                    self.toggle_fold_trigger(block)
                    if delete_request and cursor.hasSelection():
                        scope = FoldScope(self.find_parent_scope(block))
                        tc = TextHelper(self.editor).select_lines(*scope.get_range())
                        if tc.selectionStart() > cursor.selectionStart():
                            start = cursor.selectionStart()
                        else:
                            start = tc.selectionStart()
                        if tc.selectionEnd() < cursor.selectionEnd():
                            end = cursor.selectionEnd()
                        else:
                            end = tc.selectionEnd()
                        tc.setPosition(start)
                        tc.setPosition(end, tc.KeepAnchor)
                        self.editor.setTextCursor(tc)
def _on_key_pressed ( self , event ) : delete_request = event . key ( ) in [ QtCore . Qt . Key_Backspace , QtCore . Qt . Key_Delete ] if event . text ( ) or delete_request : cursor = self . editor . textCursor ( ) if cursor . hasSelection ( ) : positions_to_check = cursor . selectionStart ( ) , cursor . selectionEnd ( ) else : positions_to_check = ( cursor . position ( ) , ) for pos in positions_to_check : block = self . editor . document ( ) . findBlock ( pos ) th = TextBlockHelper ( ) if th . is_fold_trigger ( block ) and th . is_collapsed ( block ) : self . toggle_fold_trigger ( block ) if delete_request and cursor . hasSelection ( ) : scope = FoldScope ( self . find_parent_scope ( block ) ) tc = TextHelper ( self . editor ) . select_lines ( * scope . get_range ( ) ) if tc . selectionStart ( ) > cursor . selectionStart ( ) : start = cursor . selectionStart ( ) else : start = tc . selectionStart ( ) if tc . selectionEnd ( ) < cursor . selectionEnd ( ) : end = cursor . selectionEnd ( ) else : end = tc . selectionEnd ( ) tc . setPosition ( start ) tc . setPosition ( end , tc . KeepAnchor ) self . editor . setTextCursor ( tc )
Override key press to select the current scope if the user wants
        to deleted a folded scope (without selecting it).