Skip to content

Add documentation for syntax nodes and their children #1528

Open
@ahoppen

Description

@ahoppen

SwiftSyntax’s nodes are currently mostly lacking any documentation. It would be a great community effort to add a description to to every node and every child. Writing documentation for some nodes and children will be easier than for other. The expectation is that if there are any non-obvious things to point out, the documentation should do so. I am happy to help if the semantics of a node or a child are not clear.

To make sure we don’t have multiple PRs adding documentation for the same node please add a comment to this issue with the node(s) you are working on. If you have commit access to this repository, you can also assign a node modify the issue and assign a node to yourself by marking it as ticked and adding your name behind it.

#1527 contains an example of how the documentation of a syntax node could look like.

  • AccessorBlockSyntax
  • AccessorDeclSyntax
  • AccessorEffectSpecifiersSyntax
  • AccessorParameterSyntax
  • AccessPathComponentSyntax
  • ActorDeclSyntax
  • ArrayElementSyntax
  • ArrayExprSyntax
  • ArrayTypeSyntax
  • ArrowExprSyntax
  • AsExprSyntax
  • AssignmentExprSyntax
  • AssociatedtypeDeclSyntax @whiteio
  • AttributedTypeSyntax
  • AttributeSyntax
  • AvailabilityArgumentSyntax
  • AvailabilityConditionSyntax
  • AvailabilityEntrySyntax
  • AvailabilityLabeledArgumentSyntax
  • AvailabilityVersionRestrictionListEntrySyntax
  • AvailabilityVersionRestrictionSyntax
  • AwaitExprSyntax
  • BackDeployedAttributeSpecListSyntax
  • BinaryOperatorExprSyntax
  • BooleanLiteralExprSyntax
  • BorrowExprSyntax
  • BreakStmtSyntax
  • CaseItemSyntax
  • CatchClauseSyntax
  • CatchItemSyntax
  • ClassDeclSyntax @whiteio
  • ClassRestrictionTypeSyntax
  • ClosureCaptureItemSpecifierSyntax
  • ClosureCaptureItemSyntax
  • ClosureCaptureSignatureSyntax
  • ClosureExprSyntax
  • ClosureParameterClauseSyntax
  • ClosureParameterSyntax
  • ClosureParamSyntax
  • ClosureSignatureSyntax
  • CodeBlockItemSyntax
  • CodeBlockSyntax
  • CompositionTypeElementSyntax
  • CompositionTypeSyntax
  • ConditionElementSyntax
  • ConformanceRequirementSyntax @andrewjl
  • ConstrainedSugarTypeSyntax
  • ContinueStmtSyntax
  • ConventionAttributeArgumentsSyntax
  • ConventionWitnessMethodAttributeArgumentsSyntax
  • DeclModifierDetailSyntax
  • DeclModifierSyntax
  • DeclNameArgumentsSyntax
  • DeclNameArgumentSyntax
  • DeclNameSyntax
  • DeferStmtSyntax
  • DeinitializerDeclSyntax @whiteio
  • DerivativeRegistrationAttributeArgumentsSyntax
  • DesignatedTypeElementSyntax
  • DictionaryElementSyntax
  • DictionaryExprSyntax
  • DictionaryTypeSyntax
  • DifferentiabilityParamsClauseSyntax
  • DifferentiabilityParamsSyntax
  • DifferentiabilityParamSyntax
  • DifferentiableAttributeArgumentsSyntax
  • DiscardAssignmentExprSyntax
  • DocumentationAttributeArgumentSyntax
  • DoStmtSyntax
  • DynamicReplacementArgumentsSyntax
  • EditorPlaceholderDeclSyntax
  • EditorPlaceholderExprSyntax
  • EnumCaseDeclSyntax
  • EnumCaseElementSyntax
  • EnumCaseParameterClauseSyntax
  • EnumCaseParameterSyntax
  • EnumDeclSyntax @andrewjl
  • ExposeAttributeArgumentsSyntax
  • ExpressionPatternSyntax
  • ExpressionSegmentSyntax
  • ExpressionStmtSyntax
  • ExtensionDeclSyntax
  • FallthroughStmtSyntax
  • FloatLiteralExprSyntax
  • ForcedValueExprSyntax
  • ForgetStmtSyntax
  • ForInStmtSyntax
  • FunctionCallExprSyntax
  • FunctionDeclSyntax
  • FunctionEffectSpecifiersSyntax
  • FunctionParameterSyntax
  • FunctionSignatureSyntax
  • FunctionTypeSyntax
  • GenericArgumentClauseSyntax @andrewjl
  • GenericArgumentSyntax @andrewjl
  • GenericParameterClauseSyntax @andrewjl
  • GenericParameterSyntax @andrewjl
  • GenericRequirementSyntax @andrewjl
  • GenericWhereClauseSyntax @andrewjl
  • GuardStmtSyntax
  • IdentifierExprSyntax
  • IdentifierPatternSyntax
  • IfConfigClauseSyntax
  • IfConfigDeclSyntax
  • IfExprSyntax
  • ImplementsAttributeArgumentsSyntax
  • ImplicitlyUnwrappedOptionalTypeSyntax
  • ImportDeclSyntax @whiteio
  • InfixOperatorExprSyntax
  • InheritedTypeSyntax
  • InitializerClauseSyntax
  • InitializerDeclSyntax @ahoppen
  • InOutExprSyntax
  • IntegerLiteralExprSyntax
  • IsExprSyntax @whiteio
  • IsTypePatternSyntax
  • KeyPathComponentSyntax
  • KeyPathExprSyntax
  • KeyPathOptionalComponentSyntax
  • KeyPathPropertyComponentSyntax
  • KeyPathSubscriptComponentSyntax
  • LabeledSpecializeEntrySyntax
  • LabeledStmtSyntax
  • LayoutRequirementSyntax @andrewjl
  • MacroDeclSyntax
  • MacroExpansionDeclSyntax
  • MacroExpansionExprSyntax
  • MatchingPatternConditionSyntax
  • MemberAccessExprSyntax
  • MemberDeclBlockSyntax
  • MemberDeclListItemSyntax
  • MemberTypeIdentifierSyntax
  • MetatypeTypeSyntax
  • MissingDeclSyntax
  • MissingExprSyntax
  • MissingPatternSyntax
  • MissingStmtSyntax
  • MissingSyntax
  • MissingTypeSyntax
  • MoveExprSyntax
  • MultipleTrailingClosureElementSyntax
  • NamedOpaqueReturnTypeSyntax
  • NilLiteralExprSyntax
  • ObjCSelectorPieceSyntax
  • OpaqueReturnTypeOfAttributeArgumentsSyntax
  • OperatorDeclSyntax
  • OperatorPrecedenceAndTypesSyntax
  • OptionalBindingConditionSyntax
  • OptionalChainingExprSyntax
  • OptionalTypeSyntax
  • OriginallyDefinedInArgumentsSyntax
  • PackElementExprSyntax
  • PackExpansionExprSyntax
  • PackExpansionTypeSyntax
  • PackReferenceTypeSyntax
  • ParameterClauseSyntax
  • PatternBindingSyntax
  • PostfixIfConfigExprSyntax
  • PostfixUnaryExprSyntax
  • PoundSourceLocationArgsSyntax
  • PoundSourceLocationSyntax
  • PrecedenceGroupAssignmentSyntax
  • PrecedenceGroupAssociativitySyntax
  • PrecedenceGroupDeclSyntax
  • PrecedenceGroupNameElementSyntax
  • PrecedenceGroupRelationSyntax
  • PrefixOperatorExprSyntax
  • PrimaryAssociatedTypeClauseSyntax
  • PrimaryAssociatedTypeSyntax
  • ProtocolDeclSyntax @whiteio
  • QualifiedDeclNameSyntax
  • RegexLiteralExprSyntax
  • RepeatWhileStmtSyntax
  • ReturnClauseSyntax
  • ReturnStmtSyntax
  • SameTypeRequirementSyntax @andrewjl
  • SequenceExprSyntax
  • SimpleTypeIdentifierSyntax
  • SourceFileSyntax
  • SpecializeExprSyntax
  • StringLiteralExprSyntax
  • StringSegmentSyntax
  • StructDeclSyntax @andrewjl
  • SubscriptDeclSyntax
  • SubscriptExprSyntax
  • SuperRefExprSyntax
  • SwitchCaseLabelSyntax
  • SwitchCaseSyntax
  • SwitchDefaultLabelSyntax
  • SwitchExprSyntax
  • TargetFunctionEntrySyntax
  • TernaryExprSyntax
  • ThrowStmtSyntax
  • TryExprSyntax
  • TupleExprElementSyntax
  • TupleExprSyntax
  • TuplePatternElementSyntax
  • TuplePatternSyntax
  • TupleTypeElementSyntax
  • TupleTypeSyntax
  • TypealiasDeclSyntax
  • TypeAnnotationSyntax
  • TypeEffectSpecifiersSyntax
  • TypeExprSyntax
  • TypeInheritanceClauseSyntax
  • TypeInitializerClauseSyntax
  • UnavailableFromAsyncArgumentsSyntax
  • UnderscorePrivateAttributeArgumentsSyntax
  • UnresolvedAsExprSyntax
  • UnresolvedIsExprSyntax
  • UnresolvedPatternExprSyntax
  • UnresolvedTernaryExprSyntax
  • ValueBindingPatternSyntax
  • VariableDeclSyntax
  • VersionTupleSyntax
  • WhereClauseSyntax
  • WhileStmtSyntax
  • WildcardPatternSyntax
  • YieldExprListElementSyntax
  • YieldListSyntax
  • YieldStmtSyntax

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions