public override SyntaxNode VisitPropertyStatement(PropertyStatementSyntax node)
            {
                if (IsInterfaceMember(node))
                {
                    return(node);
                }

                return(EnsureVisibility(node, node.Modifiers, (x, l) => x.WithModifiers(l), () => SyntaxKind.PublicKeyword));
            }
Exemplo n.º 2
0
        public override void VisitPropertyStatement(PropertyStatementSyntax node)
        {
            if (_targetPatternRegEx.Match(node.Identifier.ToString()).Success)
            {
                if (FilterByType(node.AsClause))
                {
                    RecordMatchAndContext(node, BlockType.None);
                }
            }

            base.VisitPropertyStatement(node);
        }
Exemplo n.º 3
0
        // 自動実装プロパティとか
        public override void VisitPropertyStatement(PropertyStatementSyntax node)
        {
            // VisitPropertyBlock() から来た場合は、二重登録になってしまうので飛ばす
            if (node.Parent is PropertyBlockSyntax)
            {
                base.VisitPropertyStatement(node);
                return;
            }

            var startLength = node.Span.Start;
            var endLength   = node.Span.End;

            WalkPropertyBlockOrPropertyStatement(node, startLength, endLength);

            base.VisitPropertyStatement(node);
        }
Exemplo n.º 4
0
        private void WalkPropertyBlockOrPropertyStatement(PropertyStatementSyntax node, int startLength, int endLength)
        {
            var defineName      = node.ChildTokens().FirstOrDefault(x => x.Kind() == SyntaxKind.IdentifierToken).ToString();
            var asNode          = node.ChildNodes().OfType <SimpleAsClauseSyntax>().FirstOrDefault();
            var defineType      = asNode.ChildNodes().FirstOrDefault().ToString();
            var parentNamespace = GetNamespace(DefineKinds.Property, startLength, endLength);

            // Property Name As String の場合、カッコが無い → ParameterListSyntax タグがない
            // Property Name() As String の場合、カッコがある → ParameterListSyntax タグがある(個数0)
            // Default Property Item(i As Index) As String の場合、カッコがある → ParameterListSyntax タグがある(個数1以上)
            var methodArguments = new List <MethodArgument>();

            if (node.ChildNodes().OfType <ParameterListSyntax>().Any())
            {
                if (node.ChildNodes().OfType <ParameterListSyntax>().FirstOrDefault().ChildNodes().Any())
                {
                    var listNode = node.ChildNodes().OfType <ParameterListSyntax>().FirstOrDefault();
                    methodArguments = GetMethodArguments(listNode);
                }
            }

            var isIndexer = methodArguments.Any();

            UserDefinitions.Add(new UserDefinition
            {
                DefineKinds     = isIndexer ? DefineKinds.Indexer : DefineKinds.Property,
                Namespace       = parentNamespace,
                DefineName      = defineName,
                DefineFullName  = $"{parentNamespace}.{defineName}",
                MethodArguments = methodArguments,
                ReturnType      = ConvertCSharpType(defineType),
                SourceFile      = SourceFile,
                StartLength     = startLength,
                EndLength       = endLength,
            });
        }
Exemplo n.º 5
0
        public override void VisitPropertyStatement(PropertyStatementSyntax node)
        {
            if (identifierNameRegEx.Match(node.Identifier.ToString()).Success)
            {
                //var nodeInitializer = node.$safeitemname$;
                //var nodeNames = nodeInitializer.Identifier;

                var     asClause     = node.AsClause;
                var     asClauseType = asClause.Type();
                Boolean addField     = false;

                switch (asClauseType.ToString())
                {
                case "Boolean":
                    if (IsBoolean)
                    {
                        addField = true;
                    }
                    break;

                case "Date":
                    if (IsDate)
                    {
                        addField = true;
                    }
                    break;

                case "DateTime":
                    if (IsDateTime)
                    {
                        addField = true;
                    }
                    break;

                case "Int16":
                    if (IsInt16)
                    {
                        addField = true;
                    }
                    break;

                case "Int32":
                    if (IsInt32)
                    {
                        addField = true;
                    }
                    break;

                case "Integer":
                    if (IsInteger)
                    {
                        addField = true;
                    }
                    break;

                case "Long":
                    if (IsLong)
                    {
                        addField = true;
                    }
                    break;

                case "Single":
                    if (IsSingle)
                    {
                        addField = true;
                    }
                    break;

                case "String":
                    if (IsString)
                    {
                        addField = true;
                    }
                    break;

                default:
                    if (IsOtherType)
                    {
                        addField = true;
                    }
                    //if (IsOtherType && !displayStructure) addField = true;

                    break;
                }

                if (addField)
                {
                    string messageContext = "";

                    if (DisplayClassOrModuleName)
                    {
                        messageContext = Helpers.VB.GetContainingType(node);
                    }

                    if (DisplayMethodName)
                    {
                        messageContext += string.Format(" Method:({0, -35})", Helpers.VB.GetContainingMethod(node));
                    }

                    Messages.AppendLine(String.Format("{0} {1}",
                                                      messageContext,
                                                      node.ToString()));
                }
            }

            base.VisitPropertyStatement(node);
        }
 public override void VisitPropertyStatement(PropertyStatementSyntax node) =>
 TryAddPublicApi(node);