Ejemplo n.º 1
0
        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
                );
        }
Ejemplo n.º 2
0
        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)
                );
        }