Skip to content
internal/extractors/swift
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

Go go
type Extractor struct

Extractor reads Swift source.

#New

Go go
func New() extractors.Extractor

New builds the Swift extractor.

#Extractor.Detect

Go go
func (e *Extractor) Detect(dir string) bool

Detect reports whether dir is a Swift package, by its manifest.

#Extractor.FileExtensions

Go go
func (e *Extractor) FileExtensions() []string { return []string{".swift"} }

FileExtensions is the one extension Swift source carries.

#Extractor.ResolvePath

Go go
func (e *Extractor) ResolvePath(pathArg string, sourcePaths []string, baseDir string) string

ResolvePath resolves a directive's path argument to a Swift file or directory.

#Extractor.PublicSymbols

Go go
func (e *Extractor) PublicSymbols(file string) ([]string, error)

PublicSymbols lists the public and open symbols a Swift file exports.

#Extractor.ModuleDocstring

Go go
func (e *Extractor) ModuleDocstring(path string) (string, error)

ModuleDocstring is the module-level doc comment at the top of a Swift file.

#Extractor.SymbolDetails

Go go
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").

Search