private List <MethodArgument> GetIndexerArguments(BracketedParameterListSyntax node)
        {
            var items      = new List <MethodArgument>();
            var parameters = node.ChildNodes().OfType <ParameterSyntax>();

            foreach (var parameter in parameters)
            {
                var isIn         = parameter.ChildTokens().Any(x => x.Kind() == SyntaxKind.InKeyword);
                var isOut        = parameter.ChildTokens().Any(x => x.Kind() == SyntaxKind.OutKeyword);
                var isByRef      = parameter.ChildTokens().Any(x => x.Kind() == SyntaxKind.RefKeyword);
                var isByVal      = !isByRef;
                var isOptional   = parameter.ChildNodes().Any(x => x is EqualsValueClauseSyntax);
                var isParamArray = parameter.ChildTokens().Any(x => x.Kind() == SyntaxKind.ParamsKeyword);

                var parameterName = parameter.ChildTokens().FirstOrDefault(x => x.Kind() == SyntaxKind.IdentifierToken).ToString();
                var parameterType = parameter.ChildNodes().FirstOrDefault().ToString();

                items.Add(new MethodArgument
                {
                    IsByVal      = isByVal,
                    IsByRef      = isByRef,
                    IsIn         = isIn,
                    IsOut        = isOut,
                    IsOptional   = isOptional,
                    IsParamArray = isParamArray,
                    DefineName   = parameterName,
                    DefineType   = RemoveNamespace(parameterType),
                });
            }

            return(items);
        }