Ejemplo n.º 1
0
        private static async Task <Document> GetTransformedDocumentAsync(Document document, Diagnostic diagnostic, CancellationToken cancellationToken)
        {
            var syntaxRoot = await document.GetSyntaxRootAsync(cancellationToken).ConfigureAwait(false);

            var semanticModel = await document.GetSemanticModelAsync(cancellationToken).ConfigureAwait(false);

            var typeDeclarationNode = syntaxRoot.FindNode(diagnostic.Location.SourceSpan) as TypeDeclarationSyntax;

            if (typeDeclarationNode == null)
            {
                return(document);
            }

            var symbol = semanticModel.GetDeclaredSymbol(typeDeclarationNode);
            var accessModifierKinds = GetMissingAccessModifiers(symbol.DeclaredAccessibility);

            var keywordToken = typeDeclarationNode.Keyword;

            var replacementModifiers = DeclarationModifiersHelper.AddModifiers(typeDeclarationNode.Modifiers, ref keywordToken, accessModifierKinds);
            var replacementNode      = ReplaceModifiers(typeDeclarationNode, replacementModifiers);

            replacementNode = ReplaceKeyword(replacementNode, keywordToken);
            var newSyntaxRoot = syntaxRoot.ReplaceNode(typeDeclarationNode, replacementNode);

            return(document.WithSyntaxRoot(newSyntaxRoot));
        }
Ejemplo n.º 2
0
        private static SyntaxNode HandleConstructorDeclaration(ConstructorDeclarationSyntax node)
        {
            SyntaxToken triviaToken = node.Identifier;

            if (triviaToken.IsMissing)
            {
                return(null);
            }

            SyntaxTokenList modifiers = DeclarationModifiersHelper.AddModifier(node.Modifiers, ref triviaToken, SyntaxKind.PrivateKeyword);

            return(node
                   .WithIdentifier(triviaToken)
                   .WithModifiers(modifiers)
                   .WithoutFormatting());
        }
Ejemplo n.º 3
0
        private static SyntaxNode HandleIndexerDeclaration(IndexerDeclarationSyntax node)
        {
            TypeSyntax type = node.Type;

            if (type == null || type.IsMissing)
            {
                return(null);
            }

            SyntaxTokenList modifiers = DeclarationModifiersHelper.AddModifier(node.Modifiers, ref type, SyntaxKind.PrivateKeyword);

            return(node
                   .WithType(type)
                   .WithModifiers(modifiers)
                   .WithoutFormatting());
        }
Ejemplo n.º 4
0
        private static SyntaxNode HandleConversionOperatorDeclaration(ConversionOperatorDeclarationSyntax node)
        {
            SyntaxToken triviaToken = node.ImplicitOrExplicitKeyword;

            if (triviaToken.IsMissing)
            {
                return(null);
            }

            SyntaxTokenList modifiers = DeclarationModifiersHelper.AddModifier(node.Modifiers, ref triviaToken, SyntaxKind.PublicKeyword);

            return(node
                   .WithImplicitOrExplicitKeyword(triviaToken)
                   .WithModifiers(modifiers)
                   .WithoutFormatting());
        }
Ejemplo n.º 5
0
        private static SyntaxNode HandleFieldDeclaration(FieldDeclarationSyntax node)
        {
            VariableDeclarationSyntax declaration = node.Declaration;

            if (declaration == null || declaration.IsMissing)
            {
                return(null);
            }

            SyntaxTokenList modifiers = DeclarationModifiersHelper.AddModifier(node.Modifiers, ref declaration, SyntaxKind.PrivateKeyword);

            return(node
                   .WithDeclaration(declaration)
                   .WithModifiers(modifiers)
                   .WithoutFormatting());
        }
Ejemplo n.º 6
0
        private static SyntaxNode HandleEventFieldDeclaration(EventFieldDeclarationSyntax node)
        {
            SyntaxToken triviaToken = node.EventKeyword;

            if (triviaToken.IsMissing)
            {
                return(null);
            }

            SyntaxTokenList modifiers = DeclarationModifiersHelper.AddModifier(node.Modifiers, ref triviaToken, SyntaxKind.PrivateKeyword);

            return(node
                   .WithEventKeyword(triviaToken)
                   .WithModifiers(modifiers)
                   .WithoutFormatting());
        }
Ejemplo n.º 7
0
        private static SyntaxNode HandleDelegateDeclaration(DelegateDeclarationSyntax node)
        {
            SyntaxToken triviaToken = node.DelegateKeyword;

            if (triviaToken.IsMissing)
            {
                return(null);
            }

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

            return(node
                   .WithDelegateKeyword(triviaToken)
                   .WithModifiers(modifiers)
                   .WithoutFormatting());
        }
        private static void HandleDeclaration(SyntaxNodeAnalysisContext context)
        {
            var modifiers = DeclarationModifiersHelper.GetModifiers(context.Node as MemberDeclarationSyntax);

            CheckModifiersOrderAndReportDiagnostics(context, modifiers);
        }