@@ -553,10 +553,12 @@ struct SwiftASTManager::Implementation {
553553 std::shared_ptr<SwiftEditorDocumentFileMap> EditorDocs,
554554 std::shared_ptr<GlobalConfig> Config,
555555 std::shared_ptr<SwiftStatistics> Stats,
556- std::shared_ptr<RequestTracker> ReqTracker, StringRef SwiftExecutablePath,
556+ std::shared_ptr<RequestTracker> ReqTracker,
557+ std::shared_ptr<PluginRegistry> Plugins, StringRef SwiftExecutablePath,
557558 StringRef RuntimeResourcePath, StringRef DiagnosticDocumentationPath)
558559 : EditorDocs(EditorDocs), Config(Config), Stats(Stats),
559- ReqTracker(ReqTracker), SwiftExecutablePath(SwiftExecutablePath),
560+ ReqTracker(ReqTracker), Plugins(Plugins),
561+ SwiftExecutablePath(SwiftExecutablePath),
560562 RuntimeResourcePath(RuntimeResourcePath),
561563 DiagnosticDocumentationPath(DiagnosticDocumentationPath),
562564 SessionTimestamp(llvm::sys::toTimeT(std::chrono::system_clock::now())) {
@@ -566,6 +568,7 @@ struct SwiftASTManager::Implementation {
566568 std::shared_ptr<GlobalConfig> Config;
567569 std::shared_ptr<SwiftStatistics> Stats;
568570 std::shared_ptr<RequestTracker> ReqTracker;
571+ std::shared_ptr<PluginRegistry> Plugins;
569572 // / The path of the swift-frontend executable.
570573 // / Used to find clang relative to it.
571574 std::string SwiftExecutablePath;
@@ -638,9 +641,10 @@ SwiftASTManager::SwiftASTManager(
638641 std::shared_ptr<SwiftEditorDocumentFileMap> EditorDocs,
639642 std::shared_ptr<GlobalConfig> Config,
640643 std::shared_ptr<SwiftStatistics> Stats,
641- std::shared_ptr<RequestTracker> ReqTracker, StringRef SwiftExecutablePath,
644+ std::shared_ptr<RequestTracker> ReqTracker,
645+ std::shared_ptr<PluginRegistry> Plugins, StringRef SwiftExecutablePath,
642646 StringRef RuntimeResourcePath, StringRef DiagnosticDocumentationPath)
643- : Impl(*new Implementation(EditorDocs, Config, Stats, ReqTracker,
647+ : Impl(*new Implementation(EditorDocs, Config, Stats, ReqTracker, Plugins,
644648 SwiftExecutablePath, RuntimeResourcePath,
645649 DiagnosticDocumentationPath)) {}
646650
@@ -1073,6 +1077,7 @@ ASTUnitRef ASTBuildOperation::buildASTUnit(std::string &Error) {
10731077 }
10741078 return nullptr ;
10751079 }
1080+ CompIns.getASTContext ().setPluginRegistry (ASTManager->Impl .Plugins .get ());
10761081 CompIns.getASTContext ().CancellationFlag = CancellationFlag;
10771082 registerIDERequestFunctions (CompIns.getASTContext ().evaluator );
10781083 if (TracedOp.enabled ()) {
0 commit comments