code: 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:  # for zone set programmatically such as imports
                              # in pyqode.python
              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
docs: 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)