Commit graph

53 commits

Author SHA1 Message Date
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
Denis Maximov
a2914066bf
feat: add rustfmt, update action workflow to check for formatting (#45) 2020-11-14 18:59:37 +01:00
Aram Drevekenin
8e6dfded7a
fix(ux): properly echo characters and do not mess up exit (#44) 2020-11-14 13:27:42 +01:00
Aram Drevekenin
ee0167f3af
fix(compatibility): do not interpret esc as scroll-up (#29) 2020-11-08 21:22:46 +01:00
Aram Drevekenin
bd5824ce3f feat(ipc): listen to external ipc messages including a basic api 2020-10-20 19:17:57 +02:00
Aram Drevekenin
592eff8c74 feat(performance): some improvements by reducing string allocations 2020-10-17 14:35:26 +02:00
Aram Drevekenin
1e3fd9cc92 fix(colors): properly reset various ansi sequences 2020-10-14 14:10:21 +02:00
Aram Drevekenin
cf1080bc3f test(compatibility): bandwhich + various fish things 2020-09-29 11:40:47 +02:00