当前位置: 首页>>代码示例>>C#>>正文


C# IdentifierNameSyntax.WithLeadingTrivia方法代码示例

本文整理汇总了C#中Microsoft.CodeAnalysis.CSharp.Syntax.IdentifierNameSyntax.WithLeadingTrivia方法的典型用法代码示例。如果您正苦于以下问题:C# IdentifierNameSyntax.WithLeadingTrivia方法的具体用法?C# IdentifierNameSyntax.WithLeadingTrivia怎么用?C# IdentifierNameSyntax.WithLeadingTrivia使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Microsoft.CodeAnalysis.CSharp.Syntax.IdentifierNameSyntax的用法示例。


在下文中一共展示了IdentifierNameSyntax.WithLeadingTrivia方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: PadMemberAccess

        private static IdentifierNameSyntax PadMemberAccess(
            SimpleLambdaExpressionSyntax node,
            IdentifierNameSyntax memberAccess)
        {
            // We want to make the new span 
            var originalSpan = node.GetLocation().GetMappedLineSpan();

            // Start by collecting all the trivia 'inside' the expression - we need to tack that on the end, but
            // if it ends with a newline, don't include that.
            var innerTrivia = SyntaxFactory.TriviaList(node.DescendantTrivia(descendIntoChildren: n => true));
            if (innerTrivia.Count > 0 && innerTrivia[innerTrivia.Count - 1].IsKind(SyntaxKind.EndOfLineTrivia))
            {
                innerTrivia = innerTrivia.RemoveAt(innerTrivia.Count - 1);
            }

            memberAccess = memberAccess.WithTrailingTrivia(innerTrivia);

            // If everything is all on one line, then make sure the spans are the same, to compensate
            // for the expression potentially being longer than the variable name.
            var lineSpan = originalSpan.EndLinePosition.Line - originalSpan.StartLinePosition.Line;
            if (lineSpan == 0)
            {
                var padding = node.Span.Length - memberAccess.FullSpan.Length;
                var trailingTrivia =
                    SyntaxFactory.TriviaList(memberAccess.GetTrailingTrivia())
                    .Add(SyntaxFactory.Whitespace(new string(' ', padding)))
                    .AddRange(node.GetTrailingTrivia());

                return
                    memberAccess
                    .WithLeadingTrivia(node.GetLeadingTrivia())
                    .WithTrailingTrivia(trailingTrivia);
            }
            else
            {
                // If everything isn't on the same line, we need to pad out the last line.
                var padding =
                    originalSpan.EndLinePosition.Character -
                    originalSpan.StartLinePosition.Character;

                var trailingTrivia =
                    SyntaxFactory.TriviaList(memberAccess.GetTrailingTrivia())
                    .Add(SyntaxFactory.Whitespace(new string(' ', padding)))
                    .AddRange(node.GetTrailingTrivia());

                return
                    memberAccess
                    .WithLeadingTrivia(node.GetLeadingTrivia())
                    .WithTrailingTrivia(trailingTrivia);
            }
        }
开发者ID:huoxudong125,项目名称:Mvc,代码行数:51,代码来源:ExpressionRewriter.cs

示例2: PrepareClassCacheEntry

 private static void PrepareClassCacheEntry(IdentifierNameSyntax newClassModifier,
     ClassDeclarationSyntax classDeclaration,
     IdentifierNameSyntax newInterfaceModifier)
 {
     if (!ClassCache.ContainsKey(newClassModifier.Identifier.Text))
     {
         var baseList = classDeclaration.BaseList ?? SyntaxFactory.BaseList();
         ClassCache.Add(newClassModifier.Identifier.Text,
             SyntaxFactory.ClassDeclaration(
                 SyntaxFactory.List(new[] {
                     GetCompilerGeneratedAttribute()
                         .WithTrailingTrivia(
                             NewLineCharacter,
                             TabCharacter)
                 }),
                 SyntaxFactory.TokenList(),
                 newClassModifier.Identifier
                     .WithTrailingTrivia(WhitespaceCharacter)
                     .WithLeadingTrivia(WhitespaceCharacter),
                 null,
                 baseList.AddTypes(
                     SyntaxFactory.SimpleBaseType(
                         newInterfaceModifier
                             .WithLeadingTrivia(WhitespaceCharacter)
                             .WithTrailingTrivia(WhitespaceCharacter))),
                 SyntaxFactory.List<TypeParameterConstraintClauseSyntax>(),
                 SyntaxFactory.List<MemberDeclarationSyntax>())
                 .WithLeadingTrivia(TabCharacter)
                 .WithTrailingTrivia(NewLineCharacter));
     }
 }
开发者ID:ffMathy,项目名称:pinvoke-1,代码行数:31,代码来源:Program.cs


注:本文中的Microsoft.CodeAnalysis.CSharp.Syntax.IdentifierNameSyntax.WithLeadingTrivia方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。