* refactor: move resizing methods to pane resizer
* refactor: move focus and close methods to pane grid
* refactor(tab): move move methods positioning to pane grid
* refactor(tab): separate pane resizer from pane grid
* style(fmt): make rustfmt happy
* style(fmt): make clippy happy
* ensure clippy runs on all targets
* use 'AtomicBool' instead of 'Mutex<bool>'
* remove unused import
* remove 'mem::drop' no-ops
* remove loop that never loops
* workaround to not write csi mouse seqs to terminal
* tab: copy selection to clipboard only if selecting was initiated with left click
* cleanup debug log messages
* unset selecting_with_mouse when selection is empty
* Read pane name from layout
* Update pane name at runtime
* Fix tests
* prefer and render pane name over pane title
* fix clippy errors
* fix after rebase
* feat(status-bar): add draft for multiple tips
* feat: add TIPS_MAP
* Simplified 'tip' function.
* chore: update file structure
* feat(status-bar): update method of Tip rendering
* feat(status-bar): change type of tip in State
* refactor(status-bar): related to random tip selection
* feat(status-bar): add simple local cache for testing
* feat(status-bar): add cache system for tip data
* Add mpadir to wasm for plugin to access zellij temp folder.
* refactor(status-bar): update cache and utils
* fix(status-bar): update file read error
* refactor(status-bar): update macros
* chore(status-bar): delete test data
* chore(status-bar): update missing fixes
* feat(status-bar): add detailed error
* style: make clippy
Fix#877. Avoid calculating scrollback buffer size on each render, since the calculation becomes slower proportionally to the amount of lines buffered, and to the width of each line.
* wip: keep track of scrollback buffer size
* account for lines dropped by bounded_push
* fix: use saturating sub
* fix: account for 0 width lines
* remove log messages
* optimize EMPTY_TERMINAL_CHARACTER diff
return a diff for EMPTY_TERMINAL_CHARACTER only when necessary (when new_styles different than current), so to avoid
emitting a ansi reset code every time.
* simply character styles diffing logic
* refactor(tab): close_pane returns closed pane
Prepare for break pane command by making close_pane return the closed
pane. Also split the function up to hopefully be more readable.
* more refactoring
* refactor(screen): support multiple mirrored clients
* style(fmt): make rustfmt happy
* style(clippy): make clippy happy
* whitespace
* github, y u no update CI?!
* is this a cache issue?
* is it the checkout cache?
* no cache at all?
* Debug
* fix gototab
* decoment
* gototab none in wasm_vm
* gototab none in wasm_vm
* the fun never ends
* tests(e2e): update infra and add multiple user mirroring test
* refactor(tab): change structs in tabs and terminal panes to support multiple users
* style(fmt): make rustfmt happy
* style(fmt): make clippy happy
* fix(options): handling ond verwriting cli opts
* previously it was only possible to turn off certain features with a
command line option, now it is possible to also overwrite this
behavior in a sane way, for that some breaking changes happened:
following options got renamed and inverted:
```
disable_mouse_mode -> mouse_mode
no_pane_frames -> pane_frames
```
following cli options got added:
```
mouse-mode [bool]
pane-frames [bool]
simplified-ui [bool]
```
the following cli flag got removed:
```
simplified-ui
```
They can be specified in the following way:
```
zellij options --mouse-mode true
```
in order to enable the mouse mode, even if it is turned off in the
config file:
```
mouse_mode: false
```
The order is now as follows:
1. corresponding flag (`disable-mouse-mode`)
2. corresponding option (`mouse-mode`)
3. corresponding config option (`mouse_mode`)
* add: options and flags for the same value conflict
* example:
```
zellij options --mouse-mode true --disable-mouse-mode`
```
```
$ error: The argument '--mouse-mode <mouse-mode>' cannot be used with '--disable-mouse-mode'
```
add the ability to toggle boolean options with a cli flag:
example:
if the pane frames are turned off in the config file,
then passing in the `--no-pane-frames` flag will toggle the
pane frames on