mirror of
https://github.com/apple/sourcekit-lsp.git
synced 2026-03-02 18:23:24 +01:00
------ Simplify `SemanticRefactoring` with new `Refactoring` protocol to handle sourcekitd requests Create and implement `ExpandMacroCommand` while temporarily storing generated expansions. Create test case `testFreestandingMacroExpansion` Manually inject `ExpandMacroCommand` into `retrieveRefactorCodeActions` upon an "Inline Macro" from sourcekitd Address Review Comments Mark `@_spi(Testing) public` for `MacroExpansionEdit` Address Review Comments Create separate directory for each buffer with its name, containing a generated file named as the source file along with position range Fixed generated macro expansion file extension not recognised, by switching to file names which don't contain fragments Address Review Comments Wrap the entire feature under `ExperimentalFeatures` Address Review Comments Make Swift Lint Pass Fix Windows Build not passing
53 lines
1.9 KiB
Swift
53 lines
1.9 KiB
Swift
//===----------------------------------------------------------------------===//
|
|
//
|
|
// This source file is part of the Swift.org open source project
|
|
//
|
|
// Copyright (c) 2014 - 2024 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
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
/// Request from the server to the client to show a document on the client
|
|
/// side.
|
|
public struct ShowDocumentRequest: RequestType {
|
|
public static let method: String = "window/showDocument"
|
|
public typealias Response = ShowDocumentResponse
|
|
|
|
/// The uri to show.
|
|
public var uri: DocumentURI
|
|
|
|
/// An optional boolean indicates to show the resource in an external
|
|
/// program. To show, for example, `https://www.swift.org/ in the default WEB
|
|
/// browser set `external` to `true`.
|
|
public var external: Bool?
|
|
|
|
/// An optional boolean to indicate whether the editor showing the document
|
|
/// should take focus or not. Clients might ignore this property if an
|
|
/// external program is started.
|
|
public var takeFocus: Bool?
|
|
|
|
/// An optional selection range if the document is a text document. Clients
|
|
/// might ignore the property if an external program is started or the file
|
|
/// is not a text file.
|
|
public var selection: Range<Position>?
|
|
|
|
public init(uri: DocumentURI, external: Bool? = nil, takeFocus: Bool? = nil, selection: Range<Position>? = nil) {
|
|
self.uri = uri
|
|
self.external = external
|
|
self.takeFocus = takeFocus
|
|
self.selection = selection
|
|
}
|
|
}
|
|
|
|
public struct ShowDocumentResponse: Codable, Hashable, ResponseType {
|
|
/// A boolean indicating if the show was successful.
|
|
public var success: Bool
|
|
|
|
public init(success: Bool) {
|
|
self.success = success
|
|
}
|
|
}
|