On this page
Resolving selfdoc's directives against Swift source: public declarations, doc comments and struct members, read without the Swift toolchain present.
#internal/extractors/swift
#internal/extractors/swift
Package swift resolves selfdoc's directives against Swift source.
Nothing from the Swift toolchain is required: the file is read with patterns. The four directives it serves are ref, prose-desc, table-schema and table-config.
#Explicit visibility
Swift's default visibility is internal, so what belongs on a reference page is what says public or open, and that is what the scanners look for. The one place the keyword is not required is inside a public struct, where a field is public without restating it -- and inside a symbol a page asked about by name, where the question settles what is being documented.
#Doc comments
A /// block documents the declaration directly beneath it, and Swift's own item syntax is rendered: the individual "- Parameter name:" items and the "- Parameters:" block with its indented sub-items accumulate into one section, "- Returns:" and "- Throws:" render bold labels, every callout keyword from Note to TODO renders its own, and a “Symbol“ reference becomes the code span the rest of the site writes.
#Extractor
type Extractor structExtractor reads Swift source.
#New
func New() extractors.ExtractorNew builds the Swift extractor.
#Extractor.Detect
func (e *Extractor) Detect(dir string) boolDetect reports whether dir is a Swift package, by its manifest.
#Extractor.FileExtensions
func (e *Extractor) FileExtensions() []string { return []string{".swift"} }FileExtensions is the one extension Swift source carries.
#Extractor.ResolvePath
func (e *Extractor) ResolvePath(pathArg string, sourcePaths []string, baseDir string) stringResolvePath resolves a directive's path argument to a Swift file or directory.
#Extractor.PublicSymbols
func (e *Extractor) PublicSymbols(file string) ([]string, error)PublicSymbols lists the public and open symbols a Swift file exports.
#Extractor.ModuleDocstring
func (e *Extractor) ModuleDocstring(path string) (string, error)ModuleDocstring is the module-level doc comment at the top of a Swift file.
#Extractor.SymbolDetails
func (e *Extractor) SymbolDetails(file, symbol string) (*extractors.SymbolDetails, error)SymbolDetails reports what a Swift file says about one function's parameters and return value. A dotted name selects a member of a type ("Router.handle").