summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2022-12-06style(fmt): rustfmtreduce-extraneous-rendersAram Drevekenin
2022-12-06refactor(messaging): reduce extraneous cross-thread messagingAram Drevekenin
2022-12-06docs(changelog): plugin loading data flowAram Drevekenin
2022-12-06refactor(plugins): fix plugin loading data flow (#1995)Aram Drevekenin
2022-12-01build(deps): bump DeterminateSystems/update-flake-lock from 14 to 15 (#1982)dependabot[bot]
Bumps [DeterminateSystems/update-flake-lock](https://github.com/DeterminateSystems/update-flake-lock) from 14 to 15. - [Release notes](https://github.com/DeterminateSystems/update-flake-lock/releases) - [Commits](https://github.com/DeterminateSystems/update-flake-lock/compare/v14...v15) --- updated-dependencies: - dependency-name: DeterminateSystems/update-flake-lock dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-01[create-pull-request] automated change (#1980)a-kenji
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2022-12-01flake.lock: Update (#1981)a-kenji
Flake lock file updates: • Updated input 'crate2nix': 'github:kolloch/crate2nix/3e6fbcc8ecd384018196223023cdd7868bbce4e6' (2022-10-31) → 'github:kolloch/crate2nix/e4414cc2579d6ab11e9542f49eeb302b451bf0e2' (2022-11-21) • Updated input 'flake-compat': 'github:edolstra/flake-compat/b4a34015c698c7793d592d66adbab377907a2be8' (2022-04-19) → 'github:edolstra/flake-compat/009399224d5e398d03b22badca40a37ac85412a1' (2022-11-17) • Updated input 'flake-utils': 'github:numtide/flake-utils/6ee9ebb6b1ee695d2cacc4faa053a7b9baa76817' (2022-10-29) → 'github:numtide/flake-utils/5aed5285a952e0b949eb3ba02c12fa4fcfef535f' (2022-11-02) • Updated input 'nixpkgs': 'github:nixos/nixpkgs/412b9917cea092f3d39f9cd5dead4effd5bc4053' (2022-10-30) → 'github:nixos/nixpkgs/a115bb9bd56831941be3776c8a94005867f316a7' (2022-11-27) • Updated input 'rust-overlay': 'github:oxalica/rust-overlay/8f81faec35508647ced65c44fd3e8648a5518afb' (2022-10-31) → 'github:oxalica/rust-overlay/3158e47f6b85a288d12948aeb9a048e0ed4434d6' (2022-11-30) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2022-11-30docs(changelog): fix missing theme contentsJae-Heon Ji
2022-11-30fix(themes): missing tokyo-night-dark theme (#1972)Jae-Heon Ji
2022-11-23docs(changelog): pane focus fixAram Drevekenin
2022-11-23fix(panes): focus change when closing and between tabs (#1966)Aram Drevekenin
* fix(panes): do not forget pane focus when switching tabs or closing panes * style(fmt): rustfmt * fix(tests): e2e snapshots
2022-11-23docs(changelog): server/client crash fixAram Drevekenin
2022-11-23fix(router): handle client empty message (#1965)Aram Drevekenin
* fix(router): handle client empty message * style(fmt): rustfmt
2022-11-22plugins: rework plugin loading (#1924)har7an
* zellij: Move "populate_data_dir" to utils and rewrite it to take a second, optional parameter. This allows controlling whether only a specific asset should be installed. We do this as preparation for being able to recover from a plugin version mismatch error, where we will need to repopulate the data dir for offending plugins. * server/wasm_vm: Recover from PluginVersionMismatch Adds a global plugin cache that stores, per plugin config, the wasmer module associated with it. Make `start_plugin` take the pre-populated module and create only the necessary modifications to the wasm env etc. * utils: Fix formatting * zellij: Delete non-existent module * utils/shared: fix missing "set_permissions" function when not on unix systems. * server/wasm_vm: Don't populate cachedir with serialized versions of the WASM plugins. * utils/input/plugins: load wasm bytes from assets for builtin plugin specifications. This foregoes any need to: - Dump the plugin bytes to disk at all and - subsequently read the plugin bytes from disk * zellij: Disable default asset installation which previously installed only the builtin plugins to disk. This is no longer necessary because now we can load the builtin plugins directly from the application binary. * utils/input/plugins: Update docs * utils/input/plugins: Add 'is_builtin' method to `PluginConfig` that returns true if the plugin configuration refers to a builtin plugin. * wasm_vm: Remove plugin version mismatch handling because a version mismatch in an internal plugin is now unfixable, with the plugins being loaded from the running binary, and we have no control over external plugins in the first place. * cargo: Reintroduce feature flag for `disable_automatic_asset_installation` * utils/consts: Add `ASSET_MAP` which currently contains the compiled WASM plugins. * utils/shared: Fix clippy lint * utils/errors: Add more `ZellijError` variants * zellij: Make loading internal plugins optional by reenabling the `disable_automatic_asset_installation` flag and utilizing it for this purpose. Changes plugin search behavior to throw better errors in case the builtin plugins cannot be found, depending on the state of this feature. * utils/errors: Apply rustfmt * utils/setup: Allow dumping builtin plugins to a specified folder on disk. This is meant to be an "escape hatch" for users that have accidentally deleted the builtin plugins from disk (in cases where the plugins aren't loaded from inside the zellij binary). * utils/input/plugins: Update docs * utils/setup: Add hint to `setup --check` output when zellij was built without the `disable_automatic_asset_installation` flag and will thus not read builtin plugins from the "PLUGIN DIR". * utils/setup: Refine `setup --dump-plugins` to dump to: - The default "DATA DIR" when no option is provided with the argument, or - The provided option, if existent Also print a message to stdout with the destination folder that the plugins are dumped to. * server/wasm_vm: Ignore "NotFound" errors when attempting to delete the non-existent plugin data directories. This silences an error message that otherwise ends up in the logs when quitting zellij. * utils/errors: Extend "BuiltinPluginMissing" msg to hint the user to the `zellij setup --dump-plugins` command to fix their issues for them! * utils/errors: Track caller in calls to `non_fatal` which will hopefully, once closures can be annotated, allow us to display the location of the call to `non_fatal` in log messages. * utils/input/plugins: Fix plugin lookup to prefer internal assets if available. It was previously broken because sorting the paths vector before deduping it would bring the paths into a wrong order, looking up in the plugin folder first. Also print a log message when a plugin is being loaded from the internal assets but exists on disk, too. * Apply rustfmt * make: build-e2e depends on wasm-opt-plugins so it updates the assets when building the binary * server/qwasm_vm: Remove var * utils/consts: Add plugins from target folder and include them in the asset map from there, too. Include plugins from debug or release builds, depending on the build type. * utils/consts: Take release plugins from assets instead of the target/release folder. The latter will break installations from crates.io, because we currently rely on including the plugins we pre-compiled and distribute along with the binary. * server/wasm_vm: Reintroduce .cache folder to speedup subsequent application launches. * cargo: Reorder workspace members to improve behavior with `cargo make` with respect to compilation order. * Makefile: restructure plugin tasks * Makefile: Fix CI errors * Makefile: More CI diagnosis * github: Install wasm-opt in e2e test workflow * Makefile: Build plugins for e2e-test target * server/Wasm_vm: Reorder plugin folder creation so no folders are created in the plugin cache when loading a plugin fails due to not being present or similar. * update plugins testcommit * makefile: Change job order * changelog: Add PR #1924
2022-11-22docs(changelog): fix empty session nameJae-Heon Ji
2022-11-22fix: empty session name (#1959)Jae-Heon Ji
2022-11-21docs(changelog): improve render performanceAram Drevekenin
2022-11-21performance(rendering): improve rendering performance (#1960)Aram Drevekenin
* refactor(plugins): plugins now need to explicitly ask to be rendered * performance(render): remove various needless renders * performance(render): cache boundaries * performance(render): adjust tests and cache cursor location/shape * style(comment): remove outdated * style(fmt): rustfmt
2022-11-18docs(changelog): client buffer overflow fixAram Drevekenin
2022-11-18fix(router): handle client buffer overflow (#1955)Aram Drevekenin
* fix(router): handle client buffer overflow * style(fmt): rustfmt
2022-11-17docs(changelog): fix catppuccin themesJae-Heon Ji
2022-11-17fix(themes/catppuccin): black and white inverted (#1953)Jae-Heon Ji
2022-11-17docs(changelog): fix mouse-click in simplified-uiJae-Heon Ji
2022-11-17fix(compact-bar): mouse-click in simplified-ui (#1917)imsuck
* fix(compact-bar): mouse-click in simplified-ui * fix(compact-bar): fix formatting
2022-11-16docs(changelog): pane frame fixAram Drevekenin
2022-11-16fix(panes): ensure ejected pane always has a frame (#1950)Aram Drevekenin
2022-11-16docs(changelog): cli cwd fixAram Drevekenin
2022-11-16fix(cli): measure cwd from cli client rather than the zellij server (#1947)Aram Drevekenin
* fix(cli): measure cwd from cli client rather than the zellij server * style(fmt): rustfmt
2022-11-16docs(changelog): add catppuccin themesJae-Heon Ji
2022-11-16feat(themes): add catppuccin themes (#1937)Jae-Heon Ji
* feat(themes): add catppuccin themes * chore: add official link
2022-11-15changelog: Add PR #1769har7an
which falls back to `/bin/sh` if `$SHELL` doesn't exist.
2022-11-15fix(pty): use /bin/sh when SHELL env variable is not found (#1769)Shunsuke Mie
This commit fixes #1722. In some environment, the SHELL environemnt variable is not exists. It causes a panic that is reported as #1722. Use generic shell (/bin/sh) to prevent the panic. This is a same behavior as tmux. https://github.com/tmux/tmux/blob/master/spawn.c#L329-L331
2022-11-15docs(changelog): plugin data flowAram Drevekenin
2022-11-15refactor(plugins): change the data flow (#1934)Aram Drevekenin
* refactor(plugins): do not block render loop * refactor(plugins): cleanup * style(fmt): rustfmt * fix(plugins): various rendering pipeline fixes
2022-11-13docs(changelog): update log pathJae-Heon Ji
2022-11-13update log path (#1927)哇呜哇呜呀咦耶
2022-11-12Errors: Ignore errors from async when quitting (#1918)har7an
* utils/errors: Fix function order in `to_anyhow` impl for `SendError`. Previously we attached the context to `anyhow!`, which is wrong (because it doesn't create an `Err` type itself) and leads to strange behavior where the error seemingly is immediately panicked upon. Instead, Wrap `anyhow!` into an `Err()` and then attach the context to that. This achieves the intended goal and doesn't lead to premature termination. * server/terminal_bytes: Ignore error in `listen` which occurs when quitting zellij with the `Ctrl+q` keybinding. At the end of the `listen` function we break out of a loop and send a final `Render` instruction to the Screen. However, when quitting zellij as mentioned above, the Screen thread is likely dead already and hence we cannot send it any Instructions. This causes an error in the async tasks of the panes that handle reading the PTY input. If we leave the error unhandled, we will have error messages in the log whenever we quit zellij, even though the application exited normally. Hence, we now send the final `Render` instruction but do not care whether it is sent successfully or not. This is a "workaround" for the fact that we cannot tell whether the application is quitting or not. * server/terminal_bytes: Add FIXME note * changelog: Add PR #1918 don't log errors from async pane threads when quitting zellij
2022-11-12docs(changelog): support text input from clipboardJae-Heon Ji
2022-11-12Support clipboard to text input (#1926)哇呜哇呜呀咦耶
2022-11-10chore(version): bump development versionAram Drevekenin
2022-11-10chore(release): bring back strippingAram Drevekenin
2022-11-10chore(release): v0.33.0v0.33.0Aram Drevekenin
2022-11-09chore(ci): remove msrv check (#1923)Aram Drevekenin
2022-11-09docs: Improve error handling docs (#1919)har7an
* docs: Improve error handling docs and add more TL;DRs and new sections about handling specific errors, and logging errors. * contributing: Add more coding tips
2022-11-09docs(changelog): termwiz bumpAram Drevekenin
2022-11-09chore(deps): bump termwiz to 0.19.0 (#1896)Jonathan LEI
* chore(deps): bump termwiz to 0.19.0 * chore: bump MSRV to 1.60
2022-11-09cargo: Don't strip release binary (#1916)har7an
* cargo: Don't strip release binary because the lack of debug symbols makes the panic backtrace completely useless. It will show a long list of unknown locations then. Except for a minor space saving of 3-4 MB, debug symbols don't have any negative side-effects for our application that we're aware of. * changelog: Add PR #1916 Don't strip debug symbols from release binaries so the backtraces contain the function names involved. * cargo: Explicitly keep debug symbols and add a comment explaining why.
2022-11-09Fix: better error reporting when failing to load plugins (#1912) (#1914)har7an
* utils/input/plugins: Return `Result` when loading a plugin and failing to find it. Since we look up the plugin in multiple locations, make sure we preserve each of these lookup failures and report them to the user. This way the user can see what locations were actually checked. In addition, before performing the lookup, deduplicate the array of locations to check. This prevents errors where we look up the same plugin multiple times in the exact same locations, which can leave a bad impression on anyone reading it who isn't familiar with the code. * server/wasm_vm: Remove obsolete context which was previouly required because the function it is attached to returned only an `Option` instead of a `Result`.
2022-11-08made the README more aesthetic (#1885)Rhythm Bansal
2022-11-08docs(changelog): temp_dir libAram Drevekenin