save method

Future<bool> save(
  1. TextDocument document, {
  2. required int revision,
  3. Map<String, Object?> metadata = const {},
})

Saves document and clears obsolete recovery state.

Implementation

Future<bool> save(
  TextDocument document, {
  required int revision,
  Map<String, Object?> metadata = const {},
}) async {
  final generation = ++_generation;
  final snapshot = _snapshot(document, revision, metadata);
  return _serializeWrite(() async {
    if (generation != _generation) return false;
    await store.write(snapshot);
    if (generation != _generation) return false;
    _savedRevision = revision;
    await store.deleteRecovery(documentId);
    return generation == _generation;
  });
}