public async Task <ScopeStack> GetScopeStackAsync(int offset, CancellationToken cancellationToken) { var line = textDocument.GetLineByOffset(offset); var highligthedLine = await GetHighlightedLineAsync(line, cancellationToken).ConfigureAwait(false); offset -= line.Offset; foreach (var segment in highligthedLine.Segments) { if (segment.Offset <= offset && segment.EndOffset >= offset) { return(segment.ScopeStack); } } return(defaultScopeStack); }