aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAge
...
* feat: add ScrollToTop action (#2110)Yves Biener2023-01-24
|
* Improve client disconnect handling (#2068)har7an2023-01-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * xtask/run: Use varargs when run with `-data-dir` Previously any additional arguments passed on the command line were ignored. Now they are appended to `cargo run ...` as documented. * server/os_i_o: Improve error message when IPC dies and display the last send/recv error to the user instead of a generic "Buffer full" message. * server/lib: Log error in `send_to_client!` so we will know when an error occured while trying to send a message to the client. The most likely cause for this is that the client buffer filled up and hence we cannot send any new messages. While we still disconnect the client as before, now we also write a log message that explains the situation. * utils/channel: Apply rustfmt * server/lib: Detect when client responds too slow and log a message before disconnecting it. * server/os_i_o: Add retry queue to client senders that is dynamically allocated on-demand and stores `ServerToClientMsg` in case the regular IPC channel is currently full. This acts as a dynamic buffer to hold and buffer messages for a while until the client hopefully catches up. Also write a message to the log to indicate when the client is recognized to be too slow in handling server messages. * server: apply rustfmt * utils/ipc: Add session name to "Disconnect" error * utils/ipc: Fix error message indent * server/os_i_o: Undo IPC channel extension via `Vec` and drastically increase the IPC message queue size instead. Measurements didn't discover a drastic increase in RAM caused by this, and it is a much easier fix for the problem at hand. * CHANGELOG: Add PR #2068
* errors: handle missing plugin caches (#2093)har7an2023-01-19
| | | | | | | | | | | | | * server/plugins: Always recreate plugin folders in case they aren't existent and don't mark errors to do so as non-fatal. The latter masks the underlying cause when e.g. the `.cache` folder is, for some reason, not writable by zellij (See #2092), whereas the former fixes problems arising from the user having purged their .cache/zellij folder entirely. * utils/errors: Rewrite panic message * changelog: Add PR #2093
* docs(changelog): support utf8 char in tab and paneJae-Heon Ji2023-01-19
|
* Support UTF-8 character in tab name and pane name (#2102)哇呜哇呜呀咦耶2023-01-19
| | | | | * Support UTF-8 character in tab name and pane name * Support UTF-8 character in tab name and pane name
* Errors: less unwrap in server (#2069)har7an2023-01-14
| | | | | | | | | | | | | | | | | | | | | | | * server/pty: Remove last `unwrap` * server/route: Remove calls to `unwrap` * server/screen: Remove calls to `unwrap` * WIP: server/plugins: Remove calls to unwrap * server/route: Apply rustfmt * server/plugins: Remove last `unwrap`s * server/screen: update tabs before rendering which was previously accidentally changed. * server/tab: Remove calls to `unwrap` * server/plugins: Add context to plugin panic reporter * changelog: Add PR #2069
* docs(changelog): bugfixesAram Drevekenin2023-01-13
|
* fix: wide-char drop on resize to 1 and invalid session names (#2082)朱李2023-01-13
| | | | | | | | | | | * fix: deny invalid session name * fix: `zellij attach --create SESSION_NAME` check session name * fix: drain_until(1) discard widechar * style(grid): add comment explaining the change Co-authored-by: Aram Drevekenin <aram@poor.dev>
* docs(changelog): copy_on_select = false fixThomas Linford2023-01-12
|
* fix(mouse): selection not ending on mouse release with copy_on_select set to ↵Thomas Linford2023-01-12
| | | | false (#2086)
* docs(changelog): add tmux close pane keyJae-Heon Ji2023-01-03
|
* add tmux close pane key (#2058)Cason Adams2023-01-03
| | | | | | | * add tmux close pane key * chore: update snapshots for new keybind Co-authored-by: Jae-Heon Ji <atx6419@gmail.com>
* style(fmt): rustfmtAram Drevekenin2022-12-24
|
* style(clippy): fix clippy lintAram Drevekenin2022-12-24
|
* docs(changelog): floating panes in layoutsAram Drevekenin2022-12-24
|
* Floating panes in layouts (#2047)Aram Drevekenin2022-12-24
| | | | | | | | | | | | | | | * work * tests passing * tests: floating panes in layouts * panes(plugins): floating plugins working * refactor(tab): layout applier * style(comment): remove outdated * style(fmt): rustfmt
* docs(changelog): remove nix supportAram Drevekenin2022-12-20
|
* chore(repo): remove nix support (#2038)Aram Drevekenin2022-12-20
|
* docs(changelog): add emeritusAram Drevekenin2022-12-20
|
* docs(changelog): visual error on resizeAram Drevekenin2022-12-19
|
* fix(panes): show visual error when failing to resize panes (#2036)Aram Drevekenin2022-12-19
| | | | | | | | | * fix(panes): show visual error when failing to resize pane vertically/horizontally * fix(resize): retry pane resize on rounding errors * fix(resize): proper error when resizing other panes into fixed panes * style(fmt): rustfmt
* WIP: Use `xtask` as build system (#2012)har7an2022-12-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * xtask: Implement a new build system xtask is a cargo alias that is used to extend the cargo build system with custom commands. For an introduction to xtask, see here: https://github.com/matklad/cargo-xtask/ The idea is that instead of writing makefiles, xtask requires no additional dependencies except `cargo` and `rustc`, which must be available to build the project anyway. This commit provides a basic implementation of the `build` and `test` subcommands. * xtask/deps: Add 'which' * xtask/test: Handle error when cargo not found * xtask/flags: Add more commands to perform different useful tasks. Includes: - clippy - format - "make" (composite) - "install" (composite) Also add more options to `build` to selectively compile plugins or leave them out entirely. * xtask/main: Return error when cargo not found * xtask/build: Add more subtasks - `wasm_opt_plugins` and - `manpage` that perform other build commands. Add thorough documentation on what each of these does and also handle the new `build` cli flags appropriately. * xtask/clippy: Add job to run clippy * xtask/format: Add job to run rustfmt * xtask/pipeline: Add composite commands that perform multiple atomic xtask commands sequentially in a pipeline sort of fashion. * xtask/deps: Pin dependencies * xtask/main: Integrate new jobs and add documentation. * xtask: Implement 'dist' which performs an 'install' and copies the resulting zellij binary along with some other assets to a `target/dist` folder. * cargo: Update xflags version * xtask: Measure task time, update tty title * xtask: Update various tasks * xtask: wasm-opt plugins in release builds automatically. * xtask/build: Copy debug plugins to assets folder * xtask: Add 'run' subcommand * xtask: Add arbitrary args to test and run * xtask: Rearrange CLI commands in help * xtask: Add deprecation notice * docs: Replace `cargo make` with `xtask` * github: Use `xtask` in workflows. * xtask: Add support for CI commands * xtask: Streamline error handling * github: Use new xtask commands in CI * xtask: Add 'publish' job * xtask/publish: Add retry when publish fails * xtask: Apply rustfmt * xtask: Refine 'make' deprecation warning * xtask: add task to build manpage * contributing: Fix e2e commands * xtask/run: Add missing `--` to pass all arguments following `xtask run` directly to the zellij binary being run. * xtask: Stay in invocation dir and make all tasks that need it change to the project root dir themselves. * xtask/run: Add `--data-dir` flag which will allow very quick iterations when not changing the plugins between builds. * xtask/ci: Install dependencies without asking * utils: Allow including plugins from target folder * utils/assets: Reduce asset map complexity * utils/consts: Update asset map docs * xtask: Fix plugin includes * xtask/test: Build plugins first because the zellij binary needs to include the plugins. * xtask/test: Fix formatting * xtask: Add notice on how to disable it
* hotfix: update plugins to the latest versions so we can developAram Drevekenin2022-12-15
|
* docs(changelog): show visual error on failed horizontal/vertical splitAram Drevekenin2022-12-14
|
* fix(panes): show visual error when unable to split panes ↵Aram Drevekenin2022-12-14
| | | | | | | vertically/horizontally (#2025) * fix(panes): show visual error when failing to split pane vertically/horizontally * fix: lockfile
* chore: Bump development versionAndreas Hartmann2022-12-13
|
* chore(release): v0.34.4Andreas Hartmann2022-12-13
|
* chore: Bump development versionsAndreas Hartmann2022-12-13
|
* Add PR #2013har7an2022-12-13
|
* Fix: Remove shell.exists() check from get_default_terminal (#2013)Nuno David2022-12-13
| | | | | * Fix: Make sure to get full path from SHELL env * Feat: Revert to previous get_default_terminal and just remove shell exists check
* Hotfix: Resize with plugin panes (#2019)har7an2022-12-13
| | | | | | | | | | | | | | | | | * server/panes/tiled/grid: Fix area calculation for debug assertions. Now also considers fixed-size panes correctly. * server/panes/tiled/grid: Refactor function to make it more readable and remove some implicitly handled "special" cases. * server/panes/tiled/grid: Handle plugins panes like any other pane type and only check whether they are fixed-size panes, too. * changelog: Add PR #2019
* fix(ci): move `nix build` -> `nix-develop`a-kenji2022-12-12
| | | | | | | | | | | | | | This will trigger the nix build workflow, only on changes in the nix files. - This won't generate precompiled artifacts for any person wanting to use them from the main branch anymore. Also PR's that pass CI won't be able to be run with: ``` nix run github:zellij-org/zellij/pr# ``` without compilation anymore on any linux, or darwin system.
* chore(release): v0.34.3Aram Drevekenin2022-12-09
|
* chore(version): patch version due to CI difficultiesAram Drevekenin2022-12-09
|
* chore(release): add pluginsAram Drevekenin2022-12-09
|
* chore(release): v0.34.2Aram Drevekenin2022-12-09
|
* chore(version): patch version due to CI difficultiesAram Drevekenin2022-12-09
|
* Makefile: Fix CI ordering/dependencies (#2004)har7an2022-12-09
|
* chore(version): patch version due to CI difficultiesAram Drevekenin2022-12-09
|
* HOTFIX: utils: Move plugins into new assets folder (#2003)har7an2022-12-09
| | | that is included in the utils to make builds pass.
* HOTFIX: Feature/ignore asset map (#2002)har7an2022-12-09
| | | | | | | * utils: feature-gate asset map to make publishing on crates.io possible without compile errors. * setup: Fix asset_map feature
* chore(release): v0.34.0Aram Drevekenin2022-12-09
|
* Reimplement resize code (#1990)har7an2022-12-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* docs(changelog): loading screenAram Drevekenin2022-12-07
|
* feat(ux): show loading screen (#1997)Aram Drevekenin2022-12-07
| | | | | * feat(ux): show loading prompt * style(fmt): rustfmt
* errors: Maintain caller location in `to_log` (#1994)har7an2022-12-07
| | | | | | | | | | | | | | | | | * utils/errors: Add caller location to `to_log` by building the log record manually and filling in the callers file and line manually. It is currently not possible to determine a callers module, hence the module is now set to "???" in all log entries logged this way. Nonetheless, the file and line number are sufficient to find the logs source. * utils/errors: Reimplement `to_log` default implementation in the `LoggableError` trait. * changelog: Add PR #1994 errors: Maintain caller location in `to_log`
* docs(changelog): reduce extraneous cross-thread messagingAram Drevekenin2022-12-06
|
* refactor(messaging): reduce extraneous cross-thread messaging (#1996)Aram Drevekenin2022-12-06
| | | | | * refactor(messaging): reduce extraneous cross-thread messaging * style(fmt): rustfmt
* docs(changelog): plugin loading data flowAram Drevekenin2022-12-06
|
* refactor(plugins): fix plugin loading data flow (#1995)Aram Drevekenin2022-12-06
|