本文整理汇总了C#中Microsoft.CodeAnalysis.CSharp.Syntax.MethodDeclarationSyntax.WithLeadingTrivia方法的典型用法代码示例。如果您正苦于以下问题:C# MethodDeclarationSyntax.WithLeadingTrivia方法的具体用法?C# MethodDeclarationSyntax.WithLeadingTrivia怎么用?C# MethodDeclarationSyntax.WithLeadingTrivia使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Microsoft.CodeAnalysis.CSharp.Syntax.MethodDeclarationSyntax
的用法示例。
在下文中一共展示了MethodDeclarationSyntax.WithLeadingTrivia方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ReplaceWithExpressionBodiedMember
private static async Task<Document> ReplaceWithExpressionBodiedMember(Document document, MethodDeclarationSyntax declaration, CancellationToken cancellationToken)
{
SyntaxTriviaList leadingTrivia;
var expression = GetExpressionAndLeadingTrivia(declaration.Body, out leadingTrivia);
var declarationTrivia = declaration.GetLeadingTrivia();
declarationTrivia = declarationTrivia.AddRange(leadingTrivia);
var newDeclaration = declaration
.WithLeadingTrivia(declarationTrivia)
.WithExpressionBody(SyntaxFactory.ArrowExpressionClause(expression))
.WithBody(null)
.WithSemicolonToken(GetSemicolon(declaration.Body))
.WithAdditionalAnnotations(Formatter.Annotation);
var root = await document.GetSyntaxRootAsync(cancellationToken);
var newRoot = root.ReplaceNode(declaration, newDeclaration);
return document.WithSyntaxRoot(newRoot);
}
示例2: AjouterInheritDoc
/// <summary>
/// Ajoute/corrige la ligne de documentation à/de la méthode.
/// </summary>
/// <param name="document">Le document du contexte.</param>
/// <param name="méthode">La méthode à documenter.</param>
/// <param name="jetonAnnulation">Le jeton d'annulation.</param>
/// <returns>Le document mis à jour.</returns>
private static async Task<Document> AjouterInheritDoc(Document document, MethodDeclarationSyntax méthode, CancellationToken jetonAnnulation)
{
// On récupère la recine et le modèle sémantique.
var racine = await document
.GetSyntaxRootAsync(jetonAnnulation)
.ConfigureAwait(false);
var modèleSémantique = await document.GetSemanticModelAsync(jetonAnnulation);
// On a déjà trouvé le inheritDoc dans le diagnostic mais on ne peut pas vraiment le passer au correctif...
var inheritDoc = Partagé.InheritDocEstCorrect(racine, modèleSémantique, méthode);
// Ajoute la ligne de commentaire à la méthode.
var méthodeCommentée = méthode
.WithLeadingTrivia(SyntaxFactory.LineFeed, SyntaxFactory.Comment(inheritDoc), SyntaxFactory.LineFeed)
.WithAdditionalAnnotations(Formatter.Annotation);
// Met à jour la racine.
var nouvelleRacine = racine.ReplaceNode(méthode, méthodeCommentée);
return document.WithSyntaxRoot(nouvelleRacine);
}
示例3: AddDocumentationAsync
/// <summary>
/// Add documentation for the property.
/// </summary>
/// <param name="context">the code fix context.</param>
/// <param name="root">the root syntax node.</param>
/// <param name="methodDeclaration">the property declaration containing invalid documentation.</param>
/// <param name="documentComment">the existing comment.</param>
/// <returns>the correct code.</returns>
private Task<Document> AddDocumentationAsync(
CodeFixContext context,
SyntaxNode root,
MethodDeclarationSyntax methodDeclaration,
DocumentationCommentTriviaSyntax documentComment)
{
var summary = this._commentNodeFactory.GetExistingSummaryCommentText(documentComment)
?? this._commentNodeFactory.CreateCommentSummaryText(methodDeclaration);
var @class = methodDeclaration.Parent as ClassDeclarationSyntax;
var first = @class?.DescendantNodes().FirstOrDefault() == methodDeclaration;
var parameters = this._commentNodeFactory.CreateParameters(methodDeclaration, documentComment);
var typeParameters = this._commentNodeFactory.CreateTypeParameters(methodDeclaration, documentComment);
var @return = this._commentNodeFactory.CreateReturnValueDocumentation(methodDeclaration, documentComment);
var returns = @return == null
? new XmlElementSyntax[] { }
: new[] { @return };
var summaryPlusParameters = new XmlNodeSyntax[] { summary }
.Concat(parameters)
.Concat(returns)
.Concat(typeParameters)
.ToArray();
var comment = this._commentNodeFactory
.CreateDocumentComment(summaryPlusParameters)
.AddLeadingEndOfLineTriviaFrom(methodDeclaration.GetLeadingTrivia());
var trivia = SyntaxFactory.Trivia(comment);
var methodTrivia = first
? methodDeclaration.WithLeadingTrivia(trivia)
: methodDeclaration.WithLeadingTrivia(SyntaxFactory.CarriageReturnLineFeed, trivia);
var result = documentComment != null
? root.ReplaceNode(documentComment, comment.AdjustDocumentationCommentNewLineTrivia())
: root.ReplaceNode(methodDeclaration, methodTrivia);
var newDocument = context.Document.WithSyntaxRoot(result);
return Task.FromResult(newDocument);
}