1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
|
//===----------------------------------------------------------------------===//
//
// This source file is part of the Swift.org open source project
//
// Copyright (c) 2014 - 2019 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
//
//===----------------------------------------------------------------------===//
#if compiler(>=6)
public import LanguageServerProtocol
#else
import LanguageServerProtocol
#endif
/// The `TextDocumentSourceKitOptionsRequest` request is sent from the client to the server to query for the list of
/// compiler options necessary to compile this file in the given target.
///
/// The build settings are considered up-to-date and can be cached by SourceKit-LSP until a
/// `DidChangeBuildTargetNotification` is sent for the requested target.
///
/// The request may return `nil` if it doesn't have any build settings for this file in the given target.
public struct TextDocumentSourceKitOptionsRequest: RequestType, Hashable {
public static let method: String = "textDocument/sourceKitOptions"
public typealias Response = TextDocumentSourceKitOptionsResponse?
/// The URI of the document to get options for
public var textDocument: TextDocumentIdentifier
/// The target for which the build setting should be returned.
///
/// A source file might be part of multiple targets and might have different compiler arguments in those two targets,
/// thus the target is necessary in this request.
public var target: BuildTargetIdentifier
/// The language with which the document was opened in the editor.
public var language: Language
public init(textDocument: TextDocumentIdentifier, target: BuildTargetIdentifier, language: Language) {
self.textDocument = textDocument
self.target = target
self.language = language
}
}
public struct TextDocumentSourceKitOptionsResponse: ResponseType, Hashable {
/// The compiler options required for the requested file.
public var compilerArguments: [String]
/// The working directory for the compile command.
public var workingDirectory: String?
public init(compilerArguments: [String], workingDirectory: String? = nil) {
self.compilerArguments = compilerArguments
self.workingDirectory = workingDirectory
}
}
|