markdownHighlightedCodeSpan function

TextSpan markdownHighlightedCodeSpan(
  1. String source, {
  2. required String? language,
  3. required TextStyle baseStyle,
})

Implementation

TextSpan markdownHighlightedCodeSpan(
  String source, {
  required String? language,
  required TextStyle baseStyle,
}) {
  final normalized = normalizeMarkdownCodeLanguage(language);
  if (normalized == null ||
      normalized == 'plaintext' ||
      !markdownCodeCanHighlight(source) ||
      _codeHighlighter.getLanguage(normalized) == null) {
    return TextSpan(text: source, style: baseStyle);
  }

  final key = _HighlightCacheKey(language: normalized, source: source);
  var result = _highlightCache.get(key);
  if (result == null) {
    try {
      result = _codeHighlighter.highlight(code: source, language: normalized);
      _highlightCache.put(key, result);
    } on Object {
      return TextSpan(text: source, style: baseStyle);
    }
  }
  final renderer = TextSpanRenderer(baseStyle, githubTheme);
  result.render(renderer);
  return renderer.span ?? TextSpan(text: source, style: baseStyle);
}