diff --git a/src/command/cmd.rs b/src/command/cmd.rs index 4283473..8e6a8b2 100644 --- a/src/command/cmd.rs +++ b/src/command/cmd.rs @@ -421,10 +421,7 @@ impl Cmd for SaveAndQuit { "wq" } fn execute(&self, _ctx: &CmdContext) -> Vec> { - vec![ - Box::new(effect::Save), - effect::change_mode(AppMode::Quit), - ] + vec![Box::new(effect::Save), effect::change_mode(AppMode::Quit)] } } @@ -2821,7 +2818,11 @@ mod tests { GridLayout::new(model, model.active_view()) } - fn make_ctx<'a>(model: &'a Model, layout: &'a GridLayout, registry: &'a CmdRegistry) -> CmdContext<'a> { + fn make_ctx<'a>( + model: &'a Model, + layout: &'a GridLayout, + registry: &'a CmdRegistry, + ) -> CmdContext<'a> { let view = model.active_view(); let (sr, sc) = view.selected; CmdContext { @@ -2875,7 +2876,8 @@ mod tests { fn move_selection_down_produces_set_selected() { let m = two_cat_model(); let layout = make_layout(&m); - let reg = default_registry(); let ctx = make_ctx(&m, &layout, ®); + let reg = default_registry(); + let ctx = make_ctx(&m, &layout, ®); let cmd = Move { kind: MoveKind::Relative(1, 0), cursor: CursorState::from_ctx(&ctx), @@ -2890,7 +2892,8 @@ mod tests { fn move_selection_clamps_to_bounds() { let m = two_cat_model(); let layout = make_layout(&m); - let reg = default_registry(); let ctx = make_ctx(&m, &layout, ®); + let reg = default_registry(); + let ctx = make_ctx(&m, &layout, ®); // Try to move way past the end let cmd = Move { kind: MoveKind::Relative(100, 100), @@ -2907,7 +2910,8 @@ mod tests { let mut bufs = HashMap::new(); bufs.insert("command".to_string(), "q".to_string()); let layout = make_layout(&m); - let reg = default_registry(); let mut ctx = make_ctx(&m, &layout, ®); + let reg = default_registry(); + let mut ctx = make_ctx(&m, &layout, ®); ctx.dirty = true; ctx.buffers = &bufs; let cmd = ExecuteCommand; @@ -2922,7 +2926,8 @@ mod tests { let mut bufs = HashMap::new(); bufs.insert("command".to_string(), "q".to_string()); let layout = make_layout(&m); - let reg = default_registry(); let mut ctx = make_ctx(&m, &layout, ®); + let reg = default_registry(); + let mut ctx = make_ctx(&m, &layout, ®); ctx.buffers = &bufs; let cmd = ExecuteCommand; let effects = cmd.execute(&ctx); @@ -2941,7 +2946,8 @@ mod tests { ]); m.set_cell(key, CellValue::Number(42.0)); let layout = make_layout(&m); - let reg = default_registry(); let ctx = make_ctx(&m, &layout, ®); + let reg = default_registry(); + let ctx = make_ctx(&m, &layout, ®); let cmd = ClearCellCommand { key: ctx.cell_key().clone().unwrap(), }; @@ -2958,7 +2964,8 @@ mod tests { ]); m.set_cell(key, CellValue::Number(99.0)); let layout = make_layout(&m); - let reg = default_registry(); let ctx = make_ctx(&m, &layout, ®); + let reg = default_registry(); + let ctx = make_ctx(&m, &layout, ®); let cmd = YankCell { key: ctx.cell_key().clone().unwrap(), }; @@ -2970,7 +2977,8 @@ mod tests { fn toggle_panel_open_and_focus() { let m = two_cat_model(); let layout = make_layout(&m); - let reg = default_registry(); let ctx = make_ctx(&m, &layout, ®); + let reg = default_registry(); + let ctx = make_ctx(&m, &layout, ®); let cmd = TogglePanelAndFocus { panel: effect::Panel::Formula, open: true, @@ -2989,7 +2997,8 @@ mod tests { fn toggle_panel_close_and_unfocus() { let m = two_cat_model(); let layout = make_layout(&m); - let reg = default_registry(); let ctx = make_ctx(&m, &layout, ®); + let reg = default_registry(); + let ctx = make_ctx(&m, &layout, ®); let cmd = TogglePanelAndFocus { panel: effect::Panel::Formula, open: false, @@ -3003,7 +3012,8 @@ mod tests { fn enter_advance_moves_down() { let m = two_cat_model(); let layout = make_layout(&m); - let reg = default_registry(); let ctx = make_ctx(&m, &layout, ®); + let reg = default_registry(); + let ctx = make_ctx(&m, &layout, ®); let cmd = EnterAdvance { cursor: CursorState::from_ctx(&ctx), }; @@ -3020,7 +3030,8 @@ mod tests { fn search_navigate_with_empty_query_returns_nothing() { let m = two_cat_model(); let layout = make_layout(&m); - let reg = default_registry(); let ctx = make_ctx(&m, &layout, ®); + let reg = default_registry(); + let ctx = make_ctx(&m, &layout, ®); let cmd = SearchNavigate(true); let effects = cmd.execute(&ctx); assert!(effects.is_empty()); @@ -3030,7 +3041,8 @@ mod tests { fn enter_edit_mode_produces_editing_mode() { let m = two_cat_model(); let layout = make_layout(&m); - let reg = default_registry(); let ctx = make_ctx(&m, &layout, ®); + let reg = default_registry(); + let ctx = make_ctx(&m, &layout, ®); let cmd = EnterEditMode { initial_value: String::new(), }; @@ -3044,7 +3056,8 @@ mod tests { fn enter_tile_select_with_categories() { let m = two_cat_model(); let layout = make_layout(&m); - let reg = default_registry(); let ctx = make_ctx(&m, &layout, ®); + let reg = default_registry(); + let ctx = make_ctx(&m, &layout, ®); let cmd = EnterTileSelect; let effects = cmd.execute(&ctx); assert_eq!(effects.len(), 2); // SetTileCatIdx + ChangeMode @@ -3061,7 +3074,8 @@ mod tests { // select always has something to operate on. let m = Model::new("Empty"); let layout = make_layout(&m); - let reg = default_registry(); let ctx = make_ctx(&m, &layout, ®); + let reg = default_registry(); + let ctx = make_ctx(&m, &layout, ®); let cmd = EnterTileSelect; let effects = cmd.execute(&ctx); assert_eq!(effects.len(), 2); // SetTileCatIdx + ChangeMode @@ -3071,7 +3085,8 @@ mod tests { fn toggle_group_under_cursor_returns_empty_without_groups() { let m = two_cat_model(); let layout = make_layout(&m); - let reg = default_registry(); let ctx = make_ctx(&m, &layout, ®); + let reg = default_registry(); + let ctx = make_ctx(&m, &layout, ®); let cmd = ToggleGroupAtCursor { is_row: true }; let effects = cmd.execute(&ctx); // No groups defined, so nothing to toggle @@ -3082,7 +3097,8 @@ mod tests { fn search_or_category_add_without_query_opens_category_add() { let m = two_cat_model(); let layout = make_layout(&m); - let reg = default_registry(); let ctx = make_ctx(&m, &layout, ®); + let reg = default_registry(); + let ctx = make_ctx(&m, &layout, ®); let cmd = SearchOrCategoryAdd; let effects = cmd.execute(&ctx); assert_eq!(effects.len(), 2); // SetPanelOpen + ChangeMode @@ -3097,7 +3113,8 @@ mod tests { fn cycle_panel_focus_with_no_panels_open() { let m = two_cat_model(); let layout = make_layout(&m); - let reg = default_registry(); let ctx = make_ctx(&m, &layout, ®); + let reg = default_registry(); + let ctx = make_ctx(&m, &layout, ®); let cmd = CyclePanelFocus { formula_open: false, category_open: false, @@ -3111,7 +3128,8 @@ mod tests { fn cycle_panel_focus_with_formula_panel_open() { let m = two_cat_model(); let layout = make_layout(&m); - let reg = default_registry(); let mut ctx = make_ctx(&m, &layout, ®); + let reg = default_registry(); + let mut ctx = make_ctx(&m, &layout, ®); ctx.formula_panel_open = true; let cmd = CyclePanelFocus { formula_open: true, @@ -3139,7 +3157,8 @@ mod tests { fn law_move_to_start_idempotent() { let m = two_cat_model(); let layout = make_layout(&m); - let reg = default_registry(); let ctx = make_ctx(&m, &layout, ®); + let reg = default_registry(); + let ctx = make_ctx(&m, &layout, ®); let cmd = Move { kind: MoveKind::ToStart(true), cursor: CursorState::from_ctx(&ctx), @@ -3165,7 +3184,8 @@ mod tests { fn law_toggle_group_involution() { let m = two_cat_model(); let layout = make_layout(&m); - let reg = default_registry(); let ctx = make_ctx(&m, &layout, ®); + let reg = default_registry(); + let ctx = make_ctx(&m, &layout, ®); let cmd = ToggleGroupAtCursor { is_row: true }; let first = effects_debug(&cmd.execute(&ctx)); let second = effects_debug(&cmd.execute(&ctx)); @@ -3181,7 +3201,8 @@ mod tests { fn law_sequence_associativity() { let m = two_cat_model(); let layout = make_layout(&m); - let reg = default_registry(); let ctx = make_ctx(&m, &layout, ®); + let reg = default_registry(); + let ctx = make_ctx(&m, &layout, ®); let mk_a = || { Move { @@ -3231,7 +3252,8 @@ mod tests { fn law_move_to_end_reaches_last_col() { let m = two_cat_model(); let layout = make_layout(&m); - let reg = default_registry(); let ctx = make_ctx(&m, &layout, ®); + let reg = default_registry(); + let ctx = make_ctx(&m, &layout, ®); let cmd = Move { kind: MoveKind::ToEnd(false), cursor: CursorState::from_ctx(&ctx), diff --git a/src/model/types.rs b/src/model/types.rs index 97e3ce8..e20515f 100644 --- a/src/model/types.rs +++ b/src/model/types.rs @@ -263,7 +263,6 @@ impl Model { self.data.get(key).cloned() } - /// Evaluate a cell, aggregating over any hidden (None-axis) categories. /// When `none_cats` is empty, delegates to `evaluate`. /// Otherwise, uses `matching_cells` with the partial key and aggregates