diff options
| author | Brooks Rady <b.j.rady@gmail.com> | 2021-01-08 14:14:39 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-01-08 14:14:39 +0000 |
| commit | 7efc435bdaf1aa29d72cda11105dd72c0fc1a891 (patch) | |
| tree | b617f2b607b072fcdd54f63987069d795f7aaf9e /src/tests | |
| parent | chore(cleanup): Clean up project root (#135) (diff) | |
| parent | Don't forget to tell split terminals that they have a new size! (diff) | |
| download | sl0ppij-7efc435bdaf1aa29d72cda11105dd72c0fc1a891.tar.gz sl0ppij-7efc435bdaf1aa29d72cda11105dd72c0fc1a891.tar.xz sl0ppij-7efc435bdaf1aa29d72cda11105dd72c0fc1a891.zip | |
feat(infra): initial plugin system
- Added the ability to load and keep track of several plugins at once
- Removed `wasm-wip` feature flag, enabling plugins in all builds
- `split_space` now returns a tuple with the `part_position_and_size` (as before) plus a cloned version of the part, so plugins and terminals can be distinguished by its users
- Added a `Draw` instruction for rendering plugins when asked to by Mosaic
- Added a new `PluginPane`, implementing `Pane` for plugins!
- Replaced RawFd as a pane-identifier with the `PaneId` enum in most places
- `change_size` -> `change_pos_and_size`, with the functionality updated to fit the new name
- `buffer_as_vte_output` -> `render`
- `pid()` on the `Pane` trait now returns a `PaneId`
- Changed lots of functions in `tab.rs` to be more pane oriented, renaming some to remove the `terminal` and switching to `PaneId`s
- splitting functions in `tab.rs` now correctly update the positions of returned fragments
- Used `PaneId`'s as a replacement for `PaneKind` in the tab `BTreeMap`
- Removed `get_rows` and `get_columns` from the `Pane` trait
- Layouts can now create plugin panes!
- Changed lots of the `active_terminal` stuff in `tab.rs` to work with all panes
- Changed the `Tab` `render` function, so that common requirements are moved there and out of the `Pane::render()` methods
- Added a `shared.rs` to `utils` with a couple of useful functions
- We can now accept input and pass it to plugins via serialised JSON
- Trigger a screen render after handling input meant for a plugin
- Allow plugins to be properly closed
- Allow plugin panes to be split (opening a new terminal)
- Allow plugin API functions to send messages on the PTY bus
- Added the API functionality needed for a plugin to open a file in a new pane
- No more compiler warnings!
- Fixed 53 clippy lints!
Diffstat (limited to 'src/tests')
| -rw-r--r-- | src/tests/fakes.rs | 4 | ||||
| -rw-r--r-- | src/tests/fixtures/layouts/panes-with-plugins.yaml | 2 | ||||
| -rw-r--r-- | src/tests/integration/basic.rs | 2 | ||||
| -rw-r--r-- | src/tests/integration/close_pane.rs | 2 | ||||
| -rw-r--r-- | src/tests/integration/compatibility.rs | 2 | ||||
| -rw-r--r-- | src/tests/integration/layouts.rs | 2 | ||||
| -rw-r--r-- | src/tests/integration/move_focus_down.rs | 2 | ||||
| -rw-r--r-- | src/tests/integration/move_focus_left.rs | 2 | ||||
| -rw-r--r-- | src/tests/integration/move_focus_right.rs | 2 | ||||
| -rw-r--r-- | src/tests/integration/move_focus_up.rs | 2 | ||||
| -rw-r--r-- | src/tests/integration/resize_down.rs | 2 | ||||
| -rw-r--r-- | src/tests/integration/resize_left.rs | 2 | ||||
| -rw-r--r-- | src/tests/integration/resize_right.rs | 2 | ||||
| -rw-r--r-- | src/tests/integration/resize_up.rs | 2 | ||||
| -rw-r--r-- | src/tests/integration/tabs.rs | 2 | ||||
| -rw-r--r-- | src/tests/integration/toggle_fullscreen.rs | 2 | ||||
| -rw-r--r-- | src/tests/utils.rs | 8 |
17 files changed, 20 insertions, 22 deletions
diff --git a/src/tests/fakes.rs b/src/tests/fakes.rs index 8ae1a972..821183b6 100644 --- a/src/tests/fakes.rs +++ b/src/tests/fakes.rs @@ -1,4 +1,4 @@ -use crate::terminal_pane::PositionAndSize; +use crate::panes::PositionAndSize; use std::collections::{HashMap, VecDeque}; use std::io::Write; use std::os::unix::io::RawFd; @@ -130,7 +130,7 @@ impl OsApi for FakeInputOutput { .unwrap() .push(IoEvent::SetTerminalSizeUsingFd(pid, cols, rows)); } - fn into_raw_mode(&mut self, pid: RawFd) { + fn set_raw_mode(&mut self, pid: RawFd) { self.io_events .lock() .unwrap() diff --git a/src/tests/fixtures/layouts/panes-with-plugins.yaml b/src/tests/fixtures/layouts/panes-with-plugins.yaml index 09913bb4..7fb13b2e 100644 --- a/src/tests/fixtures/layouts/panes-with-plugins.yaml +++ b/src/tests/fixtures/layouts/panes-with-plugins.yaml @@ -14,4 +14,4 @@ parts: Percent: 80 - direction: Vertical split_size: - Percent: 20 + Percent: 20
\ No newline at end of file diff --git a/src/tests/integration/basic.rs b/src/tests/integration/basic.rs index 29cabcd5..7c9d3c6a 100644 --- a/src/tests/integration/basic.rs +++ b/src/tests/integration/basic.rs @@ -1,4 +1,4 @@ -use crate::terminal_pane::PositionAndSize; +use crate::panes::PositionAndSize; use ::insta::assert_snapshot; use crate::tests::fakes::FakeInputOutput; diff --git a/src/tests/integration/close_pane.rs b/src/tests/integration/close_pane.rs index f57e6a4b..3aed7480 100644 --- a/src/tests/integration/close_pane.rs +++ b/src/tests/integration/close_pane.rs @@ -1,4 +1,4 @@ -use crate::terminal_pane::PositionAndSize; +use crate::panes::PositionAndSize; use ::insta::assert_snapshot; use crate::tests::fakes::FakeInputOutput; diff --git a/src/tests/integration/compatibility.rs b/src/tests/integration/compatibility.rs index a82b9d30..8b446cb4 100644 --- a/src/tests/integration/compatibility.rs +++ b/src/tests/integration/compatibility.rs @@ -1,7 +1,7 @@ use ::insta::assert_snapshot; use ::std::collections::HashMap; -use crate::terminal_pane::PositionAndSize; +use crate::panes::PositionAndSize; use crate::tests::fakes::FakeInputOutput; use crate::tests::possible_tty_inputs::Bytes; use crate::tests::utils::get_output_frame_snapshots; diff --git a/src/tests/integration/layouts.rs b/src/tests/integration/layouts.rs index fe935d2e..35ff7188 100644 --- a/src/tests/integration/layouts.rs +++ b/src/tests/integration/layouts.rs @@ -1,7 +1,7 @@ use insta::assert_snapshot; use std::path::PathBuf; -use crate::terminal_pane::PositionAndSize; +use crate::panes::PositionAndSize; use crate::tests::fakes::FakeInputOutput; use crate::tests::utils::commands::{COMMAND_TOGGLE, QUIT}; use crate::tests::utils::get_output_frame_snapshots; diff --git a/src/tests/integration/move_focus_down.rs b/src/tests/integration/move_focus_down.rs index 72ac27ae..771c31fe 100644 --- a/src/tests/integration/move_focus_down.rs +++ b/src/tests/integration/move_focus_down.rs @@ -1,6 +1,6 @@ use ::insta::assert_snapshot; -use crate::terminal_pane::PositionAndSize; +use crate::panes::PositionAndSize; use crate::tests::fakes::FakeInputOutput; use crate::tests::utils::get_output_frame_snapshots; use crate::{start, CliArgs}; diff --git a/src/tests/integration/move_focus_left.rs b/src/tests/integration/move_focus_left.rs index 2d1a1480..ca676fb6 100644 --- a/src/tests/integration/move_focus_left.rs +++ b/src/tests/integration/move_focus_left.rs @@ -1,6 +1,6 @@ use ::insta::assert_snapshot; -use crate::terminal_pane::PositionAndSize; +use crate::panes::PositionAndSize; use crate::tests::fakes::FakeInputOutput; use crate::tests::utils::get_output_frame_snapshots; use crate::{start, CliArgs}; diff --git a/src/tests/integration/move_focus_right.rs b/src/tests/integration/move_focus_right.rs index 329d2f2b..80e0f2f0 100644 --- a/src/tests/integration/move_focus_right.rs +++ b/src/tests/integration/move_focus_right.rs @@ -1,6 +1,6 @@ use ::insta::assert_snapshot; -use crate::terminal_pane::PositionAndSize; +use crate::panes::PositionAndSize; use crate::tests::fakes::FakeInputOutput; use crate::tests::utils::get_output_frame_snapshots; use crate::{start, CliArgs}; diff --git a/src/tests/integration/move_focus_up.rs b/src/tests/integration/move_focus_up.rs index 273b7dae..5abfb42f 100644 --- a/src/tests/integration/move_focus_up.rs +++ b/src/tests/integration/move_focus_up.rs @@ -1,6 +1,6 @@ use ::insta::assert_snapshot; -use crate::terminal_pane::PositionAndSize; +use crate::panes::PositionAndSize; use crate::tests::fakes::FakeInputOutput; use crate::tests::utils::get_output_frame_snapshots; use crate::{start, CliArgs}; diff --git a/src/tests/integration/resize_down.rs b/src/tests/integration/resize_down.rs index ba56a0c4..3a639910 100644 --- a/src/tests/integration/resize_down.rs +++ b/src/tests/integration/resize_down.rs @@ -1,6 +1,6 @@ use insta::assert_snapshot; -use crate::terminal_pane::PositionAndSize; +use crate::panes::PositionAndSize; use crate::tests::fakes::FakeInputOutput; use crate::tests::utils::get_output_frame_snapshots; use crate::{start, CliArgs}; diff --git a/src/tests/integration/resize_left.rs b/src/tests/integration/resize_left.rs index 95b241e3..685d291c 100644 --- a/src/tests/integration/resize_left.rs +++ b/src/tests/integration/resize_left.rs @@ -1,6 +1,6 @@ use ::insta::assert_snapshot; -use crate::terminal_pane::PositionAndSize; +use crate::panes::PositionAndSize; use crate::tests::fakes::FakeInputOutput; use crate::tests::utils::get_output_frame_snapshots; use crate::{start, CliArgs}; diff --git a/src/tests/integration/resize_right.rs b/src/tests/integration/resize_right.rs index 768636a3..561b962e 100644 --- a/src/tests/integration/resize_right.rs +++ b/src/tests/integration/resize_right.rs @@ -1,6 +1,6 @@ use ::insta::assert_snapshot; -use crate::terminal_pane::PositionAndSize; +use crate::panes::PositionAndSize; use crate::tests::fakes::FakeInputOutput; use crate::tests::utils::get_output_frame_snapshots; use crate::{start, CliArgs}; diff --git a/src/tests/integration/resize_up.rs b/src/tests/integration/resize_up.rs index eb9000df..d94bcd3f 100644 --- a/src/tests/integration/resize_up.rs +++ b/src/tests/integration/resize_up.rs @@ -1,6 +1,6 @@ use ::insta::assert_snapshot; -use crate::terminal_pane::PositionAndSize; +use crate::panes::PositionAndSize; use crate::tests::fakes::FakeInputOutput; use crate::tests::utils::get_output_frame_snapshots; use crate::{start, CliArgs}; diff --git a/src/tests/integration/tabs.rs b/src/tests/integration/tabs.rs index edf239a3..c968e232 100644 --- a/src/tests/integration/tabs.rs +++ b/src/tests/integration/tabs.rs @@ -2,8 +2,8 @@ use insta::assert_snapshot; use crate::tests::fakes::FakeInputOutput; use crate::tests::utils::get_output_frame_snapshots; +use crate::{panes::PositionAndSize, tests::utils::commands::CLOSE_FOCUSED_PANE}; use crate::{start, CliArgs}; -use crate::{terminal_pane::PositionAndSize, tests::utils::commands::CLOSE_FOCUSED_PANE}; use crate::tests::utils::commands::{ CLOSE_TAB, COMMAND_TOGGLE, NEW_TAB, QUIT, SPLIT_HORIZONTALLY, SWITCH_NEXT_TAB, SWITCH_PREV_TAB, diff --git a/src/tests/integration/toggle_fullscreen.rs b/src/tests/integration/toggle_fullscreen.rs index db555ae3..f715300d 100644 --- a/src/tests/integration/toggle_fullscreen.rs +++ b/src/tests/integration/toggle_fullscreen.rs @@ -1,6 +1,6 @@ use insta::assert_snapshot; -use crate::terminal_pane::PositionAndSize; +use crate::panes::PositionAndSize; use crate::tests::fakes::FakeInputOutput; use crate::tests::utils::get_output_frame_snapshots; use crate::{start, CliArgs}; diff --git a/src/tests/utils.rs b/src/tests/utils.rs index a107dce4..63c953f6 100644 --- a/src/tests/utils.rs +++ b/src/tests/utils.rs @@ -1,5 +1,5 @@ -use crate::terminal_pane::PositionAndSize; -use crate::terminal_pane::TerminalPane; +use crate::panes::PositionAndSize; +use crate::panes::TerminalPane; pub fn get_output_frame_snapshots( output_frames: &[Vec<u8>], @@ -7,9 +7,7 @@ pub fn get_output_frame_snapshots( ) -> Vec<String> { let mut vte_parser = vte::Parser::new(); let main_pid = 0; - let x = 0; - let y = 0; - let mut terminal_output = TerminalPane::new(main_pid, *win_size, x, y); + let mut terminal_output = TerminalPane::new(main_pid, *win_size); let mut snapshots = vec![]; for frame in output_frames.iter() { |
