def show_instruction(
        self,
        insn_addr,
        insn_pos=None,
        centering: bool = False,
        use_block_pos: bool = False,
        use_animation: bool = False,
    ) -> None:
        """

        :param insn_addr:
        :param QGraphicsItem item:
        :param centering:
        :param use_block_pos:
        :return:
        """
        if insn_pos is not None:
            # check if item is already visible in the viewport
            viewport = self._viewer.viewport()
            rect = self._viewer.mapToScene(QRect(0, 0, viewport.width(), viewport.height())).boundingRect()
            if rect.contains(insn_pos):
                return

        self.navigate_to_addr(insn_addr)


        :param insn_addr:
        :param QGraphicsItem item:
        :param centering:
        :param use_block_pos:
        :return:
        
angrmanagement/ui/widgets/qlinear_viewer.py