swiftlang / swiftlang/swift-syntax

Add documentation for syntax nodes and their children

Open
#1,528 6 comments 0 reactions 0 assignees View on GitHub
good first issue
Dominant language
Swift
Stars
3.7k
Forks
553
Avg merge
5d 13h
Merged PRs (30d)
16

Description

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.

https://github.com/apple/swift-syntax/pull/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`
- [x] `AssociatedtypeDeclSyntax` @whiteio
- [ ] `AttributedTypeSyntax`
- [ ] `AttributeSyntax`
- [ ] `AvailabilityArgumentSyntax`
- [ ] `AvailabilityConditionSyntax`
- [ ] `AvailabilityEntrySyntax`
- [ ] `AvailabilityLabeledArgumentSyntax`
- [ ] `AvailabilityVersionRestrictionListEntrySyntax`
- [ ] `AvailabilityVersionRestrictionSyntax`
- [ ] `AwaitExprSyntax`
- [ ] `BackDeployedAttributeSpecListSyntax`
- [ ] `BinaryOperatorExprSyntax`
- [ ] `BooleanLiteralExprSyntax`
- [ ] `BorrowExprSyntax`
- [ ] `BreakStmtSyntax`
- [ ] `CaseItemSyntax`
- [ ] `CatchClauseSyntax`
- [ ] `CatchItemSyntax`
- [x] `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`
- [x] `DeinitializerDeclSyntax` @whiteio
- [ ] `DerivativeRegistrationAttributeArgumentsSyntax`
- [ ] `DesignatedTypeElementSyntax`
- [ ] `DictionaryElementSyntax`
- [ ] `DictionaryExprSyntax`
- [ ] `DictionaryTypeSyntax`
- [ ] `DifferentiabilityParamsClauseSyntax`
- [ ] `DifferentiabilityParamsSyntax`
- [ ] `DifferentiabilityParamSyntax`
- [ ] `DifferentiableAttributeArgumentsSyntax`
- [ ] `DiscardAssignmentExprSyntax`
- [ ] `DocumentationAttributeArgumentSyntax`
- [ ] `DoStmtSyntax`
- [ ] `DynamicReplacementArgumentsSyntax`
- [ ] `EditorPlaceholderDeclSyntax`
- [ ] `EditorPlaceholderExprSyntax`
- [ ] `EnumCaseDeclSyntax`
- [ ] `EnumCaseElementSyntax`
- [ ] `EnumCaseParameterClauseSyntax`
- [ ] `EnumCaseParameterSyntax`
- [x] `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`
- [x] `ImportDeclSyntax` @whiteio
- [ ] `InfixOperatorExprSyntax`
- [ ] `InheritedTypeSyntax`
- [ ] `InitializerClauseSyntax`
- [x] `InitializerDeclSyntax` @ahoppen
- [ ] `InOutExprSyntax`
- [ ] `IntegerLiteralExprSyntax`
- [x] `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`
- [x] `ProtocolDeclSyntax` @whiteio
- [ ] `QualifiedDeclNameSyntax`
- [ ] `RegexLiteralExprSyntax`
- [ ] `RepeatWhileStmtSyntax`
- [ ] `ReturnClauseSyntax`
- [ ] `ReturnStmtSyntax`
- [ ] `SameTypeRequirementSyntax` @andrewjl
- [ ] `SequenceExprSyntax`
- [ ] `SimpleTypeIdentifierSyntax`
- [ ] `SourceFileSyntax`
- [ ] `SpecializeExprSyntax`
- [ ] `StringLiteralExprSyntax`
- [ ] `StringSegmentSyntax`
- [x] `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`

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.