private static (string text, int start, int length) GetReferenceInfo( ExcerptResult?reference, ReferenceLocationDescriptor descriptor ) { if (reference.HasValue) { return( reference.Value.Content.ToString().TrimEnd(), reference.Value.MappedSpan.Start, reference.Value.MappedSpan.Length ); } return( descriptor.ReferenceLineText, descriptor.ReferenceStart, descriptor.ReferenceLength ); }
private static (string before1, string before2, string after1, string after2) GetReferenceTexts( ExcerptResult?reference, ExcerptResult?tooltip, ReferenceLocationDescriptor descriptor ) { if (reference == null || tooltip == null) { return( descriptor.BeforeReferenceText1, descriptor.BeforeReferenceText2, descriptor.AfterReferenceText1, descriptor.AfterReferenceText2 ); } var lines = tooltip.Value.Content.Lines; var mappedLine = lines.GetLineFromPosition(tooltip.Value.MappedSpan.Start); var index = mappedLine.LineNumber; if (index < 0) { return( descriptor.BeforeReferenceText1, descriptor.BeforeReferenceText2, descriptor.AfterReferenceText1, descriptor.AfterReferenceText2 ); } return( GetLineTextOrEmpty(lines, index - 1), GetLineTextOrEmpty(lines, index - 2), GetLineTextOrEmpty(lines, index + 1), GetLineTextOrEmpty(lines, index + 2) ); }