Compare commits

..

No commits in common. "d50c12a5bab588e0c08c0a046143b98701bb3ca9" and "704f9f774671aee6744d2dfe0434c161da5f837e" have entirely different histories.

4 changed files with 150 additions and 828 deletions

1
.gitignore vendored
View File

@ -2,4 +2,3 @@
result/
*.json
tarpaulin-report.*
*.profraw

View File

@ -8,7 +8,7 @@ build: $(rust-files)
cargo build
tarpaulin-report.%: $(rust_files)
cargo tarpaulin --skip-clean --engine llvm --out $*
cargo tarpaulin --skip-clean --test --out $*
cover: tarpaulin-report.html

View File

@ -549,9 +549,7 @@ impl<'ws> Workspace<'ws> {
self.maybe_update_range_end();
}
KeyCode::Char(' ') | KeyCode::Enter => {
if self.update_range_selection()? {
self.exit_range_select_mode()?;
}
self.update_range_selection()?;
}
KeyCode::Char('n') if key.modifiers == KeyModifiers::CONTROL => {
self.state.range_select.reset_range_selection();
@ -572,24 +570,16 @@ impl<'ws> Workspace<'ws> {
KeyCode::Char('C')
if key
.modifiers
.contains(KeyModifiers::CONTROL) =>
.contains(KeyModifiers::CONTROL | KeyModifiers::SHIFT) =>
{
// TODO(zaphar): Share the algorithm below between both copies
self.copy_range(true)?;
self.exit_range_select_mode()?;
}
KeyCode::Char('Y') => {
self.copy_range(true)?;
self.exit_range_select_mode()?;
}
KeyCode::Char('Y') => self.copy_range(true)?,
KeyCode::Char('c') if key.modifiers == KeyModifiers::CONTROL => {
self.copy_range(false)?;
self.exit_range_select_mode()?;
}
KeyCode::Char('y') => {
self.copy_range(false)?;
self.exit_range_select_mode()?;
}
KeyCode::Char('y') => self.copy_range(false)?,
KeyCode::Char('x') => {
if let (Some(from), Some(to)) = (self.state.range_select.start.as_ref(), self.state.range_select.end.as_ref()) {
self.book.extend_to(from, to)?;
@ -637,17 +627,17 @@ impl<'ws> Workspace<'ws> {
}));
}
}
self.exit_range_select_mode()?;
Ok(())
}
fn update_range_selection(&mut self) -> Result<bool, anyhow::Error> {
fn update_range_selection(&mut self) -> Result<(), anyhow::Error> {
Ok(if self.state.range_select.start.is_none() {
self.state.range_select.start = Some(self.book.location.clone());
self.state.range_select.end = Some(self.book.location.clone());
false
} else {
self.state.range_select.end = Some(self.book.location.clone());
true
self.exit_range_select_mode()?;
})
}
@ -702,7 +692,7 @@ impl<'ws> Workspace<'ws> {
KeyCode::Char('C')
if key
.modifiers
.contains(KeyModifiers::CONTROL) =>
.contains(KeyModifiers::CONTROL | KeyModifiers::SHIFT) =>
{
self.state.clipboard = Some(ClipboardContents::Cell(
self.book.get_current_cell_rendered()?,

File diff suppressed because it is too large Load Diff