Files
sourcekit-lsp/Sources/SwiftSourceKitPluginCommon/DynamicallyLoadedSourceKitdD+forPlugin.swift
Alex Hoppen 92aa94fa43 Remove the split between SourceKitD and DynamicallyLoadedSourceKitD
There is only one real class that implements the `SourceKitD` protocol, so there really isn’t any need for the protocol + class split at all. Unify them to make code simpler to reason about.
2025-03-27 11:05:24 -07:00

33 lines
1.0 KiB
Swift

//===----------------------------------------------------------------------===//
//
// This source file is part of the Swift.org open source project
//
// Copyright (c) 2014 - 2024 Apple Inc. and the Swift project authors
// Licensed under Apache License v2.0 with Runtime Library Exception
//
// See https://swift.org/LICENSE.txt for license information
// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
//
//===----------------------------------------------------------------------===//
import Foundation
import SKLogging
package import SourceKitD
import SwiftExtensions
extension SourceKitD {
private static nonisolated(unsafe) var _forPlugin: SourceKitD?
package static var forPlugin: SourceKitD {
get {
guard let _forPlugin else {
fatalError("forPlugin must only be accessed after it was set in sourcekitd_plugin_initialize_2")
}
return _forPlugin
}
set {
precondition(_forPlugin == nil, "SourceKitD.forPlugin must not be set twice")
_forPlugin = newValue
}
}
}