You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: Documentation/Modules.md
+13-48Lines changed: 13 additions & 48 deletions
Original file line number
Diff line number
Diff line change
@@ -8,6 +8,10 @@ Swift types to represent the [Build Server Protocol (BSP) specification, version
8
8
9
9
FIXME: Add link for BSP and version
10
10
11
+
### BuildSystemIntegration
12
+
13
+
Defines the queries SourceKit-LSP can ask of a build system, like getting compiler arguments for a file, finding a target’s dependencies or preparing a target.
14
+
11
15
### CAtomics
12
16
13
17
Implementation of atomics for Swift using C. Once we can raise our deployment target to use the `Atomic` type from the Swift standard library, this module should be removed.
@@ -36,69 +40,27 @@ Swift types to represent the [Language Server Protocol (LSP) specification, vers
36
40
37
41
### LanguageServerProtocolJSONRPC
38
42
39
-
A connection to or from a SourceKit-LSP server. Since message parsing can fail, it needs to handle errors in some way and the design decision here is to use LSPLogging, which hardcodes `org.swift.sourcekit-lsp` as the default logging subsystem and thus makes the module unsuitable for generic clients.
40
-
41
-
### LSPLogging
42
-
43
-
Types that are API-compatible with OSLog to allow logging to OSLog when building for Darwin platforms and logging to stderr or files on non-Darwin platforms. This should not be dependent on any LSP specific types and be portable to other packages.
44
-
45
-
FIXME: Rename the module to SKLogging
46
-
47
-
### LSPTestSupport
48
-
49
-
FIXME: Merge this module with SKTestSupport
43
+
A connection to or from a SourceKit-LSP server. Since message parsing can fail, it needs to handle errors in some way and the design decision here is to use SKLogging, which hardcodes `org.swift.sourcekit-lsp` as the default logging subsystem and thus makes the module unsuitable for generic clients.
50
44
51
45
### SemanticIndex
52
46
53
47
Contains the interface with which SourceKit-LSP queries the semantic index, adding up-to-date checks on top of the indexstore-db API. Also implements the types that manage background indexing.
54
48
55
-
### SKCore
56
-
57
-
FIXME: Currently serves two independent purposes and should be split up into two modules
58
-
59
-
#### BuildSystem
60
-
61
-
Defines the queries SourceKit-LSP can ask of a a build system, like getting compiler arguments for a file. Finding a target’s dependencies or preparing a target.
49
+
### SKLogging
62
50
63
-
This includes:
64
-
- BuildConfiguration.swift
65
-
- BuildServerBuildSystem.swift
66
-
- BuildSetup.swift
67
-
- BuildSystem.swift
68
-
- BuildSystemDelegate.swift
69
-
- BuildSystemManager.swift
70
-
- CompilationDatabase.swift
71
-
- CompilationDatabaseBuildSystem.swift
72
-
- FallbackBuildSystem.swift
73
-
- FileBuildSettings.swift
74
-
- IndexTaskID.swift
75
-
- MainFilesProvider.swift
76
-
- PathPrefixMapping.swift
77
-
- SplitShellCommand.swift
78
-
- WorkspaceType.swift
51
+
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.
79
52
80
-
#### ToolchainRegistry
81
-
82
-
Discovers Swift toolchains on the system.
83
-
84
-
- Toolchain.swift
85
-
- ToolchainRegistry.swift
86
-
- XCToolchainPlist.swift
53
+
### SKOptions
87
54
55
+
Configuration options to change how SourceKit-LSP behaves, based on [Configuration files](Configuration%20File.md).
88
56
89
57
### SKSupport
90
58
91
59
Contains SourceKit-LSP-specific helper functions. These fall into three different categories:
92
60
- Extensions on top of `swift-tools-support-core`
93
-
- Functionality that can only be implemented by combining two lower-level modules that don't have a shared dependency, like `LSPLogging` + `LanguageServerProtocol`
61
+
- Functionality that can only be implemented by combining two lower-level modules that don't have a shared dependency, like `SKLogging` + `LanguageServerProtocol`
94
62
- 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`.
95
63
96
-
### SKSwiftPMWorkspace
97
-
98
-
Implements the `BuildSystem` protocol for Swift packages.
99
-
100
-
FIXME: Merge this into the BuildSystem module once SKCore is split.
101
-
102
64
### SKTestSupport
103
65
104
66
A collection of utilities useful for writing tests for SourceKit-LSP and which are not specific to a single test module.
@@ -119,3 +81,6 @@ This is the core module that implements the SourceKit-LSP server.
119
81
120
82
Extensions to the Swift standard library and Foundation. Should not have any other dependencies. Any types in here should theoretically make senses to put in the Swift standard library or Foundation and they shouldn't be specific to SourceKit-LSP
0 commit comments