mirror of
https://github.com/apple/sourcekit-lsp.git
synced 2026-03-02 18:23:24 +01:00
Allow configuring of SourceKit-LSP’s options using .sourcekit-lsp configuration files
The idea here is to unify the different ways in which we can currently set options on SourceKit-LSP in a scalable way: Environment variables, command line arguments to `sourcekit-lsp` and initialization options. The idea is that a user can define a `~/.sourcekit-lsp/.sourcekit-lsp` file (we store logs in `~/.sourcekit-lsp/logs` on non-Darwin platforms), which will be used as the default configuration for all SourceKit-LSP instances. They can also place a `.sourcekit-lsp` file in the root of a workspace to configure SourceKit-LSP for that project specifically, eg. setting arguments that need to be passed to `swift build` for that project and which thus also need to be set on SourceKit-LSP. For compatibility reasons, I’m mapping the existing command line options into the new options structure for now. I hope to delete the command line arguments in the future and solely rely on `.sourcekit-lsp` configuration files. Environment variable will be migrated to `.sourcekit-lsp` in a follow-up commit.
This commit is contained in:
@@ -26,7 +26,8 @@ public final class InProcessSourceKitLSPClient: Sendable {
|
||||
/// `messageHandler` handles notifications and requests sent from the SourceKit-LSP server to the client.
|
||||
public init(
|
||||
toolchainRegistry: ToolchainRegistry,
|
||||
serverOptions: SourceKitLSPServer.Options = SourceKitLSPServer.Options(),
|
||||
options: SourceKitLSPOptions = SourceKitLSPOptions(),
|
||||
testHooks: TestHooks = TestHooks(),
|
||||
capabilities: ClientCapabilities = ClientCapabilities(),
|
||||
workspaceFolders: [WorkspaceFolder],
|
||||
messageHandler: any MessageHandler
|
||||
@@ -35,7 +36,8 @@ public final class InProcessSourceKitLSPClient: Sendable {
|
||||
self.server = SourceKitLSPServer(
|
||||
client: serverToClientConnection,
|
||||
toolchainRegistry: toolchainRegistry,
|
||||
options: serverOptions,
|
||||
options: options,
|
||||
testHooks: testHooks,
|
||||
onExit: {
|
||||
serverToClientConnection.close()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user