diff options
author | har7an <99636919+har7an@users.noreply.github.com> | 2022-12-08 12:50:28 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-12-08 12:50:28 +0000 |
commit | 62eaea15833b34f40270dc1ce8f6d57639dc4bdd (patch) | |
tree | eb06c1f3075ccb5ed6f536d427e14c4fdbdef4e2 /zellij-utils/src/cli.rs | |
parent | 420c7c319b1c328af9994f758264753c9467aded (diff) |
Reimplement resize code (#1990)
* server/floating_panes: Start removing `unwrap`s
* server/panes: Remove more `unwrap`s
in floating panes code.
* utils/data: Unify `Direction` type
which was previously present in multiple locations.
Also start working on a new Resize Method (type `ResizeStrategy`), to
remove code duplication in the resize code.
* server: Implement new resize handling
with the `ResizeStrategy` type. Add a new action with the ability to
invoke it from the CLI. Take care to maintain backwards-compatibility in
terms of configuring the new resize mode.
* utils/layout: Add conversion for SplitDirection
from `data::Direction`.
* utils/data: Add impl for `Direction`
* server/panes: Rework tiled pane resizing
but it's currently still broken in a few regards and misses ability to
perform "regular" increase/decrease.
* server/panes/tiled_panes: Add debug assertion
to catch if the total area of all panes (in percent) is different from
100.0 at some point.
* server/panes/tiled/grid: Fix resize bug
caused by the fact that neighboring plugin panes previously weren't
filtered from resize operations, even though they cannot be resized at
all.
* utils/data: Add `invert` for `Resize`
* utils/data: Add member to `ResizeStrategy`
that controls whether we invert resize behavior when increasing size
towards a bounadry. This maintains current behavior.
* server/screen: Handle new attribute
in `ResizeStrategy`
* server/panes/resizer: Return `anyhow::Error`
* server/panes/tiled: Implement resize increase/decrease
without specifying a direction (towards all possible directions).
Currently broken in some cases.
* server/pane/tiled/grid: Don't return early
to preserve resize debug assertions.
* server/pane/tiled/grid: Fix resize bug
caused by checking for the wrong alignments in some cases. Also refactor
the code for looking up aligned panes.
* server/panes/tiled/grid: Cleanup code
and remove log statements and unused functions.
* server/panes/float/grid: Invert resize
if the floating pane is hitting a boundary already.
* plugins/status-bar: Add hints for new resize
* server: Use new resize method
* server: Fix tests
with new functions and result types.
* apply rustfmt
* utils: Apply rustfmt
* server/panes/floating: Fix resize increase
behavior which would previously, upon hitting a boundary, cause the pane
to invert the resize operation, which is wrong. Instead, it now does not
resize floating panes on an undirected resize "increase" in directions
where it hits boundaries.
* server/panes/tiled: Use correct resize increments
The values for the resize increments were previously wrong, causing many
of the tests to fail.
* server/panes/tiled: Fix resize checks
to correctly consider fixed-size panes.
* utils/assets/config: Update default config
with new keybindings for resize mode.
* server/panes/tiled: Fix resize check
* server/panes/tiled: Use shortener for `Direction`
type in `change_pane_size` function.
* server/panes/tiled: Restore resize behavior
for undirected resizes, to the way it was before this PR.
* server/panes/floating: Fix resize increment
for undirected resizes
* utils/data: Fix doctest
* utils: Fix test snapshots
for tests working with the default config
* changelog: Add PR #1990
Diffstat (limited to 'zellij-utils/src/cli.rs')
-rw-r--r-- | zellij-utils/src/cli.rs | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/zellij-utils/src/cli.rs b/zellij-utils/src/cli.rs index 694032dc1..1d62e7d07 100644 --- a/zellij-utils/src/cli.rs +++ b/zellij-utils/src/cli.rs @@ -1,8 +1,7 @@ -use crate::data::InputMode; +use crate::data::{Direction, InputMode, Resize}; use crate::setup::Setup; use crate::{ consts::{ZELLIJ_CONFIG_DIR_ENV, ZELLIJ_CONFIG_FILE_ENV}, - input::actions::{Direction, ResizeDirection}, input::options::CliOptions, }; use clap::{Parser, Subcommand}; @@ -184,8 +183,11 @@ pub enum CliAction { Write { bytes: Vec<u8> }, /// Write characters to the terminal. WriteChars { chars: String }, - /// Resize the focused pane in the specified direction. [right|left|up|down|+|-] - Resize { resize_direction: ResizeDirection }, + /// [increase|decrease] the focused panes area at the [left|down|up|right] border. + Resize { + resize: Resize, + direction: Option<Direction>, + }, /// Change focus to the next pane FocusNextPane, /// Change focus to the previous pane |