add replacement diff details

[?]
Apr 20, 2025, 10:06 AM
RPCIGCNSMPYGTMTUXJRIJG76L2WLRDHGJJZHE4DJ4UT5RPNZRNPAC

Dependencies

  • [2] SWWE2R6M display basic repo stuff
  • [3] KT5UYXGK fix selection after adding file, add changed file diffs
  • [4] 4WO3ZJM2 show untracked files' contents
  • [5] W4LFX7IH group diffs by file name
  • [6] AMPZ2BXK show changed files diffs (only Edit atm)
  • [7] YBJRDOTC make all repo actions async
  • [*] 6YZAVBWU Initial commit

Change contents

  • replacement in crates/libflowers_client/src/repo.rs at line 60
    [4.263][3.459:476](),[3.459][3.459:476]()
    Replacement,
    [4.263]
    [3.476]
    Replacement {
    line: usize,
    /// Deleted lines
    change_contents: Contents,
    /// Added lines
    replacement_contents: Contents,
    },
  • replacement in crates/libflowers_client/src/repo.rs at line 532
    [4.1203][5.1683:1798](),[5.1798][4.1309:1429](),[4.1309][4.1309:1429](),[4.1429][5.1799:1818]()
    changes.entry(local.path.clone()).or_default().insert(
    ChangedFileDiff::Edit {
    line,
    deleted,
    contents,
    },
    );
    [4.1203]
    [4.1447]
    let diff = ChangedFileDiff::Edit {
    line,
    deleted,
    contents,
    };
    changes.entry(local.path.clone()).or_default().insert(diff);
  • replacement in crates/libflowers_client/src/repo.rs at line 540
    [2.3887][3.3219:3278]()
    change: _,
    replacement: _,
    [2.3887]
    [2.3940]
    change,
    replacement,
  • replacement in crates/libflowers_client/src/repo.rs at line 543
    [2.3963][3.3279:3308]()
    encoding: _,
    [2.3963]
    [5.1819]
    encoding,
  • replacement in crates/libflowers_client/src/repo.rs at line 545
    [5.1838][5.1838:2002]()
    changes
    .entry(local.path.clone())
    .or_default()
    .insert(ChangedFileDiff::Replacement);
    [5.1838]
    [5.2002]
    let line = local.line;
    let raw_change_contents =
    get_change_contents(repo_changes, change, &diff.contents)
    .unwrap();
    let change_contents =
    try_decode_contents(raw_change_contents, encoding);
    let raw_replacement_contents = get_change_contents(
    repo_changes,
    replacement,
    &diff.contents,
    )
    .unwrap();
    let replacement_contents =
    try_decode_contents(raw_replacement_contents, encoding);
    let diff = ChangedFileDiff::Replacement {
    line,
    change_contents,
    replacement_contents,
    };
    changes.entry(local.path.clone()).or_default().insert(diff);
  • replacement in crates/flowers_ui/src/main.rs at line 757
    [6.3784][6.3784:3848]()
    repo::ChangedFileDiff::Replacement => None,
    [6.3784]
    [6.3848]
    // TODO: there are 2 contents! Maybe make the `ChangedFileContents` an enum
    repo::ChangedFileDiff::Replacement {
    line: _,
    change_contents,
    replacement_contents,
    } => None,