mirror of
https://github.com/zaphar/sheetsui.git
synced 2025-07-23 13:29:48 -04:00
Compare commits
16 Commits
704f9f7746
...
d50c12a5ba
Author | SHA1 | Date | |
---|---|---|---|
d50c12a5ba | |||
b38af78ad7 | |||
c3ab2b72de | |||
61e9a4631f | |||
7de19e8e3b | |||
10d35ab0d6 | |||
a65ad974ce | |||
19d01f057b | |||
282df18177 | |||
babe2525a0 | |||
7bbdc26f13 | |||
92b02eea78 | |||
247674530b | |||
e984d7324c | |||
52d1909868 | |||
c5cbc1e75c |
1
.gitignore
vendored
1
.gitignore
vendored
@ -2,3 +2,4 @@
|
||||
result/
|
||||
*.json
|
||||
tarpaulin-report.*
|
||||
*.profraw
|
||||
|
2
Makefile
2
Makefile
@ -8,7 +8,7 @@ build: $(rust-files)
|
||||
cargo build
|
||||
|
||||
tarpaulin-report.%: $(rust_files)
|
||||
cargo tarpaulin --skip-clean --test --out $*
|
||||
cargo tarpaulin --skip-clean --engine llvm --out $*
|
||||
|
||||
cover: tarpaulin-report.html
|
||||
|
||||
|
@ -549,7 +549,9 @@ impl<'ws> Workspace<'ws> {
|
||||
self.maybe_update_range_end();
|
||||
}
|
||||
KeyCode::Char(' ') | KeyCode::Enter => {
|
||||
self.update_range_selection()?;
|
||||
if self.update_range_selection()? {
|
||||
self.exit_range_select_mode()?;
|
||||
}
|
||||
}
|
||||
KeyCode::Char('n') if key.modifiers == KeyModifiers::CONTROL => {
|
||||
self.state.range_select.reset_range_selection();
|
||||
@ -570,16 +572,24 @@ impl<'ws> Workspace<'ws> {
|
||||
KeyCode::Char('C')
|
||||
if key
|
||||
.modifiers
|
||||
.contains(KeyModifiers::CONTROL | KeyModifiers::SHIFT) =>
|
||||
.contains(KeyModifiers::CONTROL) =>
|
||||
{
|
||||
// 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)?;
|
||||
@ -627,17 +637,17 @@ impl<'ws> Workspace<'ws> {
|
||||
}));
|
||||
}
|
||||
}
|
||||
self.exit_range_select_mode()?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn update_range_selection(&mut self) -> Result<(), anyhow::Error> {
|
||||
fn update_range_selection(&mut self) -> Result<bool, 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());
|
||||
self.exit_range_select_mode()?;
|
||||
true
|
||||
})
|
||||
}
|
||||
|
||||
@ -692,7 +702,7 @@ impl<'ws> Workspace<'ws> {
|
||||
KeyCode::Char('C')
|
||||
if key
|
||||
.modifiers
|
||||
.contains(KeyModifiers::CONTROL | KeyModifiers::SHIFT) =>
|
||||
.contains(KeyModifiers::CONTROL) =>
|
||||
{
|
||||
self.state.clipboard = Some(ClipboardContents::Cell(
|
||||
self.book.get_current_cell_rendered()?,
|
||||
|
935
src/ui/test.rs
935
src/ui/test.rs
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user