Thomas Linford
15737d7d10
fix(grid): memory leak with unfocused tabs ( #2745 )
...
* use hashset instead of vec for changed lines
avoid output buffer growring indefinitely if tab does not get rendered
* tidy up
- improve hashset -> vec conversion
- remove now unnecessary dedup
* use copied instead of cloned on iter
2023-08-30 10:46:06 +02:00
Orhun Parmaksız
b65687660d
refactor(server): remove unnecessary mut ( #2735 )
2023-08-28 22:56:39 +09:00
Aram Drevekenin
ac4085d1a4
chore(version): bump development version
2023-08-28 11:23:53 +02:00
Aram Drevekenin
b587125f06
fix(panes): refocus pane properly on tab change ( #2734 )
...
* fix(panes): stacked panes focus bug
* style(fmt): rustfmt
2023-08-27 22:04:38 +02:00
Aram Drevekenin
2dbee21d74
fix(plugins): various ui fixes ( #2731 )
2023-08-26 11:06:22 +02:00
Aram Drevekenin
90e93d64bd
fix(plugins): remove protobuf duplications ( #2729 )
...
* fix(plugins): remove protobuf duplications
* style(fmt): rustfmt
2023-08-25 19:47:23 +02:00
Aram Drevekenin
8c2a4e8429
fix(plugins): make sure configuration is also part of the plugin keys ( #2727 )
...
* fix(plugins): make sure configuration is also part of the plugin keys
* no thanks clippy
2023-08-25 18:28:15 +02:00
Aram Drevekenin
b44ba85895
feat(plugins): optionally move plugin to focused tab ( #2725 )
...
* feat(plugins): move_to_focused_tab attribute for LaunchOrFocusPlugin
* style(fmt): rustfmt
2023-08-25 12:24:43 +02:00
Aram Drevekenin
09d09759b5
fix(ux): various ui/ux fixes ( #2722 )
...
* force plugin render on permission request response
* clear warnings
* Revert "feat(ui): new status bar mode (#2619 )"
This reverts commit 27763d26ab
.
* adjust status bar help
* fix colors in session manager and shortcut in status-bar
* adjust keybindings
2023-08-24 18:11:53 +02:00
Aram Drevekenin
bc628abc12
feat(sessions): add a session manager to switch between sessions, tabs and panes and create new ones ( #2721 )
...
* write/read session metadata to disk for all sessions
* switch session client side
* fix tests
* various adjustments
* fix full screen focus bug in tiled panes
* fix tests
* fix permission sorting issue
* cleanups
* add session manager
* fix tests
* various cleanups
* style(fmt): rustfmt
* clear screen before switching sessions
* I hate you clippy
* truncate controls line to width
* version session cache
* attempt to fix plugin tests
* style(fmt): rustfmt
* another attempt to fix the tests in the ci
2023-08-24 13:36:24 +02:00
Jae-Heon Ji
c8ddb23297
feat: add plugin permission system ( #2624 )
...
* WIP: add exaple of permission ui
* feat: add request permission ui
* feat: add caching permission in memory
* feat: add permission check
* feat: add file caching
* fix: changes request
* feat(ui): new status bar mode (#2619 )
* supermode prototype
* fix integration tests
* fix tests
* style(fmt): rustfmt
* docs(changelog): status-bar supermode
* fix(rendering): occasional glitches while resizing (#2621 )
* docs(changelog): resize glitches fix
* chore(version): bump development version
* Fix colored pane frames in mirrored sessions (#2625 )
* server/panes/tiled: Fix colored frames
in mirrored sessions. Colored frames were previously ignored because
they were treated like floating panes when rendering tiled panes.
* CHANGELOG: Add PR #2625
* server/tab/unit: Fix unit tests for server.
* fix(sessions): use custom lists of adjectives and nouns for generating session names (#2122 )
* Create custom lists of adjectives and nouns for generating session names
* move word lists to const slices
* add logic to retry name generation
* refactor
- reuse the name generator
- iterator instead of for loop
---------
Co-authored-by: Thomas Linford <linford.t@gmail.com>
* docs(changelog): generate session names with custom words list
* feat(plugins): make plugins configurable (#2646 )
* work
* make every plugin entry point configurable
* make integration tests pass
* make e2e tests pass
* add test for plugin configuration
* add test snapshot
* add plugin config parsing test
* cleanups
* style(fmt): rustfmt
* style(comment): remove commented code
* docs(changelog): configurable plugins
* style(fmt): rustfmt
* touch up ui
* fix: don't save permission data in memory
* feat: load cached permission
* test: add example test (WIP)
* fix: issue event are always denied
* test: update snapshot
* apply formatting
* refactor: update default cache function
* test: add more new test
* apply formatting
* Revert "apply formatting"
This reverts commit a4e93703fb
.
* apply format
* fix: update cache path
* apply format
* fix: cache path
* fix: update log level
* test for github workflow
* Revert "test for github workflow"
This reverts commit 01eff3bc5d
.
* refactor: permission cache
* fix(test): permission grant/deny race condition
* style(fmt): rustfmt
* style(fmt): rustfmt
* configure permissions
* permission denied test
* snapshot
* add ui for small plugins
* style(fmt): rustfmt
* some cleanups
---------
Co-authored-by: Aram Drevekenin <aram@poor.dev>
Co-authored-by: har7an <99636919+har7an@users.noreply.github.com>
Co-authored-by: Kyle Sutherland-Cash <kyle.sutherlandcash@gmail.com>
Co-authored-by: Thomas Linford <linford.t@gmail.com>
Co-authored-by: Thomas Linford <tlinford@users.noreply.github.com>
2023-08-12 15:35:42 +02:00
Aram Drevekenin
1bedfc9002
feat(plugins): use protocol buffers for serializing across the wasm boundary ( #2686 )
...
* work
* almost done with command protobuffers
* done translating command data structures
* mid transferring of every command to protobuff command
* transferred plugin_command.rs, now moving on to shim.rs
* plugin command working with protobufs
* protobuffers in update
* protobuf event tests
* various TODOs and comments
* fix zellij-tile
* clean up prost deps
* remove version mismatch error
* fix panic
* some cleanups
* clean up event protobuffers
* clean up command protobuffers
* clean up various protobufs
* refactor protobufs
* update comments
* some transformation fixes
* use protobufs for workers
* style(fmt): rustfmt
* style(fmt): rustfmt
* chore(build): add protoc
* chore(build): authenticate protoc
2023-08-09 22:26:00 +02:00
Aram Drevekenin
0fc1939c6c
fix(performance): plug memory leak ( #2675 )
2023-08-04 10:22:46 +02:00
Aram Drevekenin
192e6fd31e
feat(ui): break pane to new tab and move panes between tabs ( #2664 )
...
* prototype
* some tests
* break out floating pane
* break out plugin panes
* add keybind and fix some minor issues
* remove cli
* move pane to left/right tab
* update ui
* adjust ui
* style(fmt): rustfmt
* style(comment): remove commented code
* update snapshots
2023-08-02 11:41:51 +02:00
Aram Drevekenin
ade4406a8f
fix(terminal): properly handle resizes in alternate screen ( #2654 )
2023-07-27 17:55:21 +02:00
Aram Drevekenin
c95d0e769f
feat(plugins): make plugins configurable ( #2646 )
...
* work
* make every plugin entry point configurable
* make integration tests pass
* make e2e tests pass
* add test for plugin configuration
* add test snapshot
* add plugin config parsing test
* cleanups
* style(fmt): rustfmt
* style(comment): remove commented code
2023-07-25 10:04:12 +02:00
har7an
fa8ef2a973
Fix colored pane frames in mirrored sessions ( #2625 )
...
* server/panes/tiled: Fix colored frames
in mirrored sessions. Colored frames were previously ignored because
they were treated like floating panes when rendering tiled panes.
* CHANGELOG: Add PR #2625
* server/tab/unit: Fix unit tests for server.
2023-07-16 14:35:34 +00:00
Aram Drevekenin
5bf421ecdc
chore(version): bump development version
2023-07-12 20:32:53 +02:00
Aram Drevekenin
0825cb65a7
fix(rendering): occasional glitches while resizing ( #2621 )
2023-07-12 20:30:41 +02:00
Aram Drevekenin
3ed2a24572
chore(version): bump development version
2023-06-20 17:31:34 +02:00
Aram Drevekenin
019452bdbf
fix(plugins): make hide_self api idempotent ( #2568 )
...
* fix(plugins): make hide_self api idempotent
* style(fmt): rustfmt
2023-06-20 16:38:01 +02:00
Aram Drevekenin
294b87803f
chore(version): bump development version
2023-06-19 18:54:15 +02:00
Aram Drevekenin
5b14fc423b
chore(version): bump development version
2023-06-19 18:14:00 +02:00
Aram Drevekenin
1280cc8d73
fix(plugins): swap layouts and invoked_with ( #2564 )
2023-06-19 18:09:08 +02:00
Aram Drevekenin
4102a14e5c
chore(version): bump development version
2023-06-18 15:10:43 +02:00
Aram Drevekenin
805fd1dc81
feat(plugins): strider improvements ( #2551 )
...
* fix(plugins): adjust debounce and smart file ignore in strider
* style(comment): remove commented code
* style(fmt): rustfmt
2023-06-17 18:16:41 +02:00
Aram Drevekenin
63e3a1eae2
feat(plugins): more plugin api methods ( #2550 )
...
* feat(plugins): close, focus, rename pane, rename tab and show_self api methods
* style(fmt): rustfmt
2023-06-17 14:41:49 +02:00
Aram Drevekenin
b7436742cd
performance(plugins): use a debounced fs watcher ( #2546 )
...
* performance(plugins): use a debounced fs watcher
* style(fmt): rustfmt
* fix(macos): use recommended watcher
2023-06-16 21:04:22 +02:00
Aram Drevekenin
bcbd940bf9
feat(plugins): plugin pane state events ( #2545 )
...
* feat(plugins): report pane state to plugins
* refactor(plugins): rename some stuff
* tests(plugins): adjust for new behavior
* style(fmt): rustfmt
2023-06-15 17:07:40 +02:00
Aram Drevekenin
f19334754c
fix(plugins): allow loading relative urls ( #2539 )
...
* fix(plugins): allow loading relative urls
* style(fmt): rustfmt
2023-06-14 13:44:46 +02:00
Aram Drevekenin
3d82a2f5ac
fix(logs): suppress debug logs when not debugging ( #2532 )
...
* fix(logs): suppress debug logs when not debugging
* fix(tests): add debug flag to constructor
2023-06-13 14:55:49 +02:00
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