Q: Editing SwiftPM Plugin
A: You can use .package(path:)
for local dependency
Q: Debugging SwiftPM Plugin
A SwiftPM Plugin contains 2 parts of code:
- Your
@main struct XX: CommandPlugin
logic code which runs underSwift-DocC
(in your target Package's.build/plugins/Swift-DocC/cache/Swift-DocC
location) - and SwiftPM code running under the toolchain's
swift-package
When you run swift package preview-documentation
, it will actually run swift-package
first and then swift-package
will launch your CommandPlugin.
In the execution of your CommandPlugin
, you may call some API PackagePlugin
has provided to you like PackageManager.getSymbolGraph
, such API will be implemented and run in swift-package
and then pass the data back to and your plugin.
swift-package ->
-> <Your CommandPlugin>
swift-package <-
Depending on which part of code interests you, you can debug swift-package or your plugin target(Swift-DocC here).
Correct me if any part is wrong. And do you know if we have any better official resource on how to debug Plugin code? @Max_Desiatov