* 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>
* 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>
* 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>
* 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
* 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
* fix(compatibility): make arrow keys work in htop and vim
* docs(terminal): add explanatory comments to character string
* style(format): make rustfmt happy
* 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>
* 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
* 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.
* 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
* 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>
* 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.
* 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>