private static void AssertValidSignatureHelp(SignatureHelp?signatureHelp, Symbol symbol) { signatureHelp.Should().NotBeNull(); signatureHelp !.Signatures.Should().NotBeNull(); foreach (var signature in signatureHelp.Signatures) { signature.Label.Should().StartWith(symbol.Name.StartsWith("list") ? "list*(" : $"{symbol.Name}("); signature.Label.Should().EndWith(")"); signature.Parameters.Should().NotBeNull(); if (signature.Parameters !.Count() >= 2) { signature.Label.Should().Contain(", "); } // we use the top level active parameter index signature.ActiveParameter.Should().BeNull(); signature.Documentation.Should().NotBeNull(); signature.Documentation !.MarkupContent.Should().NotBeNull(); signature.Documentation.MarkupContent !.Kind.Should().Be(MarkupKind.Markdown); signature.Documentation.MarkupContent.Value.Should().NotBeEmpty(); } }
private static void AssertValidSignatureHelp(SignatureHelp?signatureHelp, Symbol symbol, bool expectDecorator) { signatureHelp.Should().NotBeNull(); signatureHelp !.Signatures.Should().NotBeNull(); foreach (var signature in signatureHelp.Signatures) { signature.Label.Should().StartWith(symbol.Name.StartsWith("list") ? "list*(" : $"{symbol.Name}("); if (expectDecorator) { // decorators should have no return type signature.Label.Should().EndWith(")"); } else { // normal function calls should include a return type signature.Label.Should().Contain("): "); } signature.Parameters.Should().NotBeNull(); if (signature.Parameters !.Count() >= 2) { signature.Label.Should().Contain(", "); } // we use the top level active parameter index signature.ActiveParameter.Should().BeNull(); signature.Documentation.Should().NotBeNull(); signature.Documentation !.MarkupContent.Should().NotBeNull(); signature.Documentation.MarkupContent !.Kind.Should().Be(MarkupKind.Markdown); signature.Documentation.MarkupContent.Value.Should().NotBeEmpty(); } }