mirror of
https://github.com/apple/sourcekit-lsp.git
synced 2026-03-02 18:23:24 +01:00
6.0 KiB
6.0 KiB
Configuration File
.sourcekit-lsp/config.json configuration files can be used to modify the behavior of SourceKit-LSP in various ways. The following locations are checked. Settings in later configuration files override settings in earlier configuration files
~/.sourcekit-lsp/config.json- On macOS:
~/Library/Application Support/org.swift.sourcekit-lsp/config.jsonfrom the variousLibraryfolders on the system - If the
XDG_CONFIG_HOMEenvironment variable is set:$XDG_CONFIG_HOME/sourcekit-lsp/config.json - Initialization options passed in the initialize request
- A
.sourcekit-lsp/config.jsonfile in a workspace’s root
The structure of the file is currently not guaranteed to be stable. Options may be removed or renamed.
Structure
config.json is a JSON file with the following structure. All keys are optional and unknown keys are ignored.
swiftPM: Dictionary with the following keys, defining options for SwiftPM workspacesconfiguration: "debug"|"release": The configuration to build the project for during background indexing and the configuration whose build folder should be used for Swift modules if background indexing is disabled. Equivalent to SwiftPM's--configurationoption.scratchPath: string: Build artifacts directory path. If nil, the build system may choose a default value. This path can be specified as a relative path, which will be interpreted relative to the project root. Equivalent to SwiftPM's--scratch-pathoption.swiftSDKsDirectory: string: Equivalent to SwiftPM's--swift-sdks-pathoptionswiftSDK: string: Equivalent to SwiftPM's--swift-sdkoptiontriple: string: Equivalent to SwiftPM's--tripleoptioncCompilerFlags: string[]: Extra arguments passed to the compiler for C files. Equivalent to SwiftPM's-Xccoption.cxxCompilerFlags: string[]: Extra arguments passed to the compiler for C++ files. Equivalent to SwiftPM's-Xcxxoption.swiftCompilerFlags: string[]: Extra arguments passed to the compiler for Swift files. Equivalent to SwiftPM's-Xswiftcoption.linkerFlags: string[]: Extra arguments passed to the linker. Equivalent to SwiftPM's-Xlinkeroption.disableSandbox: bool: Disables running subprocesses from SwiftPM in a sandbox. Useful when runningsourcekit-lspin a sandbox because nested sandboxes are not supported.
compilationDatabase: Dictionary with the following keys, defining options for workspaces with a compilation databasesearchPaths: string[]: Additional paths to search for a compilation database, relative to a workspace root.
fallbackBuildSystem: Dictionary with the following keys, defining options for files that aren't managed by any build systemcCompilerFlags: string[]: Extra arguments passed to the compiler for C filescxxCompilerFlags: string[]: Extra arguments passed to the compiler for C++ filesswiftCompilerFlags: string[]: Extra arguments passed to the compiler for Swift filessdk: string: The SDK to use for fallback arguments. Default is to infer the SDK usingxcrun.
buildSettingsTimeout: int: Number of milliseconds to wait for build settings from the build system before using fallback build settings.clangdOptions: string[]: Extra command line arguments passed toclangdwhen launching itindex: Dictionary with the following keys, defining options related to indexingindexStorePath: string: Directory in which a separate compilation stores the index store. By default, inferred from the build system.indexDatabasePath: string: Directory in which the indexstore-db should be stored. By default, inferred from the build system.indexPrefixMap: [string: string]: Path remappings for remapping index data for local use.maxCoresPercentageToUseForBackgroundIndexing: double: A hint indicating how many cores background indexing should use at most (value between 0 and 1). Background indexing is not required to honor this settingupdateIndexStoreTimeout: int: Number of seconds to wait for an update index store task to finish before killing it.
logging: Dictionary with the following keys, changing SourceKit-LSP’s logging behavior on non-Apple platforms. On Apple platforms, logging is done through the system log. These options can only be set globally and not per workspace.logLevel: "debug"|"info"|"default"|"error"|"fault": The level from which one onwards log messages should be written.privacyLevel: "public"|"private"|"sensitive": Whether potentially sensitive information should be redacted. Default ispublic, which redacts potentially sensitive information.inputMirrorDirectory: string: Write all input received by SourceKit-LSP on stdin to a file in this directory. Useful to record and replay an entire SourceKit-LSP session.
defaultWorkspaceType: "buildserver"|"compdb"|"swiftpm": Overrides workspace type selection logic.generatedFilesPath: string: Directory in which generated interfaces and macro expansions should be stored.backgroundIndexing: bool: Explicitly enable or disable background indexing.backgroundPreparationMode: "build"|"noLazy"|"enabled": Determines how background indexing should prepare a target. Possible values are:build: Build a target to prepare itnoLazy: Prepare a target without generating object files but do not do lazy type checking and function body skippingenabled: Prepare a target without generating object files and the like
cancelTextDocumentRequestsOnEditAndClose: bool: Whether sending atextDocument/didChangeortextDocument/didClosenotification for a document should cancel all pending requests for that document.experimentalFeatures: string[]: Experimental features to enable. Available features: on-type-formattingswiftPublishDiagnosticsDebounceDuration: double: The time thatSwiftLanguageServiceshould wait after an edit before starting to compute diagnostics and sending aPublishDiagnosticsNotification.