Aram Drevekenin
a3f42b19a9
Osc implementation ( #517 )
...
* fix(compatibility): implement most osc methods
* style(fmt): rustfmt
* style(fmt): remove cargo warnings
* style(fmt): make clippy happy
* style(fmt): fix formatting after my clippy fixes broke it again ;P
* fix(grid): fix tests
2021-05-17 18:13:05 +02:00
Kunal Mohan
2038947a14
Big refactor: separate crates for client, server and utilities
2021-05-16 21:41:56 +05:30
Kunal Mohan
050d846b5e
clean and exit on window close
2021-05-15 22:18:29 +05:30
Kunal Mohan
c5675e965b
Use ClientToServerMsg and ServerToClientMsg for IPC
2021-05-15 22:14:34 +05:30
Kunal Mohan
f2c43ac577
Fix memory overflow error and add panic hook for server
2021-05-15 22:14:34 +05:30
Kunal Mohan
0d792e26f2
Switch to multiprocess model: Not looking good
2021-05-15 22:14:34 +05:30
Kyle Sutherland-Cash
9a3e8bcb84
First round of merging against server-client and color stuff
2021-05-08 04:32:31 -07:00
Kunal Mohan
c1dd2c588e
Fix after rebase
2021-05-04 20:48:28 +05:30
Kunal Mohan
d33106431d
Fix after rebase
2021-05-04 20:48:17 +05:30
Kunal Mohan
c6f93ba0d2
use better names for senders, receivers and threads
2021-05-04 20:48:17 +05:30
Kunal Mohan
42079f8d04
Refactor CommandIsExecuting to have a single variant
2021-05-04 20:48:16 +05:30
Kunal Mohan
b7aa3fc21a
Use interprocess crate for IPC
2021-05-04 20:48:16 +05:30
Kunal Mohan
246899a1dd
Remove ErrorContext from IpcSender and nit fixes
2021-05-04 20:48:15 +05:30
Kunal Mohan
fedb588330
Fix after rebase
2021-05-04 20:48:15 +05:30
Kunal Mohan
30d0ec2a40
fix terminal window resize tests by restricting lifetime of locks
2021-05-04 20:48:15 +05:30
Kunal Mohan
2a648187fc
Fix after rebase
2021-05-04 20:48:15 +05:30
Kunal Mohan
223ee743e1
Move screen and plugins to client side.
...
Remove AppInstruction enum
spawn pty thread, screen thread and plugin thread on demand
2021-05-04 20:48:15 +05:30
Kunal Mohan
ea732166e3
client side threads should send messages directly to server and router threads should do the actual routing
2021-05-04 20:48:14 +05:30
Kunal Mohan
4f088e8185
split start into start_server and start_client
2021-05-04 20:48:14 +05:30
Kunal Mohan
813547483f
Rename notify_server to connect_to_server
2021-05-04 20:47:52 +05:30
Kunal Mohan
e30ec5745e
Add router thread on server side as well
2021-05-04 20:47:52 +05:30
Kunal Mohan
90982c3e47
Some documentation an ClientOsApi stuff
2021-05-04 20:47:52 +05:30
Kunal Mohan
fe8fb79da0
a probable fix for tests
2021-05-04 20:47:52 +05:30
Kunal Mohan
af445394c0
minor fix while opening new tab
2021-05-04 20:47:52 +05:30
Kunal Mohan
965cc71918
Hide IpcChannel entirely behind OsApi
2021-05-04 20:47:52 +05:30
Kunal Mohan
bc2345c413
Hide server-side Ipc channels creation behind OsApis and some documentation fixes
2021-05-04 20:47:52 +05:30
Kunal Mohan
3ef2715827
increase snapshot time
2021-05-04 20:47:51 +05:30
Kunal Mohan
5d06a49f8a
fix fmt errors
2021-05-04 20:47:51 +05:30
Kunal Mohan
fd1debaa79
Fix after rebase
2021-05-04 20:47:51 +05:30
Kunal Mohan
2ab18244f7
fix tests
2021-05-04 20:47:51 +05:30
Kunal Mohan
0d814ebcde
Divide OsApi into ClientOsApi and ServerOsApi and move calls to os thread
2021-05-04 20:47:51 +05:30
Kunal Mohan
d8986351ed
fix testing for pseudo client-server model
2021-05-04 20:47:50 +05:30
Aram Drevekenin
1f88b342e2
fix(colors): stabilize colors ( #453 )
...
* fix(colors): stabilize colors
* style(fmt): rustfmt
2021-05-04 16:06:55 +02:00
denis
f85822972a
chore: cleanup, fix: the tests finally pass
2021-05-01 14:44:43 +03:00
Aram Drevekenin
1739f370f9
* fix(ui): react to terminal window size changes (SIGWINCH) ( #245 )
...
* fix(ui): react to terminal window size changes (SIGWINCH)
* style(fmt): rustfmt
* style(format): remove some warnings
* style(fmt): rustfmt
2021-04-01 17:38:13 +02:00
Aram Drevekenin
46c9802f6f
Performance: only render panes that should be updated ( #234 )
...
* fix(performance): bring back should_render
* style(fmt): rustfmt
2021-03-16 16:54:07 +01:00
Kyle Sutherland-Cash
b6fb330da3
refactor(input): hotkeys ( #132 )
...
* Initial definitions and thoughts for hotkeys
* Actually document InputKey properly
* Add a to string function for input keys
* Define keybinds and actions; restructure
* Implement hash and start on defining key bindings
* Derive Serialize for input keys
* Store the key strings as tuples for two-way mapping
* Some string to key functions
* Use termion's Key definition and implement action dispatch
* Fix some borrow-checker errors
* Missing keybind and command mode switching
* Fix incorrect handling of spawn terminal command
* fix(plugins): work with new input - tests not passing
* fix(infra): stabilize tests and properly close pty sessions
* style(fmt): rustfmt
Co-authored-by: Brooks J Rady <b.j.rady@gmail.com>
Co-authored-by: Aram Drevekenin <aram@poor.dev>
2021-02-05 11:28:34 +01:00
Aram Drevekenin
5191dfe416
Min max height and width ( #155 )
...
* feat(tab): min/max pane height
* style(fmt): rustfmt
2021-01-28 12:56:39 +01:00
Brooks J Rady
1fa23e6fa4
Get clipped, fool
2021-01-06 19:34:18 +00:00
Brooks J Rady
4a176669fa
A module rename to please clippy
2021-01-06 17:46:50 +00:00
Aram Drevekenin
f1f821c7bd
fix(compatibility): fix neovim change mode ( #108 )
2020-12-17 15:42:49 +01:00
Kunal Mohan
56c53d2487
feat(infra): add custom panic hook. Print backtrace and thread, error info on panic. ( #75 )
...
* Add custom panic hook. Print backtrace and thread, error info on panic.
* use sync_channel and SyncSender
* nit fixes and cleanup
* disable custom panic hook while running tests
* make separate errors.rs file and address other review comments
* improve panic message
* debug: does increasing time between snapshots make tests pass? (this is temporary)
* fix(tests): suspend before sending quit command
* fix(tests): add missing use
* style(format): commas are important apparently
* fix(tests): can we get away with reducing the QUIT suspense time?
* fix(tests): can we get away with 50?
Co-authored-by: Aram Drevekenin <aram@poor.dev>
2020-12-03 15:35:16 +01:00
Aram Drevekenin
ea549f151e
fix(input): read stdin with lock ( #72 )
...
* fix(input): lock stdin when reading and use its own buffer
* style(format): make rustfmt happy
* fix(ipc): add accidentally removed trait
2020-11-29 19:12:19 +01:00
Aram Drevekenin
4f2536a94d
fix(tests): improve atomic data access
2020-11-26 11:15:35 +01:00
Aram Drevekenin
356b9d602b
style(format): make rustfmt happy
2020-11-26 10:52:43 +01:00
Aram Drevekenin
d4d54450a1
fix(tests): do not read stdin until we started reading from pty
2020-11-26 10:49:53 +01:00
Kyle Sutherland-Cash
11e72b3d6b
feat(ux): add a command mode ( #42 )
...
* Move the input loop into a separate module
* Proof of concept implementation of command mode
* Update readme to reflect command mode
* Have Esc exit command mode
* Update tests to use command mode and make it transient by default
* Some merge fixes
* fix(tests): add missing COMMAND_TOGGLE and fix false positive test
* style(format): make rustfmt happy
* Update readme to describe command mode
Co-authored-by: Aram Drevekenin <aram@poor.dev>
2020-11-21 15:55:49 +01:00
Aram Drevekenin
429e415ecc
fix(atomicity): block commands before executing others ( #59 )
2020-11-19 18:24:34 +01:00
Denis Maximov
cf43736656
refactor(data-structures): #51 change winsize to positionandsize ( #56 )
2020-11-19 15:30:05 +01:00
Aram Drevekenin
47954166a2
feat(ux): initial layout engine ( #50 )
...
* prototype
* refactor(layout): move stuff around
* style(format): make rustfmt happy
2020-11-15 19:55:56 +01:00