Commit Graph

2458 Commits

Author SHA1 Message Date
Aram Drevekenin
c41dfa33df
fix(messaging): cache hold pane messages by their tab_id if the tab is not ready (#2196)
* fix(messaging): cache hold pane messages by their tab_id if the tab is not ready

* style(fmt): rustfmt
2023-02-26 15:38:52 +01:00
Aram Drevekenin
c5929d45bf
docs(changelog): layout fixes 2023-02-25 11:17:11 +01:00
Aram Drevekenin
5bcc1bb382
fix(layout): various parser and ui fixes (#2191)
* fix(layout): error on nodes outside layout node

* fix(layout): move stacked property to pane

* fix(layout): various stack exceptions

* fix(ui): non-flexible stacked pane titles now take up their full length

* fix(ui): stack titles with no-pane-frames take up their proper length

* style(fmt): rustfmt
2023-02-25 11:16:11 +01:00
Kai Spencer
d65e8220b6
docs(bug-report): update bug_report.md template with OSX log directory (#2181)
Logs on OSX are located in `$TMPDIR` not `/tmp`
2023-02-20 17:43:46 +01:00
Aram Drevekenin
0e477241ca
docs(changelog): glitchy resizes fix 2023-02-20 17:37:12 +01:00
Aram Drevekenin
0101440cbb
fix(grid): glitchy resizes (#2182)
* fix(grid): glitchy resizes

* style(fmt): rustfmt
2023-02-20 17:36:31 +01:00
Aram Drevekenin
df839fe947
docs(changelog): fix fullscreen navigation 2023-02-20 17:31:47 +01:00
Yves Biener
cf9f806559
fix(ux): fullscreen navigation (#2117)
* fix(pane): fullscreen navigation in all four directions

* fix(pane): use previous method in previous context
2023-02-20 17:31:02 +01:00
Aram Drevekenin
0344849717
docs(changelog): cjk in tab names 2023-02-20 17:24:42 +01:00
哇呜哇呜呀咦耶
72a5d4d619
fix(tabs): allow CJK in tab names (#2119) 2023-02-20 17:23:49 +01:00
Aram Drevekenin
99639be1c9
docs(changelog): scrollback positioning with Helix 2023-02-18 13:58:50 +01:00
bheylin
c8fdea88ec
feat(editor): scrollback positioning with Helix (#2156)
* Add Helix editor (`hx`) to editors that support prefix positions

This is dependant on Helix accepting the PR:

https://github.com/helix-editor/helix/pull/5945

* Add `helix` variant to accepted editors

* Add branch for Helix file opening

* style(code): add clarification comment

* style(fmt): whitespace

---------

Co-authored-by: Aram Drevekenin <aram@poor.dev>
2023-02-18 13:57:40 +01:00
Aram Drevekenin
ada08cc005
docs(governance): Project Governance Change (#2174)
* Update GOVERNANCE.md

* docs(governance): add clarification
2023-02-17 23:10:39 +01:00
Aram Drevekenin
226b77c9b3
docs(changelog): fix startup delay 2023-02-17 19:34:23 +01:00
Aram Drevekenin
3a0e56afd8
fix(ux): cache stdin queries on startup (remove startup delay) (#2173)
* fix(ux): cache stdin queries on startup

* style(fmt): rustfmt
2023-02-17 19:32:07 +01:00
Aram Drevekenin
5235407a5b
docs(changelog): swap layouts and stacked panes 2023-02-17 12:06:44 +01:00
Aram Drevekenin
f1ff272b0b
feat(ui): swap layouts and stacked panes (#2167)
* relayout working with hard coded layout

* work

* refactor(layout): PaneLayout => TiledPaneLayout

* tests passing

* tests passing

* tests passing

* stacked panes and passing tests

* tests for stacked panes

* refactor(panes): stacked panes

* fix: focusing into stacked panes from the left/right

* fix(layouts): handle stacked layouts in the middle of the screen

* fix(pane-stack): focus correctly when coming to stack from above/below

* fix(stacked-panes): resize stack

* fix(stacked-panes): focus with mouse

* fix(stacked-panes): focus next pane

* fix(layout-applier): sane focus order

* fix(stacked-panes): better titles for one-liners

* fix(stacked-panes): handle moving pane location in stack

* fix(relayout): properly calculate display area

* fix(relayout): properly calculate rounding errors

* fix(stacked-panes): properly handle closing a pane near a stack

* fix(swap-layouts): adjust swap layout sort order

* feat(swap-layouts): ui + ux

* fix(swap-layouts): include base layout

* refactor(layout): remove unused method

* fix(swap-layouts): respect pane contents and focus

* work

* fix(swap-layouts): load swap layouts from external file

* fix(swap-layouts): properly truncate layout children

* fix(stacked-panes): allow stacked panes to become fullscreen

* fix(swap-layouts): work with multiple tabs

* fix(swap-layouts): embed/eject panes properly with auto-layout

* fix(stacked-panes): close last pane in stack

* fix(stacked-panes): move focus for all clients in stack

* fix(floating-panes): set layout damaged when moving panes

* fix(relayout): move out of unfitting layout when resizing whole tab

* fix(ui): background color for swap layout indicator

* fix(keybinds): add switch next layout in tmux

* fix(ui): swap layout indication in compact layout

* fix(compact): correct swap constraint

* fix(tests): tmux swap config shortcut

* fix(resizes): cache resizes so as not to confuse panes (eg. vim) with multiple resizes that it debounces weirdly

* feat(cli): dump swap layouts

* fix(ui): stacked panes without pane frames

* fix(ux): move pane forward/backwards also with floating panes

* refactor(lint): remove unused stuff

* refactor(tab): move swap layouts to separate file

* style(fmt): rustfmt

* style(fmt): rustfmt

* refactor(panes): various cleanups

* chore(deps): upgrade termwiz to get alt left-bracket

* fix(assets): merge conflicts of binary files

* style(fmt): rustfmt

* style(clippy): no thank you!

* chore(repo): remove garbage file
2023-02-17 12:05:50 +01:00
Aram Drevekenin
1517036c24
docs(changelog): termwiz update 2023-02-17 11:05:15 +01:00
Thomas Linford
c161766fc9
chore(deps): update termwiz to v0.20.0 (#2169)
fix unparsed horizontal scroll escape sequences
2023-02-17 11:01:47 +01:00
Jae-Heon Ji
27d577753c
docs(changelog): add args to new-tab in keybinds 2023-02-16 22:39:23 +09:00
Jae-Heon Ji
00cd33637b
feat: add args to new-tab action (#2072)
* fix(themes): missing tokyo-night-dark theme

* feat: add args to new-tab action

* fix: name can be set without layout

* feat: pass config options to action parser

* chore: remove unnecessary default values

* chore: update snapshots

* fix(status-bar): add exception for NewTab

* fix: update code review

* feat: add shallow_eq for action
2023-02-16 22:32:27 +09:00
Jae-Heon Ji
5817ebe2d2
docs(changelog): apply correct color on tabs 2023-02-16 17:16:41 +09:00
Pedro Fedricci
a12ccf3f85
fix(plugins): apply correct color on 'more tabs' message (#2166) 2023-02-16 17:13:00 +09:00
Aram Drevekenin
ba44491ab8
docs(changelog): pencil light theme 2023-02-13 18:02:12 +01:00
Aral Balkan
199e566bf7
feat(themes): add pencil light (#2157) 2023-02-13 18:01:33 +01:00
Aram Drevekenin
9879b5a059
docs(changelog): singlepass compiler 2023-02-13 17:53:16 +01:00
m-lima
d1b458e37b
chore(build): make the singlepass compiler opt-in through flags (#2146) 2023-02-13 17:52:10 +01:00
har7an
5eb2d055ff
cleanups around "buffer full" error (#2136)
* server/os_i_o: Add fixme to IPC queue

between server and client, explaining why the queue has its current
length.

* utils/ipc: Don't advertise terminal emulators

and use a more generic phrasing instead. zellij as application isn't the
place to recommend specific terminals to use it with.

* style(comment): redraw-on-backpressure comment

---------

Co-authored-by: Aram Drevekenin <aram@poor.dev>
2023-02-09 19:40:23 +00:00
Aram Drevekenin
0255b56f24
docs(changelog): wasmer singlepass in dev 2023-02-07 17:56:55 +01:00
m-lima
5b3e1ecacd
chore(development): use singlepass in debug mode (#2134)
* Add new feature flags

* Use singlepass in debug mode

* Use Cow to avoid unnecessary copies

- Instead of removing and reinserting into the memory cache, use Cow to
  model both owned an borrowed data
- Log at debug-level the time to compile/load a wasm module
- A little clippy drive-by on touched files

* Satisfy the assumption from zellij-utils/src/consts.rs for target-dir

* Allow forcing cranlift in debug mode

* Remove deprecated comments

* PR comment: typo

* Remove extras
2023-02-07 17:55:37 +01:00
Aram Drevekenin
e3981283a9
docs(changelog): switch to tab by name 2023-02-07 15:47:03 +01:00
哇呜哇呜呀咦耶
99e8d56adb
feat(cli): add GoToTabName action to switch tab by name (#2120)
* Add `GoToTabName` action to switch tab by name

* rm blank file

* add --create option

* format

* add some doc

* add test case

* format

* add test case

* change variable name
2023-02-07 15:45:59 +01:00
Aram Drevekenin
601eee8bb3
docs(changelog): status bar one liner 2023-01-27 13:38:20 +01:00
Felix Pankratz
a369e70d94
fix(status-bar): not displaying w/ size=1 and show shortcuts (#2091)
* Fix status bar not displaying if size=1. Show shortcuts if not in normal mode when size=1

* formatting

Co-authored-by: Felix Pankratz <mail@felixpankratz.de>
2023-01-27 13:37:18 +01:00
Jae-Heon Ji
e5c590c286
docs(changelog): add ScrollToTop action 2023-01-24 21:52:11 +09:00
Yves Biener
650aeb12be
feat: add ScrollToTop action (#2110) 2023-01-24 21:51:11 +09:00
har7an
beddfb77a8
Improve client disconnect handling (#2068)
* 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
2023-01-22 18:04:40 +00:00
har7an
b274fc5ab1
errors: handle missing plugin caches (#2093)
* 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
2023-01-19 18:17:33 +00:00
Jae-Heon Ji
670b9c2759
docs(changelog): support utf8 char in tab and pane 2023-01-19 22:29:22 +09:00
哇呜哇呜呀咦耶
f9a7188728
Support UTF-8 character in tab name and pane name (#2102)
* Support UTF-8 character in tab name and pane name

* Support UTF-8 character in tab name and pane name
2023-01-19 22:28:04 +09:00
har7an
04b294aabb
Errors: less unwrap in server (#2069)
* 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
2023-01-14 05:14:17 +00:00
Aram Drevekenin
1e02754e19
docs(changelog): bugfixes 2023-01-13 18:24:41 +01:00
朱李
f07c1afea7
fix: wide-char drop on resize to 1 and invalid session names (#2082)
* 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>
2023-01-13 18:23:21 +01:00
Thomas Linford
223b7a129c
docs(changelog): copy_on_select = false fix 2023-01-12 18:39:21 +01:00
Thomas Linford
5227909846
fix(mouse): selection not ending on mouse release with copy_on_select set to false (#2086) 2023-01-12 18:38:12 +01:00
Jae-Heon Ji
3da1cbf95c
docs(changelog): add tmux close pane key 2023-01-03 22:49:54 +09:00
Cason Adams
ad21f81ac0
add tmux close pane key (#2058)
* add tmux close pane key

* chore: update snapshots for new keybind

Co-authored-by: Jae-Heon Ji <atx6419@gmail.com>
2023-01-03 22:47:39 +09:00
Aram Drevekenin
02e80860a2 style(fmt): rustfmt 2022-12-24 16:29:54 +01:00
Aram Drevekenin
a0b0f0e852 style(clippy): fix clippy lint 2022-12-24 16:06:16 +01:00
Aram Drevekenin
0ffda4e6f9
docs(changelog): floating panes in layouts 2022-12-24 15:48:57 +01:00