Commit graph

715 commits

Author SHA1 Message Date
Jae-Heon Ji
4921fa7cae
docs(changelog): fix empty session name 2022-11-22 21:38:10 +09:00
Aram Drevekenin
8b50ef96f3
docs(changelog): improve render performance 2022-11-21 20:08:59 +01:00
Aram Drevekenin
5ad0429adc
docs(changelog): client buffer overflow fix 2022-11-18 10:23:21 +01:00
Jae-Heon Ji
84a931ad82
docs(changelog): fix catppuccin themes 2022-11-17 23:17:53 +09:00
Jae-Heon Ji
249830afe8
docs(changelog): fix mouse-click in simplified-ui 2022-11-17 22:55:24 +09:00
Aram Drevekenin
6c15292667
docs(changelog): pane frame fix 2022-11-16 18:00:54 +01:00
Aram Drevekenin
aa2adda475
docs(changelog): cli cwd fix 2022-11-16 16:27:21 +01:00
Jae-Heon Ji
ed64cff9b5
docs(changelog): add catppuccin themes 2022-11-16 21:48:15 +09:00
har7an
dc922907eb
changelog: Add PR #1769
which falls back to `/bin/sh` if `$SHELL` doesn't exist.
2022-11-15 15:26:33 +00:00
Aram Drevekenin
c66a8c0629
docs(changelog): plugin data flow 2022-11-15 12:25:09 +01:00
Jae-Heon Ji
b2b5bdc564
docs(changelog): update log path 2022-11-13 23:27:18 +09:00
har7an
342d1629d0
Errors: Ignore errors from async when quitting (#1918)
* 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-12 10:18:15 +00:00
Jae-Heon Ji
b52ca5d13f
docs(changelog): support text input from clipboard 2022-11-12 11:48:20 +09:00
Aram Drevekenin
c086e33ed3 chore(release): v0.33.0 2022-11-10 09:50:57 +01:00
Aram Drevekenin
d4beabfeb2
docs(changelog): termwiz bump 2022-11-09 17:25:44 +01:00
har7an
5975af6e42
cargo: Don't strip release binary (#1916)
* 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-09 08:40:02 +00:00
Aram Drevekenin
0cbb08317f
docs(changelog): temp_dir lib 2022-11-08 16:40:44 +01:00
Aram Drevekenin
1bb12e720e
docs(changelog): kanagawa theme 2022-11-08 16:31:11 +01:00
raphCode
0477d93444
Do not advertise 24 bit color support unchecked (#1900)
* Fix bat syntax colors when using mosh

Original reason for this line according to Aram:
I set this variable as part of the Sixel support to get notcurses to
work properly. I tried communicating with the notcurses maintainers
about a workaround for this, but to no avail.

* Changelog

* Improve changelog message

* Remove empty function
2022-11-08 13:33:35 +01:00
har7an
453142775c
errors: Remove log::error in server (#1881)
* server/wasm_vm: Replace `log::error!`

with better error logging by means of `non_fatal`. This preserves the
original error and allows adding context information on top. Also makes
error formatting more uniform across the application.

* server/tab: Replace `log::error!`

with better error logging by means of `non_fatal`. This preserves the
original error and allows adding context information on top. Also makes
error formatting more uniform across the application.

* server/route: Replace `log::error!`

and propagate the error to the caller instead.

* server/pty: Replace `log::error!`

with better error logging by means of `non_fatal`. This preserves the
original error and allows adding context information on top. Also makes
error formatting more uniform across the application.

Also add per-instruction error context to make it clear what we tried to
accomplish when an error occured.

* server/panes/tiled_panes: Merge dependencies

and sort them into a better order.

* server/panes/tiled_panes: Replace `log::error!`

with better error logging by means of `non_fatal`. This preserves the
original error and allows adding context information on top. Also makes
error formatting more uniform across the application.

* server/os_input_output: Merge depndencies

and sort them into a better order.

* server/logging_pipe: Replace `log::error!`

with better error logging by means of `non_fatal`. This preserves the
original error and allows adding context information on top. Also makes
error formatting more uniform across the application.

* server/os_io: Remove uses of `log::error`

* changelog: Add PR #1881

* server/os_io: Gracefully handle failing resize

for terminals IDs that don't exist, instead of propagating the error to
the user.

* server/lib: Remove leftover log message

* server/pty: Log error cause

rather than providing a hard-coded error reason which is plain wrong in
this context.

* server/screen: Remove calls to `log::error!`

and change `get_active_tab(_mut)?` to return a `Result` instead of an
`Option`. This already makes many places in the code obsolete where
previously "failed to get active tab..." was logged manually.

Rather than logging, use the `anyhow::Error`s we have, along with all
their context information, and log these instead.
2022-11-08 10:56:23 +00:00
Aram Drevekenin
39c8d97054
docs(changelog): various no-frame bugs 2022-11-05 14:46:42 +01:00
Aram Drevekenin
dde6ecf09a
docs(changelog): focus in/out event 2022-11-04 17:30:29 +01:00
Aram Drevekenin
c34853adac
docs(changelog): cli action tty fix 2022-11-03 11:38:58 +01:00
Aram Drevekenin
98b66109a6
docs(changelog): zellij edit fix 2022-11-03 11:07:48 +01:00
Aram Drevekenin
4905ae65b8
docs(changelog): bold/dim reset fix 2022-11-02 19:25:50 +01:00
Aram Drevekenin
897038638d
docs(changelog): clear floating panes indication 2022-11-02 18:12:37 +01:00
Aram Drevekenin
97131fd7f8
docs(changelog): backslash config convert fix 2022-11-02 16:45:20 +01:00
Aram Drevekenin
4ab04c59a2
docs(changelog): terminating char in search 2022-11-02 14:36:29 +01:00
Jae-Heon Ji
8f293f584f
docs(changelog): remove space from shared_except 2022-11-02 20:17:23 +09:00
har7an
e45a3e5826
errors: Don't unwrap in server::os_input_output (#1895)
* server/os_io: Redefine `ServerOsApi` result types

to use `anyhow::Result` instead. This mostly makes the need of custom
`SpawnTerminalError` obsolete (tbd in subsequent commits) and unifies
error handling across the application.

* utils/errors: Implement new `ZellijError` type

to replace any previously defined, isolated custom error types
throughout the application. Currently implements all error variants
found in `SpawnTerminalError`.

In the long term, this will allow zellij to fall back to a single error
type for all application-specific errors, instead of having different
error types per module.

* server/unit/screen: Impl new `ServerOsApi`

with updated `Result`-types.

* server/tab/unit: Impl new `ServerOsApi`

with updated `Result`-types.

* server/os_io: Impl new `ServerOsApi`

with updated `Result`-types.

* utils/ipc: Return `anyhow::Error` in `send`

rather than a `&'static str`, which isn't compatible with
`anyhow::Context`.

* server/tab: Handle `Result` in `resize_pty!`

which is returned due to the changed return types in `ServerOsApi`.

* server/tab: Handle new `Result`s

originating in the change to the `ServerOsApi` trait definition.

* server/screen: Handle new `Result`s

originating in the change to the `ServerOsApi` trait definition.

* server/panes/tiled: Handle new `Result`s

originating in the change to the `ServerOsApi` trait definition.

* server/panes/floating: Handle new `Result`s

originating in the change to the `ServerOsApi` trait definition.

* server/lib: Unwrap on new `Result`s

originating in the change to the `ServerOsApi` trait definition. The
functions here don't return a `Result` yet, this is better left to a
follow-up PR.

* server: Remove `SpawnTerminalError`

and make use of the new `ZellijError` instead. Make use of `anyhow`s
downcast capabilities to restore the underlying original errors where
necessary, as was done previously. This gives us the flexibility to
attach context information to all errors while still allowing us to
handle specific errors in greater detail.

* server/pty: Fix vars broken in rebase

* server/os_io: Remove last `SpawnTerminalError`

* changelog: Add PR #1895
2022-11-02 05:29:50 +00:00
Aram Drevekenin
cd2f5c2e7d
docs(changelog): suspended command panes 2022-11-01 09:08:17 +01:00
Aram Drevekenin
6d29c6951e
docs(changelog): status bar fix 2022-10-31 19:41:36 +01:00
Thomas Linford
1704d11698
docs(changelog): mouse mode runtime toggle 2022-10-31 17:06:14 +01:00
Thomas Linford
5c2f5f8470
docs(changelog): setup --clean panic fix 2022-10-31 16:38:54 +01:00
har7an
417b4a4ec5
errors: Don't unwrap in zellij_server::output (#1878)
* server/output: Don't unwrap

and return `Result` types where appropriate instead.

* server: Handle new `Result`s from `output`

* server/tab/unit: Unwrap new `Result`s

* changelog: Add PR #1878

Don't unwrap in `zellij_server::output`.
2022-10-30 06:02:03 +00:00
har7an
60322e969f
errors: Don't unwrap in server::terminal_bytes (#1876)
* server/terminal_bytes: Don't unwrap

and return `Result`s instead, where appropriate.

* changelog: Add PR #1876

Don't unwrap in `zellij_server::terminal_bytes`.
2022-10-28 17:12:05 +00:00
Jae-Heon Ji
086b5d28fb
docs(changelog): update docs theme example dir 2022-10-29 01:07:18 +09:00
har7an
aa7fe853d6
changelog: Add PR #1872
Remove calls to `unwrap` in `zellij_server::pty_writer`
2022-10-28 14:44:31 +00:00
har7an
f23108f63f
changelog: Add PR #1870
Remove calls to `unwrap` in `zellij_server::ui::*`
2022-10-28 14:16:27 +00:00
Jae-Heon Ji
668df6bbd7
docs(changelog): support multiple themes 2022-10-28 22:50:00 +09:00
Thomas Linford
9fa73d5758
docs(changelog): add everforest themes 2022-10-28 13:31:19 +02:00
Aram Drevekenin
82c365831e
docs(changelog): close on exit 2022-10-28 13:04:54 +02:00
har7an
eed9541a74
changelog: Add PR #1840
improve error handling in `zellij_server::pty`
2022-10-26 06:53:42 +00:00
Aram Drevekenin
5793af7655 chore(version): bump development version 2022-10-25 11:43:53 +02:00
Jae-Heon Ji
63cf3a6b01
docs(changelog): add help to cli options 2022-10-24 00:47:07 +09:00
har7an
75801bdb0e
plugins: Improve error handling on plugin version mismatch (#1838)
* server/tab: Don't panic in `Pane::render`

and do not crash the application on failure to receive a render update
from plugins any longer. Instead, will print a simple string with a hint
to check the application logs, where a more thorough error indication
can be found.

* utils/errors: re-export `anyhow::Error`

to create ad-hoc errors with custom error types, without having to wrap
them into a `context()` before to turn the into anyhow errors.

* plugins: Check plugin version on startup

and terminate execution with a descriptive error message in case the
plugin version is incompatible with the version of zellij being run.

* server/wasm_vm: Add plugin path in version error

so the user knows which plugin to look at in case they're using custom
plugins.

* server/wasm_vm: Check plugin version for equality

Previously we would accept cases where the plugin version was newer than
the zellij version, which doesn't make a lot of sense.

* server/wasm_vm: Prettier error handling

in call to `wasmer::Function::call` in case a plugin version mismatch
can occur.

* tile: Install custom panic handler

that will print the panic message to a plugins stdout and then call a
panic handler on the host that turns it into a real application-level
panic.

* tile: Catch errors in event deserialization

and turn them into proper panics. These errors are symptomatic of an
uncaught plugin version mismatch, for example when developing from main
and compiling zellij/the plugins from source. Normal users should never
get to see this error.

* utils/errors: Improve output in `to_stdout`

for anyhow errors. The default anyhow error formatting of `{:?}` is
already very good, and we just made it worse by trying to invent our own
formatting.

* tile: Reword plugin mismatch error message

* zellij: Apply rustfmt

* changelog: Add PR #1838

Improve error handling on plugin version mismatch.

* server/wasm_vm: Rephrase error in passive voice
2022-10-23 13:14:24 +00:00
har7an
d36e91e072
changelog: Add PR #1808
Improve error handling in `server/route`.
2022-10-21 13:51:01 +00:00
har7an
348a197eb9
changelog: Add PR #1827
which removes calls to `unwrap` from `wasm_vm` and prints sensible error messages when errors in the plugins occur.
2022-10-20 15:51:23 +00:00
Aram Drevekenin
8431b9e0ef
docs(changelog): tab cwd in layouts 2022-10-20 15:24:28 +02:00
Aram Drevekenin
ebf61f6ff2
docs(changelog): scroll region fix 2022-10-19 18:37:18 +02:00