<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def goto_line(self, line, column=0, move=True):
 """ Moves the text cursor to the specified position.. :param line: Number of the line to go to (0 based) :param column: Optional column number. Default is 0 (start of line). :param move: True to move the cursor. False will return the cursor without setting it on the editor. :return: The new text cursor :rtype: QtGui.QTextCursor """

        text_cursor = self.move_cursor_to(line)
        if column:
            text_cursor.movePosition(text_cursor.Right, text_cursor.MoveAnchor,
                                     column)
        if move:
            block = text_cursor.block()
            # unfold parent fold trigger if the block is collapsed
            try:
                folding_panel = self._editor.panels.get('FoldingPanel')
            except KeyError:
                pass
            else:
                from pyqode.core.api.folding import FoldScope
                if not block.isVisible():
                    block = FoldScope.find_parent_scope(block)
                    if TextBlockHelper.is_collapsed(block):
                        folding_panel.toggle_fold_trigger(block)
            self._editor.setTextCursor(text_cursor)
        return text_cursor