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();
}