refactor: use match when processing EchidnaCoreEditor's initial file
Just like in 8e31be7
.
merge-requests/23/head
parent
8e31be7e47
commit
9b99932fdd
|
@ -21,47 +21,47 @@ impl EchidnaCoreEditor {
|
|||
// Without cloning it, for some reasons the Rust compiler complains about &this.to_imp().sourceview not being IsA<sourceview::View>
|
||||
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::<Buffer>().expect("Cannot downcast the sourceview's buffer. Maybe the sourceview's buffer is not IsA<sourceview::Buffer>.");
|
||||
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::<Buffer>().expect("Cannot downcast the sourceview's buffer. Maybe the sourceview's buffer is not IsA<sourceview::Buffer>.");
|
||||
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
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue