'Gets the fold region range (start and end line).
.. note:: Start line do no encompass the trigger line.
:param ignore_blank_lines: True to ignore blank lines at the end of the
scope (the method will rewind to find that last meaningful block
that is part of the fold scope).
:returns: tuple(int, int)'

def get_range(self, ignore_blank_lines=True):

    ref_lvl = self.trigger_level
    first_line = self._trigger.blockNumber()
    block = self._trigger.next()
    last_line = block.blockNumber()
    lvl = self.scope_level
    if (ref_lvl == lvl):
        ref_lvl -= 1
    while (block.isValid() and (TextBlockHelper.get_fold_lvl(block) > ref_lvl)):
        last_line = block.blockNumber()
        block = block.next()
    if (ignore_blank_lines and last_line):
        block = block.document().findBlockByNumber(last_line)
        while (block.blockNumber() and (block.text().strip() == '')):
            block = block.previous()
            last_line = block.blockNumber()
    return (first_line, last_line)
