Commit Graph

162 Commits

Author SHA1 Message Date
Brooks Rady
22890c53fe
fix(plugins): fully Working WebAssembly Loading! (#125)
* Fully Working WebAssembly Loading!

* Move some wasm code to it's own module
2020-12-30 09:59:32 +01:00
Doron Tsur
f196726dab
fix(infra): make panes BTreeMap value Pane trait in preparation for the status bar (#124) 2020-12-30 09:54:31 +01:00
Kunal Mohan
581e06bf8b
Update GOVERNANCE.md
Add `Kunal Mohan` to org members.
2020-12-27 13:48:25 +05:30
Denis Maximov
8f543a4dde
Update GOVERNANCE.md 2020-12-26 15:19:02 +02:00
Aram Drevekenin
4436c89230
fix(compatibility): git log and git diff with scrollup (#118)
* fix(compatibility): git log and git diff with scrollup

* style(formatting): make rustfmt happy
2020-12-21 11:52:49 +01:00
Doron Tsur
75b00b7932
refactor(tabs): lay down infrastructure for status bar (#116)
* resolves #76

* move private fun to bottom

* refactor(tabs): do not allocate when filtering panes to terminals

* style(formatting): make rustfmt happy

Co-authored-by: Aram Drevekenin <aram@poor.dev>
2020-12-19 17:36:23 +01:00
Aram Drevekenin
83a830e4ab
fix(compatibility): fish multiline paste (#112)
* fix(compatibility): fix fish multiline paste

* fix(tests): adjust snapshots of test to tabs

* style(formatting): make rustfmt happy
2020-12-18 15:59:21 +01:00
Aram Drevekenin
51607c655c
docs(readme): update usage hotkeys 2020-12-18 11:13:59 +01:00
Denis Maximov
d47904ea5b
feature(infrastructure): tabs (#89)
* wip: tabs, just outlining stuff, for now it is a mess

* wip: tabs, just outlining stuff, for now it is a mess

* wip: formatting

* wip: some moving around

* wip: not sure why those things are not imported

* wip: cleaning up a bit

* wip: doesn't render when new tab is created?

* wip: doesnt re-render when a new tab is spawned for now

* wip: tabs now are a BTreeMap and we can switch between them in both directions

* wip: I think that should also be here

* wip: cleanup

* Spawn a new terminal simultaneously with a new tab

* Ensure proper Opening and Closing of tabs

* cleanup

* more cleanup

* tests(snapshots): add 'loading' snapshot to each scenario

* fix(tests): update snapshots

* Add tests for tabs implementation

* wip: added tests, moved tab related stuff to a separate file

* wip: var name change, removed unused imports

* chore: fromatting

* wip: tests are you ok?

* Remove next_tab_index field

* clean close_tab() logic in screen.render()

* wip: more tests added, review changes covered

* chore: a programmer and a formatter walk into a bar....

* style(screen): update description comment

* docs(tab): add comment description

Co-authored-by: denis <denis@airheadventures.com>
Co-authored-by: Kunal Mohan <kunalmohan99@gmail.com>
Co-authored-by: Aram Drevekenin <aram@poor.dev>
Co-authored-by: Kunal Mohan <44079328+kunalmohan@users.noreply.github.com>
2020-12-18 11:11:25 +01:00
Aram Drevekenin
97980d618f
fix(compatibility): fix bash linewrap (#109) 2020-12-17 16:33:18 +01:00
Aram Drevekenin
f1f821c7bd
fix(compatibility): fix neovim change mode (#108) 2020-12-17 15:42:49 +01:00
Aram Drevekenin
97d2c8339e
fix(compatibility): fix neovim scrolling (#107)
* fix(compatibility): fix neovim scrolling

* style(formatting): make rustfmt happy
2020-12-17 13:00:44 +01:00
Aram Drevekenin
38d8e2238d
fix(compatibility): handle tab characters properly (#99)
* fix(compatibility): handle tab characters properly

* style(formatting): make rustfmt happy
2020-12-15 12:58:58 +01:00
Aram Drevekenin
ac9c0274f4
fix(compatibility): fix vim overwrite message and buffer clearing on exit (#98)
* fix(compatibility): fix vim overwrite message and buffer clearing on exit

* style(formatting): make rustfmt happy
2020-12-14 16:25:46 +01:00
Henil
8589addde0
fix(style): make match arms consistent (#96) 2020-12-11 18:36:15 +01:00
Henil
1defd39491
docs(spelling): teack -> track (#91) 2020-12-10 10:04:29 +01:00
Aram Drevekenin
d950bab5ab
fix(style): bring the nice match back (#92)
* It 'aint much, but it's honest work (else-if ladder -> match)

* Maybe this is nicer?

* fix(style): use nicer structure for nicer matches

* style(code): match ordering

Co-authored-by: Brooks J Rady <b.j.rady@gmail.com>
2020-12-10 10:02:37 +01:00
Aram Drevekenin
a933b8320b
fix(compatibility): support rgb color notation (#90)
* fix(compatibility): support rgb color notation

* fix(style): remove comments
2020-12-09 18:02:11 +01:00
Kunal Mohan
92d1bcff4c
feat(infrastructure): introduce ErrorContext for tracking errors across threads (#83)
* Implement ErrorContext for tracking errors across threads

* reorder Instruction and ErrorContext

* Add ContextType, AppContext, ScreenContext, PtyContext

* Use ArrayVec in ErrorContext

* increase MAX_THREAD_CALL_STACK to 6

* Custom implement Debug for ErrorContext ad ContextType and color output

* Use os_input instead of println!()

* Use array instead of ArrayVec and some cleanup

* Introduce SenderWithContext

* Keep arrayvec at v0.5.1
2020-12-09 18:01:26 +01:00
Brooks Rady
0a05e4e34a
fix(style): else-if ladder -> match (#86)
* It 'aint much, but it's honest work (else-if ladder -> match)

* Maybe this is nicer?
2020-12-09 12:26:39 +01:00
Aram Drevekenin
94d6f3dbf6
refactor(ansi-codes): treat ansi codes properly and also make things clearer (#85) 2020-12-08 16:42:26 +01:00
Aram Drevekenin
576876b475
fix(compatibility): acknowledge scroll region even if the cursor is not shown (#84) 2020-12-07 16:53:55 +01:00
Aram Drevekenin
1c1558df64
fix(compatibility): do not offset first scroll region line (#82) 2020-12-04 15:19:00 +01:00
Aram Drevekenin
a56cb3c9ad
fix(compatibility): htop horizontal scrolling (#81)
* fix(compatibility): htop horizontal scrolling

* style(format): make rustfmt happy
2020-12-04 10:02:51 +01:00
Denis Maximov
b7b3ff74cf
feat(rect): directional move focus #55 (#78)
* feat: directional move focus #55

* wip: refactored match into if let

* wip: basic tests

* feat: move to most overlapping pane tests

* fix: formatting

* wip: Moved the definitions to the Rect trait

* formatting
2020-12-04 09:59:06 +01:00
Aram Drevekenin
5ba9320b2b
fix(compatibility): keypad arrow fixes (#80)
* fix(compatibility): make arrow keys work in htop and vim

* docs(terminal): add explanatory comments to character string

* style(format): make rustfmt happy
2020-12-03 15:58:30 +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
Brooks Rady
c3fa9fb40e
fix(threads): a race condition, build-times, and warnings (#79)
* Fix a race condition, build-times, and warnings

* Yeah, yeah... I know

* style(code): add comment to explain race condition

Co-authored-by: Aram Drevekenin <aram@poor.dev>
2020-12-02 15:03:46 +01:00
Aram Drevekenin
c47fed927e
fic(compatibility): htop scrolling issues (#77)
* fix(compatibility): scrolling inside scroll region with 'M' esc dispatch

* style(format): make rustfmt happy

* fix(tests): send proper data

* fix(logs): do not crash if log file doesn't exist
2020-11-30 09:40:24 +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
Roee Shapira
9ad7b8a35e
chore(infra): added clippy check. (#65)
* Added clippy check.

* Changed step name.

* Used the suggested ci config.

* Some more clippy fixes.

* Some more clippy fixes.

* More clippy fixes.

* Removed allow annotations.

* Minor lint edit.

* More clippy fixes.

* Ran cargo fmt.

* More clippy fixes.

* More clippy fixes.

* More clippy fixes.

* More clippy fixes.

* More clippy fixes.

* More clippy fixes.

* Code review edits.

* Code review edits.

* Code review edits.

* CI update.

* CI update.

* CI update.

* Added clippy warn so wip won't fail ci.

* Cargo fmt.
2020-11-28 20:02:05 +01:00
Brooks Rady
1586a705d2
feat(tiles): initial WASM integration
The first steps towards WASM module integration
2020-11-26 10:36:27 +00: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
Brooks J Rady
3c43675fb1 Got roasted by cargo fmt 2020-11-25 21:39:18 +00:00
Brooks J Rady
aea41d3d50 Don't crash (always?) 2020-11-25 21:18:13 +00:00
Brooks J Rady
7026c6c484 Don't crash (sometimes) 2020-11-25 20:35:26 +00:00
Brooks J Rady
06b5ef8c26 Well, it compiles... 2020-11-25 19:39:45 +00:00
Aram Drevekenin
489ade6eb8 hotfix(logging): atomically create tmp folders 2020-11-25 17:08:43 +01:00
Aram Drevekenin
761695fe9b hotfix(controls): clear buffer in normal mode 2020-11-24 09:16:50 +01:00
Aram Drevekenin
ed590bceda
fix(atomicity): allow async vte events sending to fail (#67)
* fix(atomicity): allow async vte events sending to fail

* style(format): make rustfmt happy
2020-11-23 19:31:31 +01:00
Aram Drevekenin
f88abe6ad8
fix(compatibility): various htop issues (#66)
* fix(compatibility): various htop issues

* style(format): make rustfmt happy

* fix(logging): do not delete log dir on startup

* fix(tests): update htop with command toggle

* chore(ci): reduce test concurrency to 1
2020-11-23 18:01:16 +01:00
Roee Shapira
fd1f1ce697
fix(layout): total layout percent 100 validation (#57)
* Fix for issue #52

* Added missing fixtures.

* Added missing validation.

* Moved layout creation and validation to the Layout struct.

* Ran cargo fmt.

* Added creation of tmp folder if needed.

* Code review edit.

* Code review edit.

* Fancied code up.

* PR request change.

* PR code review.

* Merge from upstream/main.

* Merge from upstream/main.
2020-11-21 19:39:57 +01:00
Henil
6a9ecc42a8
refactor(structure): Change structure of /tmp directory (#62)
Co-authored-by: Aram Drevekenin <aram@poor.dev>
2020-11-21 17:32:46 +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
Roee Shapira
5ddf95a16c
fix(compatibility): some fixes for htop (#53)
* Moved all log to file functions to one module.

* Moved logging to file function to utils module.

* Housekeeping.

* Housekeeping.

* Started investigation into htop CSIs.

* Used better function for scrolling.

* Minor cleanup.

* Cleanup and start of scroll region rotation.

* Implemented scroll region rotation.

* Improved performace.

* New SCI found.

* Typo.

* Typo.

* Removed logging function.

* Added scroll rotation functions.

* Typo.

* Moved all logging function to one module.

* Attempt at making htop work.

* Reverted unneeded changes.

* Improved log file name creation.

* Ran rust fmt.

* PR review edits.

* PR review edits.

* Used mark_for_rerender function.

* Removed _ prefix from logging functions.
2020-11-19 11:15:59 +01:00
Denis Maximov
6f168c5ef2
fix(ux): disable move focus when in full screen (#49)
* feat: add rustfmt, update action workflow to check for formatting

* wip: Mosaic reacts to "move focus" commands when one pane is maximized

* feat: move focus is blocked when pane is in full screen

* fix: formatting

Co-authored-by: denis <denis@airheadventures.com>
2020-11-17 12:53:37 +01:00