本文整理汇总了C#中Microsoft.CodeAnalysis.CSharp.Syntax.ConstructorDeclarationSyntax.GetLeadingTrivia方法的典型用法代码示例。如果您正苦于以下问题:C# ConstructorDeclarationSyntax.GetLeadingTrivia方法的具体用法?C# ConstructorDeclarationSyntax.GetLeadingTrivia怎么用?C# ConstructorDeclarationSyntax.GetLeadingTrivia使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Microsoft.CodeAnalysis.CSharp.Syntax.ConstructorDeclarationSyntax
的用法示例。
在下文中一共展示了ConstructorDeclarationSyntax.GetLeadingTrivia方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: AddDocumentationAsync
/// <summary>
/// add documentation for the constructor.
/// </summary>
/// <param name="context">the code fix context.</param>
/// <param name="root">the syntax root.</param>
/// <param name="constructorDeclaration">the constructor declaration syntax.</param>
/// <param name="documentComment">the document content.</param>
/// <returns>the resulting document.</returns>
private Task<Document> AddDocumentationAsync(CodeFixContext context, SyntaxNode root, ConstructorDeclarationSyntax constructorDeclaration, DocumentationCommentTriviaSyntax documentComment)
{
var lines = documentComment.GetExistingSummaryCommentDocumentation() ?? new string[] { };
var standardCommentText = this._commentNodeFactory.PrependStandardCommentText(constructorDeclaration, lines);
var parameters = this._commentNodeFactory.CreateParameters(constructorDeclaration, documentComment);
var summaryPlusParameters = new XmlNodeSyntax[] { standardCommentText }
.Concat(parameters)
.ToArray();
var comment = this._commentNodeFactory
.CreateDocumentComment(summaryPlusParameters)
.AddLeadingEndOfLineTriviaFrom(constructorDeclaration.GetLeadingTrivia());
var trivia = SyntaxFactory.Trivia(comment);
var result = documentComment != null
? root.ReplaceNode(documentComment, comment.AdjustDocumentationCommentNewLineTrivia())
: root.ReplaceNode(constructorDeclaration, constructorDeclaration.WithLeadingTrivia(trivia));
var newDocument = context.Document.WithSyntaxRoot(result);
return Task.FromResult(newDocument);
}
开发者ID:jimmymain,项目名称:Documentation.Analyzers,代码行数:31,代码来源:DocumentationConstructorCodeFixProvider.cs
示例2: TransverseConstructors
private Constructor TransverseConstructors(ConstructorDeclarationSyntax cds)
{
Constructor retConstructor = new Constructor();
//public int DecisionsCount { get; }
//public int ExitPoints { get; set; }
//public bool IsFriend { get; }
//public bool IsPolymophic { get; }
//public bool IsPublic { get; }
//public bool IsStatic { get; }
//public List<Preprocessor> Preprocessors { get; set; }
retConstructor.Name = cds.Identifier.ValueText;
if (cds.HasLeadingTrivia)
{
SetOuterComments(retConstructor, cds.GetLeadingTrivia().ToFullString());
}
if (cds.HasTrailingTrivia)
{
SetInnerComments(retConstructor, cds.GetTrailingTrivia().ToFullString());
}
foreach (SyntaxToken st in cds.Modifiers)
{
string modifier = System.Threading.Thread.CurrentThread.CurrentCulture.TextInfo.ToTitleCase(st.ValueText);
Encapsulation encap;
Qualifiers qual;
if (System.Enum.TryParse<Encapsulation>(modifier, out encap))
{
retConstructor.Encapsulation.Add(encap);
}
else if (System.Enum.TryParse<Qualifiers>(modifier, out qual))
{
retConstructor.Qualifiers.Add(qual);
}
}
//TypeSyntax ts = cds.ReturnType;
//Model.Type retType = new Model.Type();
//retType.Name = ts.ToString();
//retType.IsKnownType = ts.Kind.IsKeywordKind();
//retType.IsNotUserDefined = ts.Kind.IsKeywordKind();
//TODO
//rettype.generictype
//retConstructor.ReturnType = retType;
ParameterListSyntax pls = cds.ParameterList;
foreach (ParameterSyntax ps in pls.Parameters)
{
retConstructor.Parameters.Add(TraverseParamaters(ps));
}
BlockSyntax bs = cds.Body;
var labelStatements = from aLabelStatement in bs.ChildNodes().OfType<LabeledStatementSyntax>() select aLabelStatement;
foreach (LabeledStatementSyntax lss in labelStatements)
{
retConstructor.LabelStatements.Add(TraverseLabelStatements(lss));
}
var goToStatements = from aGoToStatement in bs.ChildNodes().OfType<GotoStatementSyntax>() select aGoToStatement;
foreach (GotoStatementSyntax gtss in goToStatements)
{
GoTo gt = TraverseGoToStatements(gtss);
retConstructor.GoToStatements.Add(gt);
}
//Preprocessors = new List<Preprocessor>();
//Base = new List<InvokedMethod>();
//Decisions = new Decisions();
var accessVarsDecl = from aAccessVarsDecl in bs.ChildNodes().OfType<LocalDeclarationStatementSyntax>() select aAccessVarsDecl;
foreach (LocalDeclarationStatementSyntax ldss in accessVarsDecl)
{
Method tempMethod = TransverseAccessVars(ldss);
retConstructor.AccessedVariables.AddRange(tempMethod.AccessedVariables);
retConstructor.InvokedMethods.AddRange(tempMethod.InvokedMethods);
}
var ifStatements = from aIfStatement in bs.ChildNodes().OfType<IfStatementSyntax>() select aIfStatement;
foreach (IfStatementSyntax iss in ifStatements)
{
int exitPoints = retConstructor.ExitPoints;
Decisions tempDecision = TraverseIfStatements(iss, ref exitPoints);
retConstructor.Decisions.IfStatements.AddRange(tempDecision.IfStatements);
retConstructor.Decisions.ElseStatements.AddRange(tempDecision.ElseStatements);
retConstructor.Decisions.ForEachStatements.AddRange(tempDecision.ForEachStatements);
retConstructor.Decisions.ForStatements.AddRange(tempDecision.ForStatements);
retConstructor.Decisions.WhileLoops.AddRange(tempDecision.WhileLoops);
retConstructor.Decisions.DoWhileLoops.AddRange(tempDecision.DoWhileLoops);
retConstructor.Decisions.Catches.AddRange(tempDecision.Catches);
retConstructor.Decisions.SwitchStatements.AddRange(tempDecision.SwitchStatements);
retConstructor.ExitPoints = exitPoints;
}
var elseStatements = from aElseStatements in bs.ChildNodes().OfType<ElseClauseSyntax>() select aElseStatements;
foreach (ElseClauseSyntax ecs in elseStatements)
{
int exitPoints = retConstructor.ExitPoints;
Decisions tempDecision = TraverseElseClauses(ecs, ref exitPoints);
retConstructor.Decisions.IfStatements.AddRange(tempDecision.IfStatements);
retConstructor.Decisions.ElseStatements.AddRange(tempDecision.ElseStatements);
retConstructor.Decisions.ForEachStatements.AddRange(tempDecision.ForEachStatements);
//.........这里部分代码省略.........