Commit graph

630 commits

Author SHA1 Message Date
Aram Drevekenin
0b831cfee5
fix(plugins): only listen to hd if a plugin is subscribed to hd events (#2529)
* fix(plugins): only listen to hd if a plugin is subscribed to hd events

* style(fmt): rustfmt

* fix(tests): give time for fs watcher to do its thing

* fix(tests): increase timeout
2023-06-13 08:59:44 +02:00
Aram Drevekenin
c65017c766
fix(screen): focus tab as well as pane when launching existing plugin (#2530)
* fix(screen): focus tab as well as pane when launching existing plugin

* style(fmt): rustfmt
2023-06-12 22:05:32 +02:00
Aram Drevekenin
bffc2794da
fix(output): do not hide cursor on a render that does not include visual assets (#2528)
* fix(terminal): do not hide cursor if output-buffer only has non-visual assets

* style(fmt): rustfmt
2023-06-12 19:01:29 +02:00
Aram Drevekenin
8485b1c296
feat(plugins): extensive plugin api (#2516)
* feat(plugins): add our entire API

* style(fmt): rustfmt

* fix(detach): make it work again
2023-06-09 22:49:12 +02:00
Aram Drevekenin
c11d75f915
feat(wasm-plugin-system): major overhaul and some goodies (#2510)
* strider resiliency

* worker channel prototype

* finalized ui

* show hide plugin

* fs events to plugins

* tests for events and new screen instructions

* various refactoringz

* report plugin errors instead of crashing zellij

* fix plugin loading with workers

* refactor: move watch filesystem

* some fixes and refactoring

* refactor(panes): combine pane insertion logic

* refactor(screen): launch or focus

* refactor(pty): consolidate default shell fetching

* refactor: various cleanups

* initial refactoring

* more initial refactoring

* refactor(strider): search

* style(fmt): rustfmt

* style(pty): cleanup

* style(clippy): ok clippy

* style(fmt): rustfmt
2023-06-07 12:43:35 +02:00
XiaoZhang
3d7c54aca0
fix: cwd of newtab action (#2455) 2023-06-01 02:54:09 +09:00
Aram Drevekenin
5fe4d60c22
feat(plugins): Plugin workers and strider (#2449)
* mvp of strider fuzzy find

* improve search ui

* various refactoringz

* moar refactoring

* even more refactoring

* tests and more refactoring

* refactor: remove unused stuff

* style(fmt): rustfmt

* debug ci

* debug ci

* correct path for plugin system tests

* fix plugin system ci tests

* remove debugging statements from test

* fix plugin worker persistence

* add test for plugin worker persistence

* style(fmt): rustfmt

* final cleanups

* remove outdated comments
2023-05-16 12:47:18 +02:00
Val Packett
d124a1e469
Do not unwrap() the sticky bit setting! (#2424)
It fails on FreeBSD, making the zellij server quit and the client spin endlessly retrying to connect.
2023-05-05 00:00:43 +02:00
Aram Drevekenin
1289643f89
feat(plugins): update and render plugins asynchronously (#2410)
* working-ish minus a few race conditions

* relax atomicity

* various refactoringz

* remove commented out code

* clarify some stuffs

* refactor(plugins): move PluginMap and friends to a different file

* refactor(plugins): move zellij_exports and friends to a different file

* style(fmt): rustfmt

* fix(e2e): adjust tests for flakiness async loading
2023-04-28 15:26:39 +02:00
Aram Drevekenin
caaee30179
feat(plugins): reload plugin at runtime (#2372)
* fix(plugins): proper error when wasm file does not exist

* reload working

* race condition handling

* refactor(plugins): start plugin

* refactor(plugins): plugin-loader

* refactor(plugins): load/reload plugin

* refactor(plugins): apply cached events

* fix(plugins): gittery loading

* chore(plugins): rename reload-plugin to start-or-reload-plugin

* chore(styling): small cleanups

* style(fmt): rustfmt

* style(fmt): cleanups

* style(fmt): cleanups

* test(e2e): update snapshots

* test(e2e): update snapshots

* chore(repo): comment plugin optimization because it doubles the CI time
2023-04-19 10:09:39 +02:00
Kangaxx-0
4c87b1e6bd
feat: support default cwd (#2290)
* init commit

* add default config to kdl file

* change the field from `default_cwd` to `override_cwd`

* change back to default_cwd

* fix test

* default cwd works without `default_shell`
2023-04-18 16:35:51 +02:00
Theo Salzmann
525928b18a
feat: Add layout configuration to exclude panes from tab sync (#2314) 2023-04-18 16:33:20 +02:00
Aram Drevekenin
03c507bc64 chore(version): bump development version 2023-04-13 11:16:47 +02:00
Thomas Linford
7e207f4c0c
fix: do not hold on to router thread handle until server exit (#2328)
* do not hold on to thread handle until server exit

* fix tests
2023-04-13 10:02:07 +02:00
Thomas Linford
778d57c3c3
fix(server): set sticky bit on socket files (#2141) 2023-04-05 17:36:47 +02:00
Aram Drevekenin
f5a13c7440
fix(plugins): prevent Strider from opening double-panes when editing files (#2346)
* fix(plugins): make sure to include client_id when writing input

* style(fmt): rustfmt

* fix(plugins): do not remove client plugins on detach
2023-04-04 18:39:34 +02:00
Aram Drevekenin
809e3d8d21
fix(layout): pane focus in stack (#2344) 2023-04-03 18:54:37 +02:00
Aram Drevekenin
3a428effed
feat(panes): allow defining an expanded stacked pane (#2343)
* feat(panes): allow defining an expanded stacked pane

* style(fmt): rustfmt
2023-04-03 18:04:06 +02:00
Aram Drevekenin
88da3be23a
fix(layouts): focus tab race (#2340) 2023-03-31 17:50:21 +02:00
Aram Drevekenin
cc3c276586
fix(scrollback-editor): properly invoke editor when command includes spaces (#2339)
* fix(scrollback-editor): properly invoke editor when command includes spaces

* style(fmt): srsly clippy?
2023-03-31 16:23:24 +02:00
Aram Drevekenin
30374d4ede
fix(layouts): nested attribute truncating (#2337) 2023-03-30 18:04:47 +02:00
Marcel Baur
6ea5c3666f
Add option to hide session name in tab-bar (deriving from #2172) (#2301)
* feat(tab-bar): add option to hide prefix (#2172)

* feat(tab-bar): only hide session_name

* fix(snapshots): update snapshots with new config-var naming

---------

Co-authored-by: Marcel Baur <marcel@baur.gg>
2023-03-30 20:33:39 +09:00
Oleks Gnatovskyi
bdb39b19a6
feat(terminal): cli and bindable action to clear all buffers for a specific pane (#2239)
* fix typo

* Add clear screen action

* add proper test

* added bindable action; remove pointless default impl

* add default binding

* use imsnif's variant

* remove commented example config

* remove log line

---------

Co-authored-by: Aram Drevekenin <aram@poor.dev>
2023-03-29 23:04:57 +02:00
Aram Drevekenin
341f9eb8c8
feat(plugins): async plugin loading (#2327)
* work

* refactor(plugins): break down start plugin async function

* work

* loading messages

* nice ui

* floating panes and error handling

* cleanups and conflicting plugin/direction

* find exact pane when relayouting

* fix plugin pane titles

* kill loading tasks on exit

* refactor: move stuff around

* style(fmt): rustfmt

* various fixes and refactors
2023-03-27 19:19:34 +02:00
Aram Drevekenin
44abfc9a16
fix(panes): closing a stacked pane should relayout (#2312) 2023-03-20 17:54:47 +01:00
Aram Drevekenin
5cb1cea10c
fix(panes): adding panes to lone stack (#2298) 2023-03-16 17:31:40 +01:00
Aram Drevekenin
c0dd1ba1ab
fix(screen): focus pane on screen edge when moving pane focus offtab (#2293)
* fix(screen): focus pane on proper edge when switching tabs through pane switch

* style(fmt): rustfmt
2023-03-15 17:00:16 +01:00
Aram Drevekenin
09c1d7909d chore(version): bump development version 2023-03-10 15:39:58 +01:00
Aram Drevekenin
43a52a2bd3 chore(version): bump development version 2023-03-10 14:50:39 +01:00
Aram Drevekenin
263f5cbfd2
fix(ansi): pad line end when erasing characters (#2259) 2023-03-09 16:58:15 +01:00
Aram Drevekenin
ae29eb5b47
fix(screen): hold and applylayout races (#2251)
* fix(screen): log error instead of crashing when unable to find tab id

* style(fmt): rustfmt
2023-03-08 18:43:26 +01:00
Aram Drevekenin
dfae62526b chore(version): bump development version 2023-03-07 10:14:14 +01:00
Aram Drevekenin
112782e1ed
chore(repo): version 0.35.0 (#2230)
* chore(assets): new readme animation

* chore(assets): increase animation resolution

* chore(assets): improve animation

* chore(assets): improve animation

* docs(readme): some cleanups and clarifications

* docs(readme): fix links and wording

* chore(version): bump development version
2023-03-07 09:26:11 +01:00
Aram Drevekenin
57e8ca0fae
fix(layouts): naming and gototabname (#2225)
* fix(layouts): properly apply tab name

* fix(gototabname): do not crash and properly apply default shell

* style(fmt): rustfmt
2023-03-06 12:10:02 +01:00
Aram Drevekenin
91b94552b6
fix(pty): do not crash when unable to set cwd (#2214)
* fix(pty): do not crash when unable to set cwd

* style(fmt): rustfmt
2023-03-01 20:12:41 +01:00
哇呜哇呜呀咦耶
c2fb275319
feat(cli): QueryTabNames cli action to list all tab names (#2145)
* extend display char in tab

* Add action to list all tab names

* print tab names and remove logs

* change msg name, and handle Log in normal client

* fix log

* resolve code conflict

* change var name

* add snapshot test

* fix failed test case

* restore snapshot

* Revert "restore snapshot"

This reverts commit b97a9512ab106615a1a1e5882392a03a17cdf1a3.

* restore snapshot

* revert snapshot

* 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

* docs(changelog): layout fixes

* 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

* docs(changelog): open panes fix

* fix(layout): tab focus (#2197)

* fix(layout): tab focus

* style(fmt): rustfmt

* docs(changel0g): tab focus fix

* fix(cli): new-tab now also looks in layout_dir for layouts (#2198)

* fix(cli): the new-tab action now also searches for layouts in the layout dir

* style(fmt): rustfmt

* fix(tests): add missing parameter to cli action

* docs(changelog): new-tab cli layout folder fix

* fix(kdl): new-tab keybind looks in layout_dir for layouts (#2200)

* fix(themes): missing tokyo-night-dark theme

* fix(kdl): new-tab keybind also looks in layout_dir for layouts

* docs(changelog): new-tab keybind layout folder fix

* fix(cli): edit cwd (#2201)

* fix(cli): properly set cwd for edit panes

* fix(layouts): properly set cwd for edit panes

* style(fmt): rustfmt

* docs(changelog0

* fix(layouts): do not relayout twice on auto_layout (#2202)

* fix(layouts): do not relayout twice on auto_layout

* style(fmt): rustfmt

* fix(new-tab): get config parameters from config file (#2203)

* fix(cli): take default shell from config if it exists when opening new tab

* fix(cli): take layout dir from config when opening new tab if it exists

* style(fmt): rustfmt

* docs(changelog): new-tab config parameters

* fix(grid): only use background pending styling when deleting characters (#2204)

* docs(changelog): neovim underline fix

* feat(layouts): exact panes constraint (#2206)

* style(fmt): remove warnings

* fix(swap-layouts): introduce exact panes constraint

* fix(swap-layouts): improve floating pane swap layout ux

* style(fmt): rustfmt

* docs(changelog): exact panes constraint

* fix(pty): report no-cwd for empty path returned from sysinfo (#2213)

* fix(sixel): report pixel size in winsize change ioctl (#2212)

* fix(sixel): report pixel size in winsize change ioctl

* style(fmt): rustfmt

* docs(changelog): various fixes

* style(code): naming

* test(log): adjust query tab names test to look at the log message

* style(fmt): rustfmt

---------

Co-authored-by: Aram Drevekenin <aram@poor.dev>
Co-authored-by: Jae-Heon Ji <32578710+jaeheonji@users.noreply.github.com>
2023-03-01 17:28:17 +01:00
Aram Drevekenin
a8b5bce9d9
fix(sixel): report pixel size in winsize change ioctl (#2212)
* fix(sixel): report pixel size in winsize change ioctl

* style(fmt): rustfmt
2023-03-01 12:25:44 +01:00
Aram Drevekenin
d670c29649
fix(pty): report no-cwd for empty path returned from sysinfo (#2213) 2023-03-01 12:25:13 +01:00
Aram Drevekenin
ea2d9ced62
feat(layouts): exact panes constraint (#2206)
* style(fmt): remove warnings

* fix(swap-layouts): introduce exact panes constraint

* fix(swap-layouts): improve floating pane swap layout ux

* style(fmt): rustfmt
2023-02-28 22:08:01 +01:00
Aram Drevekenin
73224ff272
fix(grid): only use background pending styling when deleting characters (#2204) 2023-02-28 18:21:37 +01:00
Aram Drevekenin
9dc3cb1961
fix(new-tab): get config parameters from config file (#2203)
* fix(cli): take default shell from config if it exists when opening new tab

* fix(cli): take layout dir from config when opening new tab if it exists

* style(fmt): rustfmt
2023-02-28 15:47:08 +01:00
Aram Drevekenin
b3b0ddbab8
fix(layouts): do not relayout twice on auto_layout (#2202)
* fix(layouts): do not relayout twice on auto_layout

* style(fmt): rustfmt
2023-02-27 19:15:45 +01:00
Aram Drevekenin
149cafc6d6
fix(cli): edit cwd (#2201)
* fix(cli): properly set cwd for edit panes

* fix(layouts): properly set cwd for edit panes

* style(fmt): rustfmt
2023-02-27 16:34:31 +01:00
Aram Drevekenin
52de5b7db0
fix(cli): new-tab now also looks in layout_dir for layouts (#2198)
* fix(cli): the new-tab action now also searches for layouts in the layout dir

* style(fmt): rustfmt

* fix(tests): add missing parameter to cli action
2023-02-26 22:11:08 +01:00
Aram Drevekenin
6a2a845086
fix(layout): tab focus (#2197)
* fix(layout): tab focus

* style(fmt): rustfmt
2023-02-26 19:20:49 +01:00
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
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
Aram Drevekenin
0101440cbb
fix(grid): glitchy resizes (#2182)
* fix(grid): glitchy resizes

* style(fmt): rustfmt
2023-02-20 17:36:31 +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
哇呜哇呜呀咦耶
72a5d4d619
fix(tabs): allow CJK in tab names (#2119) 2023-02-20 17:23:49 +01:00