func rangeInfo()

in SourceKitStressTester/Sources/StressTester/SourceKitDocument.swift [109:134]


  func rangeInfo(offset: Int, length: Int) throws -> (RequestInfo, SourceKitdResponse) {
    let request = SourceKitdRequest(uid: .request_RangeInfo)

    request.addParameter(.key_SourceFile, value: args.forFile.path)
    request.addParameter(.key_Offset, value: offset)
    request.addParameter(.key_Length, value: length)
    request.addParameter(.key_RetrieveRefactorActions, value: 1)
    request.addCompilerArgs(args.sourcekitdArgs)

    let info = RequestInfo.rangeInfo(document: documentInfo, offset: offset,
                                     length: length, args: args.sourcekitdArgs)
    let response = try sendWithTimeout(request, info: info)

    if let actions = response.value.getOptional(.key_RefactorActions)?.getArray() {
      for i in 0 ..< actions.count {
        let action = actions.getDictionary(i)
        guard action.getOptional(.key_ActionUnavailableReason) == nil else { continue }
        let actionName = action.getString(.key_ActionName)
        let kind = action.getUID(.key_ActionUID)
        _ = try semanticRefactoring(actionKind: kind, actionName: actionName,
                                    offset: offset)
      }
    }

    return (info, response)
  }