示例#1
0
        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();
            }
        }
示例#2
0
        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();
            }
        }