summaryrefslogtreecommitdiffstats
path: root/src/options
diff options
context:
space:
mode:
authorDan Davison <dandavison7@gmail.com>2020-07-17 18:49:55 -0400
committerDan Davison <dandavison7@gmail.com>2020-08-01 11:35:50 -0400
commitcd7953c176c2bc71b34cc2aaa1618f6ab208538f (patch)
tree9571d07e3a9f5015b58afd4abb884f59e6157067 /src/options
parent27dec271018c589ba1119a180158903b9dba8c64 (diff)
Initial implementation of color-moved support
- Inspect the raw hunk line - If it does not appear to be a standard minus/plus line, treat it as moved - Apply special delta color-moved-* styles
Diffstat (limited to 'src/options')
-rw-r--r--src/options/set.rs23
1 files changed, 11 insertions, 12 deletions
diff --git a/src/options/set.rs b/src/options/set.rs
index b1d69b0c..e7932e4b 100644
--- a/src/options/set.rs
+++ b/src/options/set.rs
@@ -15,7 +15,6 @@ use crate::git_config;
use crate::git_config_entry::{self, GitConfigEntry};
use crate::options::option_value::{OptionValue, ProvenancedOptionValue};
use crate::options::theme;
-use crate::style::Style;
macro_rules! set_options {
([$( $field_ident:ident ),* ],
@@ -116,6 +115,9 @@ pub fn set_options(
set_options!(
[
+ color_moved,
+ color_moved_minus_style,
+ color_moved_plus_style,
color_only,
commit_decoration_style,
commit_style,
@@ -523,18 +525,15 @@ fn set_widths(
fn set_git_config_entries(opt: &mut cli::Opt, git_config: &mut git_config::GitConfig) {
// Styles
- for key in &["color.diff.old", "color.diff.new"] {
+ for key in &[
+ "color.diff.old",
+ "color.diff.new",
+ "color.diff.oldMoved",
+ "color.diff.newMoved",
+ ] {
if let Some(style_string) = git_config.get::<String>(key) {
- opt.git_config_entries.insert(
- key.to_string(),
- GitConfigEntry::Style(Style::from_str(
- &style_string,
- None,
- None,
- opt.computed.true_color,
- false,
- )),
- );
+ opt.git_config_entries
+ .insert(key.to_string(), GitConfigEntry::Style(style_string));
}
}