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.")); }
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.")); }
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.")); }