refactor out non-view field from cursor

[?]
Jul 22, 2025, 1:22 PM
K63JN6CRRCP4S5NY2FPH46Q7QLWH4B6QXQHKFPVQBHHIHNDVXFDQC

Dependencies

  • [2] 4ELJZGRJ load and store all change diffs at once
  • [3] L6KSEFQI move cursor related stuff into its module
  • [4] BFN2VHZS refactor file stuff into sub-mod
  • [5] 23SFYK4Q big view refactor into a new crate
  • [6] XSZZB47U refactor stuff into lib
  • [7] ACDXXAX2 refactor main's updates into smaller fns
  • [8] ESMM3FEL test selection reindexing
  • [9] SASAN2XC use nav-scrollable
  • [10] YKHE3XMW refactor diffs handling
  • [11] KWTBNTO3 diffs selection and scrolling
  • [12] 5MUEECMJ smooth scrolling nav
  • [13] 3TLPJ57B alt scroll via context and couple fixes
  • [14] AI3IMKC3 refactor stairs
  • [15] WXQBBQ2A update nightly
  • [16] PTWZYQFR use nav-scrollable for repo status
  • [17] UR4J677R nav for log changes and refactors
  • [18] A5YBC77V record!
  • [19] KEPKF3WO unify diffs handling, simplify view
  • [20] BNHJU2DU clippy fixes
  • [21] JE44NYHM display log files diffs
  • [22] 3BK22XE5 add a test for hover btn and more refactors
  • [23] KQABQCCZ update rust to 1.88
  • [24] RDRBP7AL auto-scroll status selection
  • [25] 4PNWU55O replace the circular hor navigation
  • [*] 6YZAVBWU Initial commit
  • [*] WT3GA27P add cursor with selection

Change contents

  • edit in inflorescence_view/src/cursor.rs at line 28
    [6.3386][12.261:359]()
    /// Last directional key down that's not yet been released
    pub held_key: Option<HeldKey>,
  • replacement in inflorescence/src/main.rs at line 325
    [11.12165][11.12165:12210]()
    }) = state.cursor.selection.as_ref()
    [11.12165]
    [15.201]
    }) = state.cursor.view.selection.as_ref()
  • replacement in inflorescence/src/main.rs at line 355
    [17.10043][17.10043:10085]()
    state.cursor.selection = None
    [17.10043]
    [15.746]
    state.cursor.view.selection = None
  • replacement in inflorescence/src/main.rs at line 367
    [17.10291][17.10291:10345]()
    state.cursor.selection = Some(selection);
    [17.10291]
    [17.10345]
    state.cursor.view.selection = Some(selection);
  • replacement in inflorescence/src/main.rs at line 385
    [11.12328][11.12328:12373]()
    }) = state.cursor.selection.as_ref()
    [11.12328]
    [15.1020]
    }) = state.cursor.view.selection.as_ref()
  • replacement in inflorescence/src/main.rs at line 419
    [17.10615][17.10615:10661]()
    state.cursor.selection = None
    [17.10615]
    [15.1850]
    state.cursor.view.selection = None
  • replacement in inflorescence/src/main.rs at line 432
    [17.11025][17.11025:11083]()
    state.cursor.selection = Some(selection);
    [17.11025]
    [17.11083]
    state.cursor.view.selection = Some(selection);
  • replacement in inflorescence/src/main.rs at line 556
    [7.7631][7.7631:7672]()
    }) = state.cursor.selection.as_mut()
    [7.7631]
    [7.7672]
    }) = state.cursor.view.selection.as_mut()
  • replacement in inflorescence/src/main.rs at line 675
    [8.9110][8.9110:9165]()
    if let Some(selection) = cursor.selection.take() {
    [8.9110]
    [7.9641]
    if let Some(selection) = cursor.view.selection.take() {
  • replacement in inflorescence/src/main.rs at line 788
    [8.10442][8.10442:10480]()
    cursor.selection = selection;
    [8.10442]
    [2.9662]
    cursor.view.selection = selection;
  • replacement in inflorescence/src/main.rs at line 808
    [17.12391][7.13057:13098](),[7.13057][7.13057:13098]()
    }) = state.cursor.selection.as_mut()
    [17.12391]
    [15.2861]
    }) = state.cursor.view.selection.as_mut()
  • replacement in inflorescence/src/main.rs at line 1029
    [16.8111][16.8111:8175]()
    let diff_nav_subs = match state.cursor.selection.as_ref() {
    [16.8111]
    [11.15805]
    let diff_nav_subs = match state.cursor.view.selection.as_ref() {
  • replacement in inflorescence/src/main.rs at line 1110
    [10.6244][17.14984:15044]()
    let selection = match state.cursor.selection.as_ref() {
    [10.6244]
    [11.17624]
    let selection = match state.cursor.view.selection.as_ref() {
  • replacement in inflorescence/src/main.rs at line 1229
    [17.18515][17.18515:18531]()
    cursor,
    [17.18515]
    [17.18531]
    cursor: &cursor.view,
  • replacement in inflorescence/src/cursor.rs at line 5
    [9.9116][12.4114:4187]()
    Dir, HeldKey, LogChangeFileSelection, Msg, Select, Selection, State,
    [9.9116]
    [5.29306]
    Dir, HeldKey, LogChangeFileSelection, Msg, Select, Selection,
    State as ViewState,
  • edit in inflorescence/src/cursor.rs at line 17
    [17.20740]
    [4.8577]
    #[derive(Debug, Default)]
    pub struct State {
    pub view: ViewState,
    /// Last directional key down that's not yet been released
    pub held_key: Option<HeldKey>,
    }
  • replacement in inflorescence/src/cursor.rs at line 131
    [14.118][14.118:177]()
    let (selection, task) = match state.selection.take() {
    [14.118]
    [14.177]
    let (selection, task) = match state.view.selection.take() {
  • replacement in inflorescence/src/cursor.rs at line 423
    [14.6976][14.6976:7009]()
    state.selection = selection;
    [14.6976]
    [14.7009]
    state.view.selection = selection;
  • replacement in inflorescence/src/cursor.rs at line 442
    [14.7097][14.7097:7156]()
    let (selection, task) = match state.selection.take() {
    [14.7097]
    [14.7156]
    let (selection, task) = match state.view.selection.take() {
  • replacement in inflorescence/src/cursor.rs at line 732
    [11.38655][14.13974:14007]()
    state.selection = selection;
    [11.38655]
    [14.14007]
    state.view.selection = selection;
  • replacement in inflorescence/src/cursor.rs at line 742
    [13.4343][13.4343:4380]()
    match state.selection.as_mut() {
    [13.4343]
    [13.4380]
    match state.view.selection.as_mut() {
  • replacement in inflorescence/src/cursor.rs at line 816
    [13.6357][13.6357:6394]()
    match state.selection.as_mut() {
    [13.6357]
    [13.6394]
    match state.view.selection.as_mut() {
  • replacement in inflorescence/src/cursor.rs at line 896
    [17.35034][17.35034:35073]()
    match state.selection.take() {
    [17.35034]
    [17.35073]
    match state.view.selection.take() {
  • replacement in inflorescence/src/cursor.rs at line 964
    [17.37195][14.15594:15627](),[14.15594][14.15594:15627]()
    state.selection = selection;
    [17.37195]
    [17.37196]
    state.view.selection = selection;
  • edit in inflorescence/src/cursor.rs at line 982
    [17.37397]
    [17.37397]
    .view
  • replacement in inflorescence/src/cursor.rs at line 1135
    [17.42523][14.15804:15837](),[11.45970][14.15804:15837]()
    state.selection = selection;
    [17.42523]
    [14.15837]
    state.view.selection = selection;
  • replacement in inflorescence/src/cursor.rs at line 1149
    [12.7441][12.7441:7486]()
    match state.selection.as_mut() {
    [12.7441]
    [12.7486]
    match state.view.selection.as_mut() {
  • replacement in inflorescence/src/cursor.rs at line 1300
    [11.49120][11.49120:49163]()
    match state.selection.take() {
    [11.49120]
    [11.49163]
    match state.view.selection.take() {
  • replacement in inflorescence/src/cursor.rs at line 1341
    [3.26577][11.50604:50637]()
    state.selection = selection;
    [3.26577]
    [11.50637]
    state.view.selection = selection;