SyntaxHighlighter constructor

SyntaxHighlighter({
  1. required Mode language,
  2. required Map<String, TextStyle> editorTheme,
  3. TextStyle? baseTextStyle,
  4. String? languageId,
  5. List<Mode> extraLanguages = const [],
  6. String? documentText,
})

Implementation

SyntaxHighlighter({
  required this.language,
  required this.editorTheme,
  this.baseTextStyle,
  this.languageId,
  this.extraLanguages = const [],
  String? documentText,
}) {
  _langId = language.hashCode.toString();
  _resolvedTheme = _buildResolvedTheme(editorTheme);
  _highlight = Highlight();
  _highlight.registerLanguage(_langId, language);

  _registeredExtraLanguages = <Mode>[...extraLanguages];

  for (final lang in _registeredExtraLanguages) {
    _registerLanguageWithAliases(_highlight, lang);
  }

  _semanticMapping = getSemanticMapping(languageId ?? '');
  _blockCommentModes = <Mode>[];
  _collectBlockCommentModes(language, _blockCommentModes, <Mode>{});
  _blockCommentPatterns = [
    for (final mode in _blockCommentModes)
      if (_modeRegExp(mode.begin) case final begin?)
        if (_modeRegExp(mode.end) case final end?) (begin: begin, end: end),
  ];
  if (documentText != null) {
    _documentText = documentText;
    _setDocumentText(documentText);
  }
}