getLineSpan method

TextSpan? getLineSpan(
  1. int lineIndex,
  2. String lineText
)

Implementation

TextSpan? getLineSpan(int lineIndex, String lineText) {
  if (_lineSpanCache.containsKey(lineText)) {
    return _lineSpanCache[lineText];
  }

  final grammarSpan = _highlightLine(lineText);

  if (_isEditing) {
    _lineSpanCache[lineText] = grammarSpan;
    return grammarSpan;
  }

  final semanticSpans = _lineSemanticSpans[lineIndex];
  final mergedSpan = _mergeGrammarAndSemantic(
    lineText,
    grammarSpan,
    semanticSpans,
  );

  _lineSpanCache[lineText] = mergedSpan;
  _mergedCache[lineIndex] = HighlightedLine(lineText, mergedSpan, _version);

  return mergedSpan;
}