func update()

in Sources/SourceKitLSP/Swift/CodeCompletionSession.swift [72:97]


  func update(
    filterText: String,
    position: Position,
    in snapshot: DocumentSnapshot,
    options: SKCompletionOptions,
    completion: @escaping (LSPResult<CompletionList>) -> Void)
  {
    queue.async {
      switch self.state {
      case .closed:
        self._open(filterText: filterText, position: position, in: snapshot, options: options, completion: completion)
      case .opening(let group):
        group.notify(queue: self.queue) {
          switch self.state {
          case .closed, .opening(_):
            // Don't try again.
            completion(.failure(.cancelled))
          case .open:
            self._update(filterText: filterText, position: position, in: snapshot, options: options, completion: completion)
          }
        }
      case .open:
        self._update(filterText: filterText, position: position, in: snapshot, options: options, completion: completion)
      }
    }
  }