示例#1
0
        public SyntaxNode ConvertFullNameTypesToBuiltInTypesHelper(SyntaxNode initialSource)
        {
            var builtInTypesMapDic = TypesMapItem.GetBuiltInTypesDic();

            var selectedTokensList =
                initialSource
                .DescendantNodes()
                .Where
                (
                    n =>
                    (n is IdentifierNameSyntax || n is QualifiedNameSyntax)
                    &&
                    builtInTypesMapDic.ContainsKey(n.WithoutTrivia().ToFullString())
                );

            return(initialSource.ReplaceNodes(
                       selectedTokensList,
                       (oldNode1, oldNode2) =>
            {
                if (oldNode1.Parent is QualifiedNameSyntax)
                {
                    return oldNode1;
                }
                if (oldNode1.Parent is MemberAccessExpressionSyntax)
                {
                    if ((oldNode1.Parent as MemberAccessExpressionSyntax).Expression != oldNode1)
                    {
                        return oldNode1;
                    }
                    var symbol = ProjectItemDetails.SemanticModel.GetSymbolInfo(oldNode1).Symbol;
                    if (symbol != null && symbol.Kind != SymbolKind.NamedType)
                    {
                        return oldNode1;
                    }
                }
                else if (oldNode1 is IdentifierNameSyntax == false && oldNode1 is QualifiedNameSyntax == false)
                {
                    return oldNode1;
                }
                else
                {
                    var symbol = ProjectItemDetails.SemanticModel.GetSymbolInfo(oldNode1).Symbol;
                    if (symbol != null && symbol.Kind != SymbolKind.NamedType)
                    {
                        return oldNode1;
                    }
                }

                return
                builtInTypesMapDic[oldNode1.WithoutTrivia().ToFullString()]
                .NewNode
                .WithLeadingTrivia(oldNode1.GetLeadingTrivia())
                .WithTrailingTrivia(oldNode1.GetTrailingTrivia());
            }
                       ));
        }
示例#2
0
            public SyntaxNode ConvertFullNameTypesToBuiltInTypesHelper(SyntaxNode initialSource)
            {
                var builtInTypesMapDic = TypesMapItem.GetBuiltInTypesDic();

                var selectedTokensList =
                    initialSource
                    .DescendantNodes()
                    .Where
                    (
                        n =>
                        (n is IdentifierNameSyntax || n is QualifiedNameSyntax)
                        &&
                        builtInTypesMapDic.ContainsKey(n.WithoutTrivia().ToFullString())
                    );

                return(initialSource.ReplaceNodes(
                           selectedTokensList,
                           (oldNode1, oldNode2) =>
                {
                    if (oldNode1.Parent is QualifiedNameSyntax)
                    {
                        return oldNode1;
                    }

                    if (oldNode1.Parent is MemberAccessExpressionSyntax)
                    {
                        if ((oldNode1.Parent as MemberAccessExpressionSyntax).Expression != oldNode1)
                        {
                            return oldNode1;
                        }
                        var symbol = SemanticModel.GetSymbolInfo(oldNode1).Symbol;
                        if (symbol != null && symbol.Kind != SymbolKind.NamedType)
                        {
                            return oldNode1;
                        }
                    }
                    else if (oldNode1 is IdentifierNameSyntax == false && oldNode1 is QualifiedNameSyntax == false)
                    {
                        return oldNode1;
                    }
                    else
                    {
                        var symbol = SemanticModel.GetSymbolInfo(oldNode1).Symbol;
                        if (symbol != null && symbol.Kind != SymbolKind.NamedType)
                        {
                            return oldNode1;
                        }
                    }

                    var lineSpan = oldNode1.GetFileLinePosSpan();

                    AddReport(new ChangesReport(oldNode1)
                    {
                        LineNumber = lineSpan.StartLinePosition.Line,
                        Column = lineSpan.StartLinePosition.Character,
                        Message = "Convert full name types to built in Types",
                        Generator = nameof(ConvertFullNameTypesToBuiltInTypes)
                    });

                    return
                    builtInTypesMapDic[oldNode1.WithoutTrivia().ToFullString()]
                    .NewNode
                    .WithLeadingTrivia(oldNode1.GetLeadingTrivia())
                    .WithTrailingTrivia(oldNode1.GetTrailingTrivia());
                }
                           ));
            }