public async Task csharp_signature_help_contains_doc_comments_from_individually_referenced_assemblies_with_xml_files()
        {
            using var assembly = new TestAssemblyReference("Project", "netstandard2.0", "Program.cs", @"
public class SampleClass
{
    /// <summary>A sample class constructor.</summary>
    public SampleClass() { }
}
");
            var assemblyPath = await assembly.BuildAndGetPathToAssembly();

            using var kernel = CreateKernel(Language.CSharp);

            await SubmitCode(kernel, $"#r \"{assemblyPath}\"");

            var markupCode = "new SampleClass($$";

            MarkupTestFile.GetLineAndColumn(markupCode, out var code, out var line, out var column);

            await kernel.SendAsync(new RequestSignatureHelp(code, new LinePosition(line, column)));

            KernelEvents
            .Should()
            .ContainSingle <SignatureHelpProduced>()
            .Which
            .Signatures
            .Should()
            .ContainSingle(sh => sh.Documentation.Value.Contains("A sample class constructor."));
        }
Exemplo n.º 2
0
        public async Task completion_contains_doc_comments_from_individually_referenced_assemblies_with_xml_files(Language language)
        {
            using var assembly = new TestAssemblyReference("Project", "netstandard2.0", "Program.cs", @"
public class C
{
    /// <summary>This is the answer.</summary>
    public static int TheAnswer => 42;
}
");
            var assemblyPath = await assembly.BuildAndGetPathToAssembly();

            var assemblyReferencePath = language switch
            {
                Language.CSharp => assemblyPath,
                Language.FSharp => assemblyPath.Replace("\\", "\\\\")
            };

            using var kernel = CreateKernel(language);

            await SubmitCode(kernel, $"#r \"{assemblyReferencePath}\"");

            var markupCode = "C.TheAns$$";

            MarkupTestFile.GetLineAndColumn(markupCode, out var code, out var line, out var character);
            await kernel.SendAsync(new RequestCompletions(code, new LinePosition(line, character)));

            KernelEvents
            .Should()
            .ContainSingle <CompletionsProduced>()
            .Which
            .Completions
            .Should()
            .ContainSingle(ci => ci.Documentation != null && ci.Documentation.Contains("This is the answer."));
        }
Exemplo n.º 3
0
        public async Task hover_text_can_read_doc_comments_from_individually_referenced_assemblies_with_xml_files(Language language, string markupCode)
        {
            using var assembly = new TestAssemblyReference("Project", "netstandard2.0", "Program.cs", @"
public class SampleClass
{
    /// <summary>A sample class constructor.</summary>
    public SampleClass() { }
}
");
            var assemblyPath = await assembly.BuildAndGetPathToAssembly();

            var assemblyReferencePath = language switch
            {
                Language.CSharp => assemblyPath,
                Language.FSharp => assemblyPath.Replace("\\", "\\\\")
            };

            using var kernel = CreateKernel(language);

            await SubmitCode(kernel, $"#r \"{assemblyReferencePath}\"");

            MarkupTestFile.GetLineAndColumn(markupCode, out var code, out var line, out var character);
            var commandResult = await SendHoverRequest(kernel, code, line, character);

            var events = commandResult.KernelEvents.ToSubscribedList();

            events
            .Should()
            .ContainSingle <HoverTextProduced>()
            .Which
            .Content
            .Should()
            .ContainSingle(fv => fv.Value.Contains("A sample class constructor."));
        }