in SourceKitStressTester/Sources/StressTester/SourceKitDocument.swift [195:217]
func semanticRefactoring(actionKind: SourceKitdUID, actionName: String,
offset: Int, newName: String? = nil) throws -> (RequestInfo, SourceKitdResponse) {
let request = SourceKitdRequest(uid: .request_SemanticRefactoring)
guard let converter = self.converter else { fatalError("didn't call open?") }
request.addParameter(.key_ActionUID, value: actionKind)
request.addParameter(.key_SourceFile, value: args.forFile.path)
let location = converter.location(for: AbsolutePosition(utf8Offset: offset))
request.addParameter(.key_Line, value: location.line!)
request.addParameter(.key_Column, value: location.column!)
if let newName = newName, actionName == "Local Rename" {
request.addParameter(.key_Name, value: newName)
}
request.addCompilerArgs(args.sourcekitdArgs)
let info = RequestInfo.semanticRefactoring(document: documentInfo,
offset: offset,
kind: actionName,
args: args.sourcekitdArgs)
let response = try sendWithTimeout(request, info: info)
return (info, response)
}