示例#1
0
		/// <summary>
		///   Normalizes the <paramref name="classDeclaration" />.
		/// </summary>
		public override SyntaxNode VisitClassDeclaration(ClassDeclarationSyntax classDeclaration)
		{
			classDeclaration = (ClassDeclarationSyntax)base.VisitClassDeclaration(classDeclaration);

			if (classDeclaration.Modifiers.Any(SyntaxKind.PartialKeyword))
				return classDeclaration;

			var partialKeyword = SyntaxFactory.Token(SyntaxKind.PartialKeyword).WithTrailingSpace();
			partialKeyword = partialKeyword.WithLeadingTrivia(classDeclaration.Keyword.LeadingTrivia);
			classDeclaration = classDeclaration.WithModifiers(classDeclaration.Modifiers.Add(partialKeyword));
			return classDeclaration.WithKeyword(classDeclaration.Keyword.WithLeadingSpace());
		}
        private static SyntaxNode HandleClassDeclaration(ClassDeclarationSyntax node)
        {
            SyntaxToken triviaToken = node.Keyword;
            if (triviaToken.IsMissing)
            {
                return null;
            }

            SyntaxKind defaultVisibility = IsNestedType(node) ? SyntaxKind.PrivateKeyword : SyntaxKind.InternalKeyword;
            SyntaxTokenList modifiers = DeclarationModifiersHelper.AddModifier(node.Modifiers, ref triviaToken, defaultVisibility);
            return node
                .WithKeyword(triviaToken)
                .WithModifiers(modifiers)
                .WithoutFormatting();
        }