replace the circular hor navigation

[?]
Jun 12, 2025, 5:26 PM
4PNWU55OLKQGTREOE7P27SGX4HPQO3NMHBABN27WQMCQADBGJJWQC

Dependencies

  • [2] L6KSEFQI move cursor related stuff into its module
  • [3] VJNWIGSX clippy
  • [4] BFN2VHZS refactor file stuff into sub-mod
  • [*] WT3GA27P add cursor with selection

Change contents

  • replacement in inflorescence/src/cursor.rs at line 317
    [2.20411][3.985:1021]()
    Msg::Left | Msg::Right => {
    [2.20411]
    [2.20459]
    Msg::Left => {
    if let Some(_repo) = repo.as_ref() {
    let (selection, task): (Option<Selection>, Task<repo::MsgIn>) =
    match state.selection.take() {
    Some(Selection::LogChange {
    ix,
    hash,
    message,
    diffs,
    file: Some(_),
    }) => (
    Some(Selection::LogChange {
    ix,
    hash,
    message,
    diffs,
    file: None,
    }),
    Task::none(),
    ),
    selection @ (Some(Selection::UntrackedFile {
    ..
    })
    | Some(Selection::ChangedFile {
    ..
    })
    | Some(Selection::LogChange {
    file: None,
    ..
    })
    | None) => (selection, Task::none()),
    };
    state.selection = selection;
    task
    } else {
    Task::none()
    }
    }
    Msg::Right => {
  • replacement in inflorescence/src/cursor.rs at line 364
    [2.20828][2.20828:20862]()
    file,
    [2.20828]
    [2.20862]
    file: None,
  • replacement in inflorescence/src/cursor.rs at line 366
    [2.20894][2.20894:21679]()
    if file.is_none() {
    let log_entry = repo.log.get(ix).unwrap();
    let (file, task) = if let Some(path) =
    log_entry.file_paths.first()
    {
    (
    Some(LogChangeFileSelection {
    ix: 0,
    path: path.clone(),
    }),
    Task::none(),
    )
    } else {
    (None, Task::none())
    };
    [2.20894]
    [2.21679]
    let log_entry = repo.log.get(ix).unwrap();
    let (file, task) = if let Some(path) =
    log_entry.file_paths.first()
    {
  • replacement in inflorescence/src/cursor.rs at line 371
    [2.21713][2.21713:22009]()
    Some(Selection::LogChange {
    ix,
    hash,
    message,
    diffs,
    file,
    [2.21713]
    [2.22009]
    Some(LogChangeFileSelection {
    ix: 0,
    path: path.clone(),
  • replacement in inflorescence/src/cursor.rs at line 375
    [2.22049][2.22049:22091]()
    task,
    [2.22049]
    [2.22091]
    Task::none(),
  • replacement in inflorescence/src/cursor.rs at line 378
    [2.22162][2.22162:22652]()
    (
    Some(Selection::LogChange {
    ix,
    hash,
    message,
    diffs,
    file: None,
    }),
    Task::none(),
    )
    }
    [2.22162]
    [2.22652]
    (None, Task::none())
    };
    (
    Some(Selection::LogChange {
    ix,
    hash,
    message,
    diffs,
    file,
    }),
    task,
    )
  • edit in inflorescence/src/cursor.rs at line 395
    [2.22861]
    [2.22861]
    ..
    })
    | Some(Selection::LogChange {
    file: Some(_),