aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--helix-term/src/commands.rs10
-rw-r--r--helix-view/src/document.rs4
2 files changed, 5 insertions, 9 deletions
diff --git a/helix-term/src/commands.rs b/helix-term/src/commands.rs
index 8d3e31e2..283668cc 100644
--- a/helix-term/src/commands.rs
+++ b/helix-term/src/commands.rs
@@ -745,10 +745,6 @@ pub fn extend_line(cx: &mut Context) {
// heuristic: append changes to history after each command, unless we're in insert mode
fn _delete_selection(doc: &mut Document, view_id: ViewId) {
- if doc.empty() {
- return;
- }
-
// first yank the selection
let values: Vec<String> = doc
.selection(view_id)
@@ -763,7 +759,11 @@ fn _delete_selection(doc: &mut Document, view_id: ViewId) {
// then delete
let transaction =
Transaction::change_by_selection(doc.text(), doc.selection(view_id), |range| {
- (range.from(), range.to() + 1, None)
+ use std::cmp::{max, min};
+ let max_to = max(0, doc.text().len_chars() - 1);
+ let to = min(max_to, range.to() + 1);
+ log::info!("{} {} {}", max_to, to, doc.text().len_chars());
+ (range.from(), to, None)
});
doc.apply(&transaction, view_id);
}
diff --git a/helix-view/src/document.rs b/helix-view/src/document.rs
index c41b78ad..3a3b9390 100644
--- a/helix-view/src/document.rs
+++ b/helix-view/src/document.rs
@@ -494,10 +494,6 @@ impl Document {
pub fn versioned_identifier(&self) -> lsp::VersionedTextDocumentIdentifier {
lsp::VersionedTextDocumentIdentifier::new(self.url().unwrap(), self.version)
}
-
- pub fn empty(&self) -> bool {
- self.text == "\n"
- }
}
#[cfg(test)]