def lines(self) -> str:
        """Return the source code lines for this error."""
        if self.definition is None:
            return ''
        source = ''
        lines = self.definition.source.splitlines(keepends=True)
        offset = self.definition.start  # type: ignore
        lines_stripped = list(
            reversed(list(dropwhile(is_blank, reversed(lines))))
        )
        numbers_width = len(str(offset + len(lines_stripped)))
        line_format = f'{{:{numbers_width}}}:{{}}'
        for n, line in enumerate(lines_stripped):
            if line:
                line = ' ' + line
            source += line_format.format(n + offset, line)
            if n > 5:
                source += '        ...\n'
                break
        return source