aboutsummaryrefslogtreecommitdiffstats
path: root/src/tests (follow)
Commit message (Collapse)AuthorAge
...
* fix(compatibility): resolve fzf crash (#1056)Thomas Linford2022-02-12
| | | | * grid: add fzf test case * revert alternate viewport creation to contain an empty row
* fix(compatibility): do not set scroll buffer in alternate screen (#1032)Thomas Linford2022-02-02
| | | | | | avoid moving lines to lines_above when in alternate screen. adjust resizing when in alternate screen: * remove extra lines instead of sending to lines_above * truncate excess characters
* feat: add focus attribute in layout (#958)Jae-Heon Ji2022-02-01
| | | | | | | | | | | | | | | | | | | * feat(layout): add focus attribute in layout * feat: add state of focus to tab * chore: i love clippy * test(layout): update focus options * feat: add focus pane * feat: apply focus-pane when layout is only loaded * change the instruction name for focus-on-tab * chore: apply cargo-fmt * test: add e2e testcase
* feat: change dependency for `process_cwd` (#1001)Jae-Heon Ji2022-01-13
| | | | | | | | | | | * feat: change dependency for process_cwd * test: add unittest for get_cwd * chore: apply clippy * test: change tty to openpty * test(e2e): update case
* feat(keybinds): improve default keybindings (#991)Aram Drevekenin2022-01-04
|
* Implement passing the bell signal to the terminal (#981)auronandace2022-01-03
| | | | | | | * implement passing the bell signal to the terminal * Add files via upload add fixture to test against
* fix(clippy): ensure clippy runs on all targets (#972)danieleades2021-12-29
| | | | | | | | | | | * ensure clippy runs on all targets * use 'AtomicBool' instead of 'Mutex<bool>' * remove unused import * remove 'mem::drop' no-ops * remove loop that never loops
* fix(attach): make removing clients atomic (#966)Aram Drevekenin2021-12-23
|
* fix(compatibility): handle deleting chars in lines with widechars (#965)Aram Drevekenin2021-12-22
| | | | | * fix(compatibility): handle deleting chars in lines with widechars * style(fmt): make rustfmt happy
* fix(compatibility): handle inserting characters after wide character (#964)Aram Drevekenin2021-12-22
| | | | | * fix(compatibility): handle inserting characters in the middle of a line after a wide character * style(fmt): make rustfmt happy
* feat(collaboration): implement multiple users (#957)Aram Drevekenin2021-12-20
| | | | | | | * work * feat(collaboration): implement multiple users * style(cleanup): some leftovers
* Feature: Add pane names (#928)Kunal Mohan2021-12-09
| | | | | | | | | | | | | * Read pane name from layout * Update pane name at runtime * Fix tests * prefer and render pane name over pane title * fix clippy errors * fix after rebase
* fix(plugins): support multiple users (#930)Aram Drevekenin2021-12-08
| | | | | * fix(plugins): support multiple clients * fix(style): make clippy happy
* fix(style): various internal refactoringsMarcin Puc2021-12-07
|
* fix(compatibility): full screen scroll region (#915)Aram Drevekenin2021-12-01
| | | | | * fix(compatibility): properly handle scrolling when scroll region is full screen * style(fmt): make clippy and rustfmt happy
* refactor(tabs): lay down infrastructure for multiple users (#864)Aram Drevekenin2021-11-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * refactor(screen): support multiple mirrored clients * style(fmt): make rustfmt happy * style(clippy): make clippy happy * whitespace * github, y u no update CI?! * is this a cache issue? * is it the checkout cache? * no cache at all? * Debug * fix gototab * decoment * gototab none in wasm_vm * gototab none in wasm_vm * the fun never ends * tests(e2e): update infra and add multiple user mirroring test * refactor(tab): change structs in tabs and terminal panes to support multiple users * style(fmt): make rustfmt happy * style(fmt): make clippy happy
* feat(scrolling): half-page scroll actions (#813)oromate2021-11-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Half-page scroll actions #794 * fix(performance): do not hang when resizing large line wraps (#814) * fix(performance): do not hang when resizing large line wraps * style(fmt): make rustfmt happy * style(clippy): make clippy happy * docs(changelog): scroll fix * fix(compatibility): home and end key fix (#815) * fix(compatibility): handle home/end keys properly from terminfo * style(fmt): make rustfmt happy * style(fmt): remove unused import * docs(changelog): home end key fix * docs(changelog): fix link * fix(typo): Correct typo from `occured` to `occurred` (#821) * docs(changelog): fix a typo * fix(docs): fix wrong arguments for `cargo make run` given in CONTRIBUTING.md (#819) * docs(changelog): update `cargo-make` for `v0.35.3` * fix(warning): Fix an unused import warning of std::fs on macos (#820) * docs(changelog): fix unused import on darwin * add: `WriteChars` action (#825) * Behaves like the `Write` action, but one can specify strings themselves instead of their bytecodes. Usage: WriteChars: "cargo make test", * docs(changelog): Add `WriteChars` action * fix(docs): Fix a typo and some grammatical errors in bug_report.md (#826) * docs(changelog): fix typo bug_report template * add: `rust-version` (msrv) field to `Cargo.toml` (#828) * specifies the minimum version the package can be compiled with, may be ignored with `--ignore-rust-version` option ref: https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-rust-version-field * docs(changelog): add `rust-version` to `Cargo.toml` * fix(unix): forkpty => openpty (#830) * fix(unix): forkpty => openpty * style(fmt): make rustfmt happy * docs(changelog): forkpty => openpty * Fix: move `colors_transform` to `colorsys` (#832) * `colors_transform` is deprecated and superceded by `colorsys` ref: https://crates.io/crates/colors-transform * docs(changelog): `colors_transform` to `colorsys` * feat(ui): add right-click support to plugins * chore(docs): update changelog * chore(warnings): remove unused imports (#833) * rename var sroll_rows and review snapshots * style(fmt): make rustfmt happy Co-authored-by: Aram Drevekenin <aram@poor.dev> Co-authored-by: Ken Matsui <26405363+ken-matsui@users.noreply.github.com> Co-authored-by: a-kenji <aks.kenji@protonmail.com> Co-authored-by: Tw <tw19881113@gmail.com> Co-authored-by: Brooks Rady <b.j.rady@gmail.com>
* chore(plugin): update assets and E2E testsBrooks J Rady2021-11-07
|
* fix(input): properly handle bracketed paste (#810)Aram Drevekenin2021-10-27
| | | | | * fix(input): properly handle bracketed paste * style(fmt): make rustfmt happy
* fix(compatibility): improve handling of wide characters inserted in the ↵Aram Drevekenin2021-10-26
| | | | | | | | | | | | | | | middle of existing lines (#806) * fix(compatibility): handle wide characters inserted in line middle * fix(compatibility): more wide char handling * style(fmt): make rustfmt happy * style(fmt): make clippy happy * style(fmt): make clippyt happy * style(fmt): make rustfmt happy... again
* fix(style): fix clippy lints in `remote_runner`Thomas Linford2021-10-23
|
* fix(tests): update snapshotsAram Drevekenin2021-10-20
|
* hotfix(stdin): poll for mouse hold in the stdin thread (#752)Aram Drevekenin2021-09-30
| | | | | | | * hotfix(stdin): poll for mouse hold in the stdin thread * add missing dont panic * style(fmt): make rustfmt happy
* fix(e2e): new fullscreen snapshotAram Drevekenin2021-09-29
|
* fix(compatibility): scroll lines into scrollback when clearing screen (#747)Aram Drevekenin2021-09-28
| | | | | * fix(compatibility): scroll lines into scrollback when clearing screen * fix(tests): silently fail on channel close error
* fix(compatibility): handle cursor movements outside scroll region (#746)Aram Drevekenin2021-09-28
| | | | | * fix(compatibility): handle cursor movements outside scroll region * style(fmt): make clippy happy
* feat(sessions): mirrored sessions (#740)Aram Drevekenin2021-09-27
| | | | | | | | | | | | | | | | | * feat(sessions): mirrored sessions * fix(tests): input units * style(fmt): make rustfmt happy * fix(tests): make mirrored sessions e2e test more robust * refactor(sessions): remove force attach * style(fmt): rustfmtify * docs(changelog): update change * fix(e2e): retry on all errors
* style(clippy): various fixes (#704)Paulo Coelho2021-09-09
| | | | | | | | * test: fix clippy unused_io_amount * chore(clippy): various clippy fixes needless_borrow, let_and_return, vec_init_then_push, unit_arg, useless_format, field_reassign_with_default, redundant_clone
* fix(ui): change resize binding to Ctrl-nBrooks Rady2021-08-30
| | | | | | | | | * fix(ui): change resize binding to Ctrl-n * Fix tests? * Actually update the keybind in tests * Cowardly refuse to fix the E2E testing issue
* feat(ui): overhauled resize and layout systemsBrooks Rady2021-08-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * refactor(panes): move to parametric pane sizes * Fixed the simpler errors by casting to usize * The least I can do is pass the formatting check... * Move to stable toolchain * Well, it compiles? * And now it doesn't! ;) * Baseline functionality with the new Dimension type * Working POC for percent-based resizing * REVERT THIS COMMIT – DELETES TESTS * Perfected the discrete resize algorithm * Fixed fixed-size panes * Basic bidirectional resize * feat(resize): finalised parametric resize algorithm * Reduce the logging level a bit * Fixed nested layouts using percents * Bug squishing for implicit sizing * Here is a funky (read: rubbish) rounding approach * And now it's gone again! * Improve discretisation algorithm to fix rounding errors * Fix the last layout bug (maybe?) * Mixed explicit and implied percents work now * Let's pretend that didn't happen... * Make things a bit less crashy * Crash slightly more for now (to find bugs) * Manaually splitting of panes works now * Start moving to percent-based resizes * Everything but fullscreen seems to be working * Fix compilatation errors * Culled a massive amount of border code * Why not pause to please rustfmt? * Turns out I was still missing a few tests... * Bringing back even more tests! * Fix tests and pane boarders * Fix the resize system without gaps * Fix content offset * Fixed a bug with pane closing * Add a hack to fix setting of the viewport * Fix toggling between shared borders and frames * fix(tests): make e2e properly use PaneGeom * style(fmt): make rustfmt happy * Revert unintentional rounding of borders * Purge some old borderless stuff * Fix busted tab-bar shrinking * Update E2E tests * Finish implementing fullscreen! * Don't crash anymore? * Fix (almost) all tests * Fix a lack of tab-stops * All tests passing * I really can't be bothered to debug a CI issue * Tie up loose ends * Knock out some lingering FIXMEs * Continue to clean things up * Change some naming and address FIXMEs * Cull more code + FIXMEs * Refactor of the resize system + polish * Only draw frames when absolutely necessary * Fix the tab-bar crash * Fix rendering of boarders on reattach * Fix resizing at small pane sizes * Deduplicate code in the layout system * Update tab-bar WASM * Fixed the pinching of panes during resize * Unexpose needlessly public type * Add back a lost test * Re-add tab tests and get them to compile * All tabs need layouts * Start fixing tests + bug in main * Stabilize the resize algorithm rounding * All tests from main are now passing * Cull more dead code
* fixup! adjust fixture layoutsa-kenji2021-08-26
|
* Merge branch 'tab-layout' of https://github.com/a-kenji/zellij into ↵Aram Drevekenin2021-08-24
|\ | | | | | | a-kenji-tab-layout
| * fixup! fix e2e fixturesa-kenji2021-07-23
| |
* | Fix scrolling (#650)Aram Drevekenin2021-08-19
| | | | | | | | | | | | | | | | | | * fix(grid): scroll up on empty line * fix(grid): line wrapping while scrolling * style(grid): fix names * docs(changelog): document fix
* | fix(compatibility): support changing index colors with osc (#646)Aram Drevekenin2021-08-13
| | | | | | | | | | | | | | | | | | | | | | * fix(compatibility): support changing index colors with osc * style(fmt): make rustfmt happy * style(fmt): make clippy happy * style(fmt): make rustfmt happy * docs(changelog): document fix
* | feat(ui): pane frames (new pane UI) (#643)Aram Drevekenin2021-08-12
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * work * resize working * move focus working * close pane working * selection and fullscreen working * pane title line * titles and conditional scroll title * whole tab resize working * plugin frames working * plugin splitting working * truncate pane frame titles * cleanup * panes always draw their own borders - also fix gap * toggle pane frames * move toggle to screen and fix some bugs * fix plugin frame toggle * fix terminal window resize * fix scrolling and fullscreen bugs * unit tests passing * e2e tests passing and new test for new frames added * refactor: TerminalPane and PluginPane * refactor: Tab * refactor: moar Tab * refactor: Boundaries * only render and calculate boundaries when there are no pane frames * refactor: Layout * fix(grid): properly resize when coming back from alternative viewport * style: remove commented code * style: fmt * style: fmt * style: fmt + clippy * docs(changelog): update change
* feat(ui): initial mouse support (#448)Thomas Linford2021-07-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Initial mouse support * enable mouse support (termion MouseTerminal) * handle scroll up and down events * Allow enabling/disabling of mouse reporting Store the mouse terminal on OsInputOutput * WIP: switch pane focus with mouse * testing to get mouse character selection * wip mouse selection * wip: mouse selection - initial handling of mouse events for text selection within a pane - wide characters currently problematic - selection is not highlighted * highlight currently selected text * improve get currently selected text from TerminalPane * copy selection to clipboard (wayland only for now) * Add missing set_should_render on selection update * Improve text selection - Strip whitespace from end of lines - Insert newlines when selection spans multiple lines * Simplify selection logic - Remove Range struct - Selection is not an Option anymore, it's empty when start == end * copy selection to clipboard with OSC-52 sequence * Improve text selection with multiple panes - Constrain mouse hold and release events to currently active pane - Fix calculation of columns with side by side panes * fix for PositionAndSize changes * Fix mouse selection with full screen pane. - Transform mouse event positions to relative when passing to pane. * Move selection to grid, rework highlighting. - Mark selected lines for update in grid output buffer, for now in the simplest way possible, but can be made more efficient by calculating changed lines only. - Clear selection on pane resize. - Re-add logic to forward mouse hold and release events only to currently active pane. * Tidy up selection - add method to get selection line range - add method to sort the current selection * Grid: move current selection up/down when scrolling - Make the selection work with lines in lines_above and lines_below - Todo: update selection end when scrolling with mouse button being held - Todo: figure out how to move selection when new characters are added. * Grid: move selection when new lines are added * Keep track of selection being active - Handle the selection growing/shrinking when scrolling with mouse button held down but not yet released. * Improve selection end with multiple panes * Tidying up - remove logging statements, unused code * Add some unit tests for selection, move position to zellij-utils * Change Position::new to take i32 for line * Grid: add unit tests for copy from selection * add basic integration test for mouse pane focus * Add basic integration test for mouse scroll * Use color from palette for selection rendering * Improve performance of selection render - Try to minimize lines to update on selection start/update/end * fixes for updated start method * fix lines not in viewport being marked for rendering - the previous optimization to grid selection rendering was always adding the lines at the extremes of previous selection, causing problems when scrolling up or down - make sure to only add lines in viewport * Disable mouse mode on exit * use saturating_sub for usize subtractions * copy selection to clipboard on mouse release * disable mouse on exit after error * remove left-over comments * remove copy keybinding * add default impl for selection methods in Pane - remove the useless methods from Impl Pane in PluginPane * move line diff between selections to selection * add option to disable mouse mode * Allow scrolling with mouse while selecting. * move action repeater to os_input_output, change timeout to 10ms - change repeater to take an action instead of a position with hardcoded action * replace mouse mode integration tests with e2e tests * cleanup * cleanup * check if mouse mode is disabled from merged options * fix missing changes in tests, cleanup
* chore(tests): move all integration tests to be either unit or e2e tests - ↵Aram Drevekenin2021-06-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | remove old testing infra (#589) * tests(integration): move basic integration tests to be unit tests * fix(tests): silently fail threadbus for tests * tests(unit): move compatibility tests to become unit tests for grid * tests(unit): move close_pane tests to become unit tests for grid * tests(e2e): move basic layout test to e2e * tests(unit): move move_focus tests to be unit tests * tests(unit): move resize_down tests to be unit tests * tests(unit): move resize_left tests to be unit tests * tests(unit): move resize_right tests to be unit tests * tests(unit): move resize_up tests to be unit tests * tests(infra): remove unused infra * style(fmt): make rustfmt happy * debug * debug * debug * debug * chore(test): shift volume mounting around because github actions is a special child
* Add e2e tests (#582)Aram Drevekenin2021-06-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * feature(tests): e2e tests * chore(build): github action * chore(build): fix workflow * chore(build): fix workflow * work * work * work * work * work * work * work * work * work * work * work * work * work * work * work * work * work * work * work * work * work * work * work * work * work * work * work * work * work * work * work * work * work * work * work * work * work * work * work * work * work * work * work * work * work * work * work * work * work * work * working * working * working * bring back the proper errors * make e2e flow run properly * style(fmt): make rustfmt happy * style(fmt): make rustfmt happy * run on everything just to test the workflow * bring back running behaviour on workflow
* Change `layout` directory from `data` to `config`a-kenji2021-06-16
| | | | | | | | | | | | | | | | | | * default layouts won't be installed by anymore, instead they will be directly loaded * `layout-dir` is now a subdirectory of the `config-dir` by default, instead of the `data-dir` POSSIBLE BREAKING CHANGE: In case of having custom layouts in the previous `layout-dir` one can switch either the layouts to the new dir, or set the `layout-dir` to be the current `layout-dir` * it is possible to change the location of the `layout-dir`: - `zellij options --layout-dir [LAYOUR_DIR]` - `layout_dir: [LAYOUT_DIR]`
* Merge branch 'main' of https://github.com/zellij-org/zellij into layout-errora-kenji2021-06-14
|\
| * Fixed a build warning and renamed a struct fieldBrooks J Rady2021-06-03
| |
* | Move `layout.rs` from `server` to `utils`a-kenji2021-06-14
|/ | | | * give feedback on most errors in the layout-file
* fix(tests): Add SLEEP to top_and_quit testKunal Mohan2021-05-28
|
* fix: use bounded queue between pty and screenKOVACS Tamas2021-05-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Pty reads a command's output and feeds it to Screen using an unbounded queue. However, if the command produces output faster than what `Screen` can render, `Pty` still pushes it on the queue, causing it to grow indefinitely, resulting in high memory usage and latency. This patch fixes this by using a bounded queue between Pty and Screen, so if Screen can't keep up with Pty, the queue will fill up, exerting back pressure on Pty, making it read the command's output only as fast as Screen renders it. The unbounded queue is kept between Screen and producers other than Pty to avoid a deadlock such as this scenario: * pty thread filling up screen queue as soon as screen thread pops something from it * wasm thread is processing a Render instruction, blocking on the screen queue * screen thread is trying to render a plugin pane. It attempts to send a Render insturction to the blocked wasm thread running the plugin. This patch also adds a generous amount of sleeps to the integration tests as having backpressure changes the timing of how instructions are processed. Fixes #525.
* refactors for #525 (#534)kxt2021-05-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * refactor(fakes): clean up add_terminal_input * refactor(fakes): append whole buf to output_buffer in FakeStdoutWriter::write * refactor(fakes): append whole buf to output_buffer in FakeInputOutput::write_to_tty_stdin * fix(fakes): allow partial reads in read_from_tty_stdout This patch fixes two bugs in read_from_tty_stdout: * if there was a partial read (ie. `bytes.read_position` is not 0 but less than `bytes.content.len()`), subsequent calls to would fill `buf` starting at index `bytes.read_position` instead of 0, leaving range 0..`bytes.read_position` untouched. * if `buf` was smaller than `bytes.content.len()`, a panic would occur. * refactor(channels): use crossbeam instead of mpsc This patch replaces mpsc with crossbeam channels because crossbeam supports selecting on multiple channels which will be necessary in a subsequent patch. * refactor(threadbus): allow multiple receivers in Bus This patch changes Bus to use multiple receivers. Method `recv` returns data from all of them. This will be used in a subsequent patch for receiving from bounded and unbounded queues at the same time. * refactor(channels): remove SenderType enum This enum has only one variant, so the entire enum can be replaced with the innards of said variant. * refactor(channels): remove Send+Sync trait implementations The implementation of these traits is not necessary, as SenderWithContext is automatically Send and Sync for every T and ErrorContext that's Send and Sync.
* fix(compatibility): support wide characters (#535)Aram Drevekenin2021-05-26
| | | | | | | * fix(compatibility): support wide characters * style(fmt): rustfmt * style(fmt): make clippy happy
* Merge pull request #531 from zellij-org/detach-sessionsKunal Mohan2021-05-25
|\ | | | | Feature: Detachable/Persistent sessions
| * Allow user to specify session nameKunal Mohan2021-05-22
| |
| * Add ability to attach to sessionsKunal Mohan2021-05-22
| |