highlightCodeSpanWithReHighlight function

TextSpan highlightCodeSpanWithReHighlight({
  1. required BuildContext context,
  2. required String code,
  3. required String languageOrFilename,
  4. required TextStyle textStyle,
  5. Map<String, TextStyle>? theme,
  6. String fallbackLanguageId = plaintextLanguageId,
})

Implementation

TextSpan highlightCodeSpanWithReHighlight({
  required BuildContext context,
  required String code,
  required String languageOrFilename,
  required TextStyle textStyle,
  Map<String, TextStyle>? theme,
  String fallbackLanguageId = plaintextLanguageId,
}) {
  final languageId = resolveLanguageIdForFilename(languageOrFilename) ?? fallbackLanguageId;
  final codeTheme = theme ?? _codeTheme(context);
  try {
    final result = _markdownHighlighter.highlight(code: code, language: languageId);
    final renderer = TextSpanRenderer(textStyle, codeTheme);
    result.render(renderer);
    return renderer.span ?? TextSpan(text: code, style: textStyle);
  } catch (_) {
    return TextSpan(text: code, style: textStyle);
  }
}