private string GenerateMethodDocumentationForEndpoint()

in src/JetBrains.Space.Generator/CodeGeneration/CSharp/Generators/CSharpApiModelResourceGenerator.cs [581:628]


    private string GenerateMethodDocumentationForEndpoint(ApiEndpoint apiEndpoint, MethodParametersBuilder methodParametersBuilder)
    {
        var indent = new Indent();
        var builder = new CSharpBuilder();
            
        // Documentation for method
        ApiDocumentationUtilities.RenderCSharpDocumentation(apiEndpoint.Description, apiEndpoint.Experimental, output =>
        {
            builder.Append(indent.Wrap(output));
        });
        builder.Append(methodParametersBuilder.BuildMethodParametersDocumentation());

        // Remarks (required permissions)
        if (apiEndpoint.Rights is { Count: > 0 })
        {
            builder.AppendLine($"{indent}/// <remarks>");
            builder.AppendLine($"{indent}/// Required permissions:");
            builder.AppendLine($"{indent}/// <list type=\"bullet\">");
            foreach (var apiRight in apiEndpoint.Rights)
            {
                builder.AppendLine($"{indent}/// <item>");
                builder.AppendLine($"{indent}/// <term>{apiRight.Title}</term>");
                if (!string.IsNullOrEmpty(apiRight.Description))
                {
                    builder.AppendLine($"{indent}/// <description>{apiRight.Description}</description>");
                }
                builder.AppendLine($"{indent}/// </item>");
            }
            builder.AppendLine($"{indent}/// </list>");
            builder.AppendLine($"{indent}/// </remarks>");
        }
            
        // Attributes
        if (apiEndpoint.Deprecation != null)
        {
            builder.AppendLine($"{indent}{apiEndpoint.Deprecation.ToCSharpDeprecation()}");
        }
        else if (apiEndpoint.FeatureFlag != null && _codeGenerationContext.TryGetFeatureFlag(apiEndpoint.FeatureFlag, out var featureFlag))
        {
            builder.AppendLine($"{indent}{featureFlag.ToCSharpFeatureFlag()}");
        }
        else if (apiEndpoint.Experimental != null && FeatureFlags.GenerateExperimentalAnnotations)
        {
            builder.AppendLine($"{indent}{apiEndpoint.Experimental.ToCSharpExperimental()}");
        }

        return builder.ToString();
    }