Description of the project: Swift-DocC is the canonical documentation compiler for the Swift OSS project. However Swift-DocC is not Swift specific and uses SymbolKit's languaguage agnostic JSON-based symbol graph format to understand which symbols are available in the code, this way any language can be supported by Swift-DocC as long as there is a symbol graph generator.
Clang supports symbol graph generation for C and Objective-C as described in [RFC] clang support for API information generation in JSON.
Currently the emitted symbol graph format does not support various C++ constructs such as templates and exceptions and the symbol graph generator does not fully understand C++. This project aims to introduce support for various C++ constructs in the symbol graph format and to implement support for generating this data in clang.
Expected result: Adding the necessary support to clang's symbol graph generator and in libclang for describing categories of symbols defined in other modules. This will involve additions to SymbolKit that would need to be discussed with that community.
Desirable skills: Intermediate C++ programming skills; familiarity with clang and Objective-C are assets but not required.
Project size: Large
Difficulty: Medium/Hard
Confirmed Mentors: Daniel Grumberg, Zixu Wang, Juergen Ributzka