Send copilot events even if file_extension is not known at the time

This commit is contained in:
Joseph Lyons 2023-05-16 14:02:36 -04:00
parent 6976d60bfe
commit afe75e8cbd

View file

@ -6888,26 +6888,29 @@ impl Editor {
suggestion_accepted: bool, suggestion_accepted: bool,
cx: &AppContext, cx: &AppContext,
) { ) {
if let Some((project, file)) = self.project.as_ref().zip( let Some(project) = &self.project else {
self.buffer return
};
// If None, we are either getting suggestions in a new, unsaved file, or in a file without an extension
let file_extension = self
.buffer
.read(cx) .read(cx)
.as_singleton() .as_singleton()
.and_then(|b| b.read(cx).file()), .and_then(|b| b.read(cx).file())
) { .and_then(|file| Path::new(file.file_name(cx)).extension())
let telemetry_settings = cx.global::<Settings>().telemetry();
let extension = Path::new(file.file_name(cx))
.extension()
.and_then(|e| e.to_str()); .and_then(|e| e.to_str());
let telemetry = project.read(cx).client().telemetry().clone(); let telemetry = project.read(cx).client().telemetry().clone();
let telemetry_settings = cx.global::<Settings>().telemetry();
let event = ClickhouseEvent::Copilot { let event = ClickhouseEvent::Copilot {
suggestion_id, suggestion_id,
suggestion_accepted, suggestion_accepted,
file_extension: extension.map(ToString::to_string), file_extension: file_extension.map(ToString::to_string),
}; };
telemetry.report_clickhouse_event(event, telemetry_settings); telemetry.report_clickhouse_event(event, telemetry_settings);
} }
}
fn report_editor_event(&self, name: &'static str, cx: &AppContext) { fn report_editor_event(&self, name: &'static str, cx: &AppContext) {
if let Some((project, file)) = self.project.as_ref().zip( if let Some((project, file)) = self.project.as_ref().zip(