Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions gsoc2025/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -303,6 +303,33 @@ Enhance Swift Testing's reporting of test results to the console/terminal. Consi

- [Stuart Montgomery](https://github.com/stmontgomery)

### Improved command line tool documentation

**Project size**: 175 hours (medium)

**Estimated difficulty**: Intermediate

**Recommended skills**

- Basic proficiency in Swift.

**Description**

Swift Argument Parser recently added a [command plugin](https://github.com/apple/swift-argument-parser/pull/694) to generate documentation markup for a command line tool.
This plugin could be improved by providing support for generating separate pages for each command and by leveraging additional markdown syntax to organize command line flags into sections and display possible values and default values.

Beyond the markdown output, this plugin could be further improved by generating a ["symbol graph"](https://github.com/swiftlang/swift-docc-symbolkit/tree/main) that describe each command and its flags, options, and subcommands. By describing the commands' structure, tools like [Swift DocC](https://github.com/swiftlang/swift-docc/tree/main) can further customize the display of command line tool documentation, support links to individual flags, and allow developers to extend or override the documentation for individual flags in ways that isn't overwritten when regenerating the documentation markup from the plugin. If time allows, prototype some enhancement to command line documentation in Swift DocC that leverage the information from the command symbol graph file.

**Expected outcomes/benefits/deliverables**

- A richer markdown output from the plugin.
- Support for generating separate pages for each command.
- Output a supplementary symbol graph file that describe the commands' structure.

**Potential mentors**

- [David Rönnqvist](https://github.com/d-ronnqvist)

### Example project name

**Project size**: N hours
Expand Down