Open Source SourceKitClient

Originator:jp
Number:rdar://34351063 Date Originated:09-Sep-2017 02:11 PM
Status:Open Resolved:
Product:Developer Tools Product Version:Xcode 8.0 & Later
Classification:Enhancement Reproducible:Always
 
Summary:
Xcode 8 introduced an intermediate library to communicate with multiple versions of sourcekitd.framework, which appears to be named SourceKitClient.

By my best deductions, it appears that many operations related to either managing projects with mixed Swift versions or even just operations like whole-module or cross-module indexing requires orchestration by this closed source component.

It’s my guess as well that SourceKitClient is a critical component to the “global refactoring” capabilities mentioned in Xi Ge’s recent blog post on Swift.org: https://swift.org/blog/swift-local-refactoring/

> Global refactorings, which change code cross multiple files (such as Global Rename), currently require special coordination by Xcode and currently cannot be implemented on their own within the Swift codebase.

If the goal for SourceKit being OSS is to allow 3rd parties to build better Swift tooling (e.g. as IDEs, documentation generators, linters, code generators, etc.) then its potential for doing so is severely limited by requiring a closed source intermediate component to orchestrate actions & flows for many operations.

Therefore I’m humbly requesting that SourceKitClient be made open source.

Thank you for your consideration.

Steps to Reproduce:
N/A

Expected Results:
N/A

Actual Results:
N/A

Version:
Xcode 8.0 & Later

Notes:

Comments


Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!