mirror of
https://github.com/nsnail/spectre.console.git
synced 2025-04-16 00:42:51 +08:00

* Adding a dark mode * Adding reference for types to summary pages * Adding API Reference * Adding modifiers to methods/fields/etc * Minimizing files input * Caching a lot of the output pages * Cache only for each execution * Adding API references to existing docs
40 lines
1.8 KiB
Plaintext
40 lines
1.8 KiB
Plaintext
@using Statiq.CodeAnalysis
|
|
@using Docs.Extensions
|
|
@using Microsoft.CodeAnalysis
|
|
|
|
@{
|
|
var modelSymbol = Document.Get<ITypeSymbol>(CodeAnalysisKeys.Symbol);
|
|
IReadOnlyList<IDocument> methods = Document.GetDocumentList(CodeAnalysisKeys.ExtensionMethods)
|
|
?.Where(x => x.GetBool(CodeAnalysisKeys.IsResult))
|
|
.OrderBy(x => x.GetString(CodeAnalysisKeys.DisplayName))
|
|
.ToList();
|
|
|
|
if (methods?.Count > 0)
|
|
{
|
|
<h3>Extension Methods</h3>
|
|
<div class="doc-summary">
|
|
<div>
|
|
<dl>
|
|
@foreach (var method in methods)
|
|
{
|
|
ISymbol reducedSymbol = method.Get<IMethodSymbol>(CodeAnalysisKeys.Symbol)?.ReduceExtensionMethod(modelSymbol);
|
|
string reducedName = reducedSymbol?.ToDisplayString(new SymbolDisplayFormat(
|
|
typeQualificationStyle: SymbolDisplayTypeQualificationStyle.NameAndContainingTypes,
|
|
genericsOptions: SymbolDisplayGenericsOptions.IncludeTypeParameters,
|
|
parameterOptions: SymbolDisplayParameterOptions.IncludeType,
|
|
memberOptions: SymbolDisplayMemberOptions.IncludeParameters,
|
|
miscellaneousOptions: SymbolDisplayMiscellaneousOptions.UseSpecialTypes));
|
|
|
|
<div>
|
|
<dt>
|
|
@method.GetModifiers(skipStatic:true) @method.GetDocument(CodeAnalysisKeys.ReturnType).GetString(CodeAnalysisKeys.DisplayName) @Context.GetTypeLink(method,reducedName, false)
|
|
</dt>
|
|
<dd>@Html.Raw(method.GetString(CodeAnalysisKeys.Summary))</dd>
|
|
</div>
|
|
}
|
|
|
|
</dl>
|
|
</div>
|
|
</div>
|
|
}
|
|
} |