Skip to content

Commit 1f33ed4

Browse files
committed
Split SKUtilities from SKSupport
1 parent 47f3cd5 commit 1f33ed4

34 files changed

+129
-103
lines changed

Contributor Documentation/Modules.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,10 @@ Contains the interface with which SourceKit-LSP queries the semantic index, addi
4949

5050
Types that are API-compatible with OSLog that allow logging to OSLog when building for Apple platforms and logging to stderr or files on non-Apple platforms. This should not be dependent on any LSP specific types and be portable to other packages.
5151

52+
### SKUtilities
53+
54+
Types that should be sharable by the different modules that implement SourceKit-LSP but that are not generic enough to fit into `SwiftExtensions` or that need to depend on `SKLogging` and thus can’t live in `SwiftExtensions`.
55+
5256
### SKOptions
5357

5458
Configuration options to change how SourceKit-LSP behaves, based on [Configuration files](../Documentation/Configuration%20File.md).
@@ -57,7 +61,6 @@ Configuration options to change how SourceKit-LSP behaves, based on [Configurati
5761

5862
Contains SourceKit-LSP-specific helper functions. These fall into two different categories:
5963
- Functionality that can only be implemented by combining two lower-level modules that don't have a shared dependency, like `SKLogging` + `LanguageServerProtocol`
60-
- Types that should be sharable by the different modules that implement SourceKit-LSP but that are not generic enough to fit into `SwiftExtensions`, like `ExperimentalFeatures`.
6164

6265
### SKTestSupport
6366

Package.swift

Lines changed: 38 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ var targets: [Target] = [
7575
"SKLogging",
7676
"SKOptions",
7777
"SKSupport",
78+
"SKUtilities",
7879
"SourceKitD",
7980
"SwiftExtensions",
8081
"ToolchainRegistry",
@@ -132,6 +133,7 @@ var targets: [Target] = [
132133
"SKLogging",
133134
"SKOptions",
134135
"SKSupport",
136+
"SKUtilities",
135137
"SourceKitD",
136138
"SourceKitLSP",
137139
"SwiftExtensions",
@@ -277,30 +279,43 @@ var targets: [Target] = [
277279
swiftSettings: globalSwiftSettings
278280
),
279281

280-
// MARK: SKSupport
282+
// MARK: SKUtilities
281283

282284
.target(
283-
name: "SKSupport",
285+
name: "SKUtilities",
284286
dependencies: [
285-
"LanguageServerProtocol",
286-
"LanguageServerProtocolJSONRPC",
287287
"SKLogging",
288-
"SourceKitD",
289288
"SwiftExtensions",
290-
.product(name: "SwiftToolsSupport-auto", package: "swift-tools-support-core"),
291289
],
292290
exclude: ["CMakeLists.txt"],
293291
swiftSettings: globalSwiftSettings
294292
),
295293

296294
.testTarget(
297-
name: "SKSupportTests",
295+
name: "SKUtilitiesTests",
298296
dependencies: [
299-
"SKLogging",
300-
"SKSupport",
297+
"SKUtilities",
298+
// "SKLogging",
299+
// "SKSupport",
301300
"SKTestSupport",
301+
// "SwiftExtensions",
302+
],
303+
swiftSettings: globalSwiftSettings
304+
),
305+
306+
// MARK: SKSupport
307+
308+
.target(
309+
name: "SKSupport",
310+
dependencies: [
311+
"LanguageServerProtocol",
312+
"LanguageServerProtocolJSONRPC",
313+
"SKLogging",
314+
"SourceKitD",
302315
"SwiftExtensions",
316+
.product(name: "SwiftToolsSupport-auto", package: "swift-tools-support-core"),
303317
],
318+
exclude: ["CMakeLists.txt"],
304319
swiftSettings: globalSwiftSettings
305320
),
306321

@@ -317,6 +332,7 @@ var targets: [Target] = [
317332
"SKLogging",
318333
"SKOptions",
319334
"SKSupport",
335+
"SKUtilities",
320336
"SourceKitLSP",
321337
"SwiftExtensions",
322338
"ToolchainRegistry",
@@ -366,6 +382,7 @@ var targets: [Target] = [
366382
"SKLogging",
367383
"SKOptions",
368384
"SKSupport",
385+
"SKUtilities",
369386
"SourceKitD",
370387
"SwiftExtensions",
371388
"ToolchainRegistry",
@@ -394,6 +411,7 @@ var targets: [Target] = [
394411
"SKOptions",
395412
"SKSupport",
396413
"SKTestSupport",
414+
"SKUtilities",
397415
"SourceKitD",
398416
"SourceKitLSP",
399417
"ToolchainRegistry",
@@ -414,13 +432,24 @@ var targets: [Target] = [
414432
swiftSettings: globalSwiftSettings
415433
),
416434

435+
.testTarget(
436+
name: "SwiftExtensionsTests",
437+
dependencies: [
438+
"SKLogging",
439+
"SKTestSupport",
440+
"SwiftExtensions",
441+
],
442+
swiftSettings: globalSwiftSettings
443+
),
444+
417445
// MARK: ToolchainRegistry
418446

419447
.target(
420448
name: "ToolchainRegistry",
421449
dependencies: [
422450
"SKLogging",
423451
"SKSupport",
452+
"SKUtilities",
424453
"SwiftExtensions",
425454
"TSCExtensions",
426455
.product(name: "SwiftPMDataModel-auto", package: "swift-package-manager"),

Sources/BuildSystemIntegration/BuildSystemManager.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ package import LanguageServerProtocol
1818
import SKLogging
1919
package import SKOptions
2020
package import SKSupport
21+
import SKUtilities
2122
package import SwiftExtensions
2223
package import ToolchainRegistry
2324
import TSCExtensions
@@ -32,6 +33,7 @@ import LanguageServerProtocol
3233
import SKLogging
3334
import SKOptions
3435
import SKSupport
36+
import SKUtilities
3537
import SwiftExtensions
3638
import ToolchainRegistry
3739
import TSCExtensions

Sources/BuildSystemIntegration/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,5 +38,6 @@ target_link_libraries(BuildSystemIntegration PUBLIC
3838
Build
3939
SourceKitLSPAPI)
4040

41-
target_link_libraries(BuildSystemIntegration PUBLIC
41+
target_link_libraries(BuildSystemIntegration PRIVATE
42+
SKUtilities
4243
TSCExtensions)

Sources/Diagnose/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,5 +40,6 @@ target_link_libraries(Diagnose PUBLIC
4040
)
4141

4242
target_link_libraries(Diagnose PRIVATE
43+
SKUtilities
4344
TSCExtensions
4445
)

Sources/Diagnose/RunSourcekitdRequestCommand.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
package import ArgumentParser
1515
import Csourcekitd
1616
import Foundation
17-
import SKSupport
17+
import SKUtilities
1818
import SourceKitD
1919
import ToolchainRegistry
2020

@@ -23,7 +23,7 @@ import struct TSCBasic.AbsolutePath
2323
import ArgumentParser
2424
import Csourcekitd
2525
import Foundation
26-
import SKSupport
26+
import SKUtilities
2727
import SourceKitD
2828
import ToolchainRegistry
2929

Sources/SKOptions/SourceKitLSPOptions.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -448,7 +448,8 @@ public struct SourceKitLSPOptions: Sendable, Codable, Equatable {
448448
if let generatedFilesPath {
449449
return URL(fileURLWithPath: generatedFilesPath)
450450
}
451-
return defaultDirectoryForGeneratedFiles
451+
452+
return URL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent("sourcekit-lsp")
452453
}
453454

454455
public func hasExperimentalFeature(_ feature: ExperimentalFeature) -> Bool {

Sources/SKSupport/FileSystem.swift

Lines changed: 0 additions & 43 deletions
This file was deleted.

Sources/SKTestSupport/TestSourceKitLSPClient.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ package import LanguageServerProtocol
1717
import LanguageServerProtocolJSONRPC
1818
package import SKOptions
1919
import SKSupport
20+
import SKUtilities
2021
package import SourceKitLSP
2122
import SwiftExtensions
2223
import SwiftSyntax
@@ -29,6 +30,7 @@ import LanguageServerProtocol
2930
import LanguageServerProtocolJSONRPC
3031
import SKOptions
3132
import SKSupport
33+
import SKUtilities
3234
import SourceKitLSP
3335
import SwiftExtensions
3436
import SwiftSyntax

Sources/SKUtilities/CMakeLists.txt

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
2+
add_library(SKUtilities STATIC
3+
Debouncer.swift
4+
Dictionary+InitWithElementsKeyedBy.swift
5+
FileSystem.swift
6+
LineTable.swift
7+
)
8+
set_target_properties(SKUtilities PROPERTIES
9+
INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_Swift_MODULE_DIRECTORY})
10+
target_link_libraries(SKSupport PRIVATE
11+
SKLogging
12+
SwiftExtensions
13+
TSCBasic
14+
$<$<NOT:$<PLATFORM_ID:Darwin>>:Foundation>)

0 commit comments

Comments
 (0)