Include saved mtime and fingerprint when serializing buffers
Antonio Scandurra
created 3 years ago
This still doesn't include:
- An assertion in the randomized test to ensure buffers are not spuriously
marked as modified
- Sending an update when synchronizing buffers after a reconnection
Change summary
crates/language/src/buffer.rs | 7 +++++++
crates/rpc/proto/zed.proto | 2 ++
2 files changed, 9 insertions(+)
Detailed changes
@@ -385,6 +385,11 @@ impl Buffer {
rpc::proto::LineEnding::from_i32(message.line_ending)
.ok_or_else(|| anyhow!("missing line_ending"))?,
));
+ this.saved_version_fingerprint = message.saved_version_fingerprint;
+ this.saved_mtime = message
+ .saved_mtime
+ .ok_or_else(|| anyhow!("invalid saved_mtime"))?
+ .into();
Ok(this)
}
@@ -395,6 +400,8 @@ impl Buffer {
base_text: self.base_text().to_string(),
diff_base: self.diff_base.as_ref().map(|h| h.to_string()),
line_ending: proto::serialize_line_ending(self.line_ending()) as i32,
+ saved_version_fingerprint: self.saved_version_fingerprint.clone(),
+ saved_mtime: Some(self.saved_mtime.into()),
}
}
@@ -975,6 +975,8 @@ message BufferState {
string base_text = 3;
optional string diff_base = 4;
LineEnding line_ending = 5;
+ string saved_version_fingerprint = 6;
+ Timestamp saved_mtime = 7;
}
message BufferChunk {