Commit Graph

188 Commits

Author SHA1 Message Date
Zykino
b10ccb8b6f
feat(plugins): format UI components API (#3193)
* feat: Add serialization methods to ui components

* Revert: do not modify the `print` method at all

---------

Co-authored-by: Zykino <3809938+Zykino@users.noreply.github.com>
2024-04-05 15:02:36 +02:00
Aram Drevekenin
9d2e7fe2c1
feat(plugins): add api to close current plugin instance (#3228) 2024-03-27 20:24:18 +01:00
Aram Drevekenin
2eaa50cc44
feat(plugins): add api to dump the current session layout to a plugin (#3227) 2024-03-26 18:44:56 +01:00
Aram Drevekenin
ee16a4b8c3
feat(plugins): session manager cwd and new filepicker (#3200)
* prototype

* folder selection ui in session manager

* overhaul strider

* scan folder host command

* get strider to work from the cli and some cli pipe fixes

* some ux improvements to strider

* improve strider's ui

* make strider ui responsive

* make session-manager new ui parts responsive

* fix tests

* style(fmt): rustfmt
2024-03-18 09:19:58 +01:00
Aram Drevekenin
896b09aa6f
feat(plugins): allow specifying the cwd when switching sessions (#3172)
* feat(plugins): allow specifying the cwd when switching sessions

* style(fmt): rustfmt
2024-02-29 16:26:25 +01:00
Aram Drevekenin
326c8cd3c6
feat(panes): allow specifying coordinates for a new floating pane through the CLI or plugins (#3122)
* working

* add tests

* add coordinates to all the places

* refactor: move things around:

* style(fmt): rustfmt

* style(code): cleanups
2024-02-08 17:35:55 +01:00
Aram Drevekenin
6b20a958f4
feat(sessions): welcome screen (#3112)
* prototype - can send layout name for new session from session-manager

* feat(sessions): ui for selecting layout for new session in the session-manager

* fix: send available layouts to plugins

* make tests compile

* fix tests

* improve ui

* fix: respect built-in layouts

* ui for built-in layouts

* some cleanups

* style(fmt): rustfmt

* welcome screen ui

* fix: make sure layout config is not shared between sessions

* allow disconnecting other users from current session and killing other sessions

* fix: respect default layout

* add welcome screen layout

* tests(plugins): new api methods

* fix(session-manager): do not quit welcome screen on esc and break

* fix(plugins): adjust permissions

* style(fmt): rustfmt

* style(fmt): fix warnings
2024-02-06 14:26:14 +01:00
Aram Drevekenin
d780bd9105
feat(plugins): introduce 'pipes', allowing users to pipe data to and control plugins from the command line (#3066)
* prototype - working with message from the cli

* prototype - pipe from the CLI to plugins

* prototype - pipe from the CLI to plugins and back again

* prototype - working with better cli interface

* prototype - working after removing unused stuff

* prototype - working with launching plugin if it is not launched, also fixed event ordering

* refactor: change message to cli-message

* prototype - allow plugins to send messages to each other

* fix: allow cli messages to send plugin parameters (and implement backpressure)

* fix: use input_pipe_id to identify cli pipes instead of their message name

* fix: come cleanups and add skip_cache parameter

* fix: pipe/client-server communication robustness

* fix: leaking messages between plugins while loading

* feat: allow plugins to specify how a new plugin instance is launched when sending messages

* fix: add permissions

* refactor: adjust cli api

* fix: improve cli plugin loading error messages

* docs: cli pipe

* fix: take plugin configuration into account when messaging between plugins

* refactor: pipe message protobuf interface

* refactor: update(event) -> pipe

* refactor - rename CliMessage to CliPipe

* fix: add is_private to pipes and change some naming

* refactor - cli client

* refactor: various cleanups

* style(fmt): rustfmt

* fix(pipes): backpressure across multiple plugins

* style: some cleanups

* style(fmt): rustfmt

* style: fix merge conflict mistake

* style(wording): clarify pipe permission
2024-01-17 12:10:49 +01:00
Aram Drevekenin
65bea269a4 chore(version): bump development version 2023-11-29 13:13:23 +01:00
Aram Drevekenin
8e2d37e141 chore(version): bump to 0.39.2 2023-11-29 11:41:59 +01:00
Aram Drevekenin
c33f5b6cc6 chore(version): bump development version 2023-11-13 10:17:12 +01:00
Aram Drevekenin
ebcf35989a chore(release): v0.39.1 2023-11-13 08:51:24 +01:00
Aram Drevekenin
b20715b5ae chore(version): bump development version 2023-11-07 10:28:04 +01:00
Aram Drevekenin
d3d434aede
docs(api): docs for shim.rs (#2909) 2023-11-06 21:56:35 +01:00
Aram Drevekenin
28a165a969
feat(ux): allow renaming sessions (#2903)
* change session name through the cli

* change session name from the session-manager

* style(fmt): rustfmt
2023-11-05 15:32:05 +01:00
Aram Drevekenin
4c6b03acc1
feat(sessions): resurrect sessions through the session-manager (and plugin API) (#2902)
* working with table and scrolling

* ui and functionality complete

* fix formatting

* refactor: background jobs

* style(fmt): rustfmt
2023-11-04 11:20:50 +01:00
Aram Drevekenin
7e5f22f8c9
feat(plugins): UI components (#2898)
* parsing rendering private osc table

* move components to DCS and add tests

* refactor: move components to their own thing

* ribbon and selected-ribbon ui components

* nested list ui component

* selected and indices for nested list

* coordinates and size for ui components

* use Text with ribbon

* add tests for components

* refactor: ui components

* refactor: ui components api

* style(fmt): rustfmt

* style(fmt): cleanups
2023-11-02 08:17:23 +01:00
Aram Drevekenin
b59b29a534
feat(plugins): web requests api (#2879)
* feat(plugins): web requests api

* fix e2e tests

* fix e2e tests again
2023-10-20 14:20:00 +02:00
Aram Drevekenin
d2b6fb5c5b
feat(plugins): plugin run_command api (#2862)
* prototype

* add tests

* style(fmt): rustfmt

* update comments

* deprecation warning for execcmd
2023-10-16 13:42:19 +02:00
Nacho114
36237f0414
fix(plugins): make new auxiliary functions public (#2765) 2023-10-13 12:44:55 +02:00
Aram Drevekenin
e392a66833
feat(panes): in place run (#2795)
* prototype

* fix tests

* add to all the things except plugins

* add in-place to plugin commands

* fix launch-or-focus should_float and in place behavior

* various cleanups

* style(fmt): rustfmt
2023-09-18 16:28:06 +02:00
Aram Drevekenin
e70743e3f1 chore(version): bump development version 2023-09-15 18:36:42 +02:00
Aram Drevekenin
30db58eaf6 chore(version): bump version for patch release 2023-09-15 17:29:33 +02:00
Aram Drevekenin
697723ddd3 chore(version): bump development version 2023-08-31 11:43:28 +02:00
Aram Drevekenin
a4279ca9ba chore(version): adjust version for release 2023-08-31 10:44:01 +02:00
Aram Drevekenin
ac4085d1a4 chore(version): bump development version 2023-08-28 11:23:53 +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
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
Nacho114
9631204028
feat(plugins): utility functions to find active pane and tab (#2652) 2023-07-28 17:24:31 +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
Aram Drevekenin
5bf421ecdc chore(version): bump development version 2023-07-12 20:32:53 +02:00
Aram Drevekenin
3ed2a24572 chore(version): bump development version 2023-06-20 17:31:34 +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
4102a14e5c chore(version): bump development version 2023-06-18 15:10:43 +02:00
Aram Drevekenin
76019acf00
docs(plugins): better zellij-tile-docs (#2560)
* docs(plugins): better zellij-tile-docs

* docs(code): fix examples - thanks cargo!
2023-06-18 13:57:27 +02:00
Aram Drevekenin
e79c3a96b7
docs(plugins): document the zellij-tile events and commands api (#2554) 2023-06-17 20:39:36 +02:00
Aram Drevekenin
29a391f60e
refactor(plugins): improve api (#2552)
* refactor(plugins): improve shim API

* style(fmt): rustfmt
2023-06-17 17:47:28 +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
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
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
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
Aram Drevekenin
03c507bc64 chore(version): bump development version 2023-04-13 11:16:47 +02: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
dfae62526b chore(version): bump development version 2023-03-07 10:14:14 +01:00