A framework and CLI tool for interacting with SourceKit to parse Swift AST, extract docs, and analyze Swift/Objective-C code.
SourceKitten is a framework and command-line tool that interfaces with Apple's SourceKit to analyze Swift and Objective-C code. It provides capabilities like parsing abstract syntax trees, extracting documentation comments, and generating syntax highlighting data, enabling developers to build advanced code analysis tools.
Swift and Objective-C developers building linters, documentation generators, code completion engines, refactoring tools, or any tool requiring programmatic code analysis.
It offers a clean, Swift-native API to SourceKit's powerful code analysis features, which are otherwise difficult to access directly, making it the go-to library for Swift tooling development.
An adorable little framework and command line tool for interacting with SourceKit.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Directly links with SourceKit to parse Swift abstract syntax trees, enabling precise code analysis as demonstrated by the 'structure' command outputting hierarchical JSON data.
Extracts comment docs from Swift or Objective-C and outputs JSON, used by popular tools like Jazzy for generating documentation from source code.
Provides syntax token information in JSON format via the 'syntax' command, useful for building custom syntax highlighting engines or editor plugins.
Allows execution of custom SourceKit requests via YAML configuration, offering advanced flexibility for tool developers needing low-level control.
Requires Xcode 13.3 or later or specific Swift toolchains, making setup complex and restricting use to Apple ecosystems, as noted in the installation instructions.
The SourceKittenFramework API is not designed to interface with Objective-C, limiting integration in mixed-language projects despite supporting Objective-C documentation extraction.
Tied to Apple's SourceKit, which can change with Xcode updates, leading to potential breaking changes in dependent tools, as implied by the note on supporting previous versions.