2023-07-31 01:58:37 +02:00
|
|
|
|
2023-07-30 18:40:18 +02:00
|
|
|
use colored::*;
|
|
|
|
|
|
|
|
|
|
pub fn highlight_difference(corrected_command: &str, last_command: &str) -> String {
|
|
|
|
|
let mut highlighted_command = String::new();
|
|
|
|
|
|
|
|
|
|
let split_corrected_command = corrected_command.split(' ');
|
|
|
|
|
let split_last_command = last_command.split(' ');
|
|
|
|
|
|
|
|
|
|
for new in split_corrected_command {
|
|
|
|
|
let mut changed = true;
|
|
|
|
|
for old in split_last_command.clone() {
|
|
|
|
|
if new == old {
|
|
|
|
|
changed = false;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if changed {
|
2023-07-30 18:58:14 +02:00
|
|
|
let colored = new.red().bold();
|
|
|
|
|
highlighted_command = format!("{}{}", highlighted_command, colored);
|
2023-07-30 18:40:18 +02:00
|
|
|
} else {
|
2023-07-30 18:58:14 +02:00
|
|
|
let colored = new.green();
|
|
|
|
|
highlighted_command = format!("{}{}", highlighted_command, colored);
|
2023-07-30 18:40:18 +02:00
|
|
|
}
|
|
|
|
|
highlighted_command.push(' ');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
highlighted_command.pop();
|
|
|
|
|
highlighted_command
|
|
|
|
|
}
|