public override SyntaxNode VisitPropertyStatement(PropertyStatementSyntax node) { if (IsInterfaceMember(node)) { return(node); } return(EnsureVisibility(node, node.Modifiers, (x, l) => x.WithModifiers(l), () => SyntaxKind.PublicKeyword)); }
public override void VisitPropertyStatement(PropertyStatementSyntax node) { if (_targetPatternRegEx.Match(node.Identifier.ToString()).Success) { if (FilterByType(node.AsClause)) { RecordMatchAndContext(node, BlockType.None); } } base.VisitPropertyStatement(node); }
// 自動実装プロパティとか 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); }
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, }); }
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);