mirror of
https://github.com/encounter/objdiff.git
synced 2026-07-10 12:18:36 -07:00
Remove alternate diff algorithms, only keep Patience
This commit is contained in:
@@ -106,10 +106,6 @@ pub struct AppConfig {
|
||||
#[serde(default)]
|
||||
pub recent_projects: Vec<PathBuf>,
|
||||
#[serde(default)]
|
||||
pub code_alg: DiffAlg,
|
||||
#[serde(default)]
|
||||
pub data_alg: DiffAlg,
|
||||
#[serde(default)]
|
||||
pub relax_reloc_diffs: bool,
|
||||
|
||||
#[serde(skip)]
|
||||
@@ -148,8 +144,6 @@ impl Default for AppConfig {
|
||||
auto_update_check: true,
|
||||
watch_patterns: DEFAULT_WATCH_PATTERNS.iter().map(|s| Glob::new(s).unwrap()).collect(),
|
||||
recent_projects: vec![],
|
||||
code_alg: Default::default(),
|
||||
data_alg: Default::default(),
|
||||
relax_reloc_diffs: false,
|
||||
objects: vec![],
|
||||
object_nodes: vec![],
|
||||
|
||||
@@ -57,8 +57,6 @@ pub struct ObjDiffConfig {
|
||||
pub build_base: bool,
|
||||
pub build_target: bool,
|
||||
pub selected_obj: Option<ObjectConfig>,
|
||||
pub code_alg: DiffAlg,
|
||||
pub data_alg: DiffAlg,
|
||||
pub relax_reloc_diffs: bool,
|
||||
}
|
||||
|
||||
@@ -69,8 +67,6 @@ impl ObjDiffConfig {
|
||||
build_base: config.build_base,
|
||||
build_target: config.build_target,
|
||||
selected_obj: config.selected_obj.clone(),
|
||||
code_alg: config.code_alg,
|
||||
data_alg: config.data_alg,
|
||||
relax_reloc_diffs: config.relax_reloc_diffs,
|
||||
}
|
||||
}
|
||||
@@ -253,11 +249,7 @@ fn run_build(
|
||||
};
|
||||
|
||||
update_status(context, "Performing diff".to_string(), 4, total, &cancel)?;
|
||||
let diff_config = DiffObjConfig {
|
||||
code_alg: config.code_alg,
|
||||
data_alg: config.data_alg,
|
||||
relax_reloc_diffs: config.relax_reloc_diffs,
|
||||
};
|
||||
let diff_config = DiffObjConfig { relax_reloc_diffs: config.relax_reloc_diffs };
|
||||
diff_objs(&diff_config, first_obj.as_mut(), second_obj.as_mut())?;
|
||||
|
||||
update_status(context, "Complete".to_string(), total, total, &cancel)?;
|
||||
|
||||
@@ -14,10 +14,7 @@ use egui::{
|
||||
SelectableLabel, TextFormat, Widget, WidgetText,
|
||||
};
|
||||
use globset::Glob;
|
||||
use objdiff_core::{
|
||||
config::{ProjectObject, DEFAULT_WATCH_PATTERNS},
|
||||
diff::DiffAlg,
|
||||
};
|
||||
use objdiff_core::config::{ProjectObject, DEFAULT_WATCH_PATTERNS};
|
||||
use self_update::cargo_crate_version;
|
||||
|
||||
use crate::{
|
||||
@@ -853,58 +850,3 @@ pub fn diff_options_window(
|
||||
diff_options_ui(ui, &mut config_guard, appearance);
|
||||
});
|
||||
}
|
||||
|
||||
fn diff_options_ui(ui: &mut egui::Ui, config: &mut AppConfig, appearance: &Appearance) {
|
||||
let mut job = LayoutJob::default();
|
||||
job.append(
|
||||
"Current default: ",
|
||||
0.0,
|
||||
TextFormat::simple(appearance.ui_font.clone(), appearance.text_color),
|
||||
);
|
||||
job.append(
|
||||
diff_alg_to_string(DiffAlg::default()),
|
||||
0.0,
|
||||
TextFormat::simple(appearance.ui_font.clone(), appearance.emphasized_text_color),
|
||||
);
|
||||
ui.label(job);
|
||||
let mut job = LayoutJob::default();
|
||||
job.append(
|
||||
"Previous default: ",
|
||||
0.0,
|
||||
TextFormat::simple(appearance.ui_font.clone(), appearance.text_color),
|
||||
);
|
||||
job.append(
|
||||
"Levenshtein",
|
||||
0.0,
|
||||
TextFormat::simple(appearance.ui_font.clone(), appearance.emphasized_text_color),
|
||||
);
|
||||
ui.label(job);
|
||||
ui.label("Please provide feedback!");
|
||||
if diff_alg_ui(ui, "Code diff algorithm", &mut config.code_alg) {
|
||||
config.queue_reload = true;
|
||||
}
|
||||
if diff_alg_ui(ui, "Data diff algorithm", &mut config.data_alg) {
|
||||
config.queue_reload = true;
|
||||
}
|
||||
}
|
||||
|
||||
fn diff_alg_ui(ui: &mut egui::Ui, label: impl Into<WidgetText>, alg: &mut DiffAlg) -> bool {
|
||||
let response = egui::ComboBox::from_label(label)
|
||||
.selected_text(diff_alg_to_string(*alg))
|
||||
.show_ui(ui, |ui| {
|
||||
ui.selectable_value(alg, DiffAlg::Patience, "Patience").changed()
|
||||
| ui.selectable_value(alg, DiffAlg::Levenshtein, "Levenshtein").changed()
|
||||
| ui.selectable_value(alg, DiffAlg::Myers, "Myers").changed()
|
||||
| ui.selectable_value(alg, DiffAlg::Lcs, "LCS").changed()
|
||||
});
|
||||
response.inner.unwrap_or(false)
|
||||
}
|
||||
|
||||
const fn diff_alg_to_string(alg: DiffAlg) -> &'static str {
|
||||
match alg {
|
||||
DiffAlg::Patience => "Patience",
|
||||
DiffAlg::Levenshtein => "Levenshtein",
|
||||
DiffAlg::Lcs => "LCS",
|
||||
DiffAlg::Myers => "Myers",
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user