def METHOD_NAME(self, text, delimiter, in_state, style):
    """Do highlighting of multi-line strings. ``delimiter`` should be a
    ``QRegExp`` for triple-single-quotes or triple-double-quotes, and
    ``in_state`` should be a unique integer to represent the corresponding
    state changes when inside those strings. Returns True if we're still
    inside a multi-line string when this function is finished.
    """
    # If inside triple-single quotes, start at 0
    if self.previousBlockState() == in_state:
        start = 0
        add = 0
    # Otherwise, look for the delimiter on this line
    else:
        match = delimiter.match(text)
        start = match.capturedStart(0)
        end = match.capturedEnd(0)
        # Move past this match
        add = end - start + 1
    # As long as there's a delimiter match on this line...
    while start >= 0:
        # Look for the ending delimiter starting from where the last match ended
        match = delimiter.match(text, start + add)
        end = match.capturedEnd(0)
        # Ending delimiter on this line?
        if end >= add:
            length = end - start + add
            self.setCurrentBlockState(0)
        # No; multi-line string
        else:
            self.setCurrentBlockState(in_state)
            length = len(text) - start + add
        # Apply formatting
        self.setFormat(start, length, style)
        # Look for the next match
        start = match.capturedStart(start + length)
    # Return True if still inside a multi-line string, False otherwise
    if self.currentBlockState() == in_state:
        return True
    else:
        return False