diff --git a/src/components/editor/mod.rs b/src/components/editor/mod.rs index b8d3bff..dceee0c 100644 --- a/src/components/editor/mod.rs +++ b/src/components/editor/mod.rs @@ -21,47 +21,47 @@ impl EchidnaCoreEditor { // Without cloning it, for some reasons the Rust compiler complains about &this.to_imp().sourceview not being IsA this_imp.minimap.set_view(&this_imp.sourceview.clone()); - if file.is_some() { - let file = file.unwrap(); - let file_location = file - .location() - .expect("file is required to have a location"); + match file { + Some(file) => { + let file_location = file + .location() + .expect("file is required to have a location"); - this.set_property("file", &file) - .expect("Could not set the 'file' property of EchidnaCoreEditor"); + this.set_property("file", &file) + .expect("Could not set the 'file' property of EchidnaCoreEditor"); - let cancellable = gio::Cancellable::new(); - let filepath = file_location.path().expect("No filepath"); - let info = file_location - .query_info("*", gio::FileQueryInfoFlags::NONE, Some(&cancellable)) - .expect("Could not query the info for file"); + let cancellable = gio::Cancellable::new(); + let filepath = file_location.path().expect("No filepath"); + let info = file_location + .query_info("*", gio::FileQueryInfoFlags::NONE, Some(&cancellable)) + .expect("Could not query the info for file"); - let content_type = info - .content_type() - .expect(format!("It does not seem like {:?} has a type", filepath).as_str()); - { - println!( - "Opened {} and found its content type is {}.", - "file", - content_type.to_string() - ); - let buffer = this_imp.sourceview.buffer().downcast::().expect("Cannot downcast the sourceview's buffer. Maybe the sourceview's buffer is not IsA."); - let language_manager = LanguageManager::new(); - let language = language_manager.guess_language( - Some(&info.name().to_str().expect( - "Could not open the file because its name is not supported by Unicode.", - )), - None, - ); + let content_type = info + .content_type() + .expect(format!("It does not seem like {:?} has a type", filepath).as_str()); + { + println!( + "Opened {} and found its content type is {}.", + "file", + content_type.to_string() + ); + let buffer = this_imp.sourceview.buffer().downcast::().expect("Cannot downcast the sourceview's buffer. Maybe the sourceview's buffer is not IsA."); + let language_manager = LanguageManager::new(); + let language = language_manager.guess_language( + Some(&info.name().to_str().expect( + "Could not open the file because its name is not supported by Unicode.", + )), + None, + ); - match language { - Some(lang) => buffer.set_language(Some(&lang)), - None => {} - } + match language { + Some(lang) => buffer.set_language(Some(&lang)), + None => {} + } - let file_loader: FileLoader = FileLoader::new(&buffer, &file); + let file_loader: FileLoader = FileLoader::new(&buffer, &file); - file_loader.load_async( + file_loader.load_async( glib::Priority::default(), Some(&cancellable), |_, _| {}, @@ -71,7 +71,9 @@ impl EchidnaCoreEditor { } }, ); + } } + None => {} } this }