class_docstr: Syntax highlighter for the Python language.
      
docstr: 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.
docstr_tok: ["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","."]
code: def match_multiline(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:
          start = delimiter.indexIn(text)
          # Move past this match
          add = delimiter.matchedLength()
  
      # As long as there's a delimiter match on this line...
      while start >= 0:
          # Look for the ending delimiter
          end = delimiter.indexIn(text, start + add)
          # Ending delimiter on this line?
          if end >= add:
              length = end - start + add + delimiter.matchedLength()
              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 = delimiter.indexIn(text, start + length)
  
      # Return True if still inside a multi-line string, False otherwise
      if self.currentBlockState() == in_state:
          return True
      else:
          return False
  
file_path: PandasGUI/pandasgui/widgets/python_highlighter.py
imports: from PyQt5 import QtWidgets
  from PyQt5.QtCore import QRegExp
  from PyQt5.QtGui import QColor, QTextCharFormat, QFont, QSyntaxHighlighter
label_desc: Use image node_id 3 for calling the PythonHighlighter obj's underlying member method code with example usage: obj.match_multiline(text, delimiter, in_state, style) and returns: True, False