Commit graph

192 commits

Author SHA1 Message Date
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
Aram Drevekenin
8d0ff0fe40
feat(input): new shortcuts and ui (#220)
* feat(statusbar): new shortcuts

* feat(input): new shortcuts and ui

* style(fmt): rustfmt
2021-03-11 16:03:28 +01:00
Aram Drevekenin
7b69fcb8e0
Make fullscreen panes not override the status bar and strider (#209)
* work

* feat(tab): expansion boundary

* fix(layout): add expansion boundary to default layout

* style(fmt): rustfmt

* style(fmt): remove unnecessary comment
2021-02-24 18:00:00 +01:00
Aram Drevekenin
c0a0af3133
fix(compatibility): do not forward tabs to the terminal (#190)
* fix(compatibility): do not forward tabs to the terminal

* style(fmt): rustfmt
2021-02-18 11:07:57 +01:00
Aram Drevekenin
831d26156e
fix(compatibility): get top not to break everything when exiting (#188) 2021-02-17 15:55:38 +01:00
Brooks J Rady
190d41445b Fix a thorn in my side 2021-02-16 18:58:29 +00:00
categorille
c74e2ef273
feat(input): new keybindings and persistent mode as default (#181)
* added some comments in the input module

* InputHandler now has InputState instead of separate InputMode and permanent bool

* keybinds are now associated with a Vec<Action> instead of a single Action

* removing "persistent" modes alltogether to reimplement the feature, help bar broken

* locked command mode by default, fixes #161, help bar still broken

* status bar fixed, still a few improvements/bugs to go

* better shortcut help bar contents

* fixed last bits and i think we are good

* modified tests according to new controls, not working

* Revert "modified tests according to new controls, not working"

This reverts commit f2d9421ff0169feb83dbd9b246e59b9244cafc16.

* basic.rs tests now pass, not the rest

* close_pane.rs tests pass, but very slowly?

* compatibility.rs tests pass, very slowly as well

* {layout, {move_focus_*}}.rs all working mildly slowly

* {resize_*}.rs should all work but very slowly and funky, see PR comments

* {tabs,toggle_fullscreen}.rs pass. Test performance issue yet to be fixed

* tests now work, with a hack :| ready for merge

* rustfmt + deleted references to InputState and mode persistency
2021-02-12 14:55:22 +01:00
henil
e52e9b1b37 And from Goodbye message 2021-02-10 12:26:38 +05:30
henil
af95b3ff9a Update references in src/ 2021-02-10 12:22:15 +05:30
Brooks J Rady
db3ec62cf2 Fix tests 2021-02-09 23:40:16 +00:00
Brooks J Rady
9791970856 Well, it turns out that I spent 4 hours on something impossible... 2021-02-09 22:19:34 +00:00
Brooks J Rady
fd001860f4 Push the mosaic folder down a directory 2021-02-09 17:27:36 +00:00
Aram Drevekenin
14783c2b2c
feat(ui): new keybindings and status bar (#160)
* work

* feat(statusbar): new design and keybindings

* fix(ipc): add missing const

* style(fmt): rustfmt

* style(input): remove accidental comment
2021-02-09 17:36:37 +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
henil
21d6d025c4 more integration tests poping up.... 2021-01-26 01:44:41 +05:30
henil
cdd94133ae update integration tests 2021-01-26 01:29:18 +05:30
Brooks J Rady
67dbd1d0e4 Merge branch 'main' into wasm-status-bar 2021-01-12 04:56:29 +00:00
Brooks J Rady
555f9af37a Install default layouts and plugins at build-time 2021-01-11 23:00:19 +00:00
Aram Drevekenin
98e5e94670
refactor(terminal-pane): simplify Scroll into Grid (#137)
* refactor(grid): move from scroll to grid (prototype with tests passing)

* refactor(grid): remove scrollbuffer

* fix(terminal): do not overflow cursor y position when resizing

* refactor(file-structure): move grid to different file

* fix(compatibility): vim horizontal resize

* fix(compatibility): various fixes for cursor movement

* style(grid): remove unused imports

* style(grid): remove debugging

* style(fmt): rustfmt

* style(fmt): rustfmt
2021-01-11 18:23:29 +01:00
Brooks J Rady
efcd36a52c Added the set_selectable plugin API function 2021-01-11 07:33:35 +00:00
Brooks J Rady
624f842a20 Add support for layouts with parts of a fixed or unspecified size 2021-01-10 22:24:26 +00:00
Brooks J Rady
de44fbecff Change the layout to only one plugin 2021-01-07 16:43:13 +00:00
Brooks J Rady
70e16f80b1 Merge in changes from main and fix a clippy lint 2021-01-07 16:21:38 +00:00
Henil Dedania
0994c8abcd
feat(completions): Add shell completions files (#128)
* Add shell completions and output files to `assets/completions`

* Rename files and struct name

* Update tests to take into account new changes
2021-01-07 15:14:28 +05:30
Brooks J Rady
01eaedcd37 Parse bytes into keys with Termion 2021-01-07 09:39:16 +00:00
Brooks J Rady
b5f9066172 Merge branch 'main' into wasm-launchable 2021-01-06 20:31:29 +00: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
denis
cde7703ac7 wip: added a test 2021-01-06 10:08:47 +02:00
Brooks J Rady
d25df96eef Acutually pass combined position and size 2021-01-06 00:36:34 +00:00
Brooks J Rady
eb0f3b0285 Very borken 2021-01-05 22:41:23 +00:00
Brooks J Rady
6f1546a5cb Keeping track of multiple plugins 2021-01-05 13:33:23 +00:00
Brooks J Rady
b0c7259266 It's now possible to load WASM files from layouts! 2020-12-29 16:28:34 +00: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
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
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
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
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
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