aboutsummaryrefslogtreecommitdiff
path: root/helix-core/src/transaction.rs
Commit message (Collapse)AuthorAge
* fix: Compose where changes.compose(empty_other)Blaž Hrastnik2021-10-25
|
* remove unsafeBrian Shu2021-08-27
|
* Fix tests broken by the State changeBlaž Hrastnik2021-08-26
|
* Reduce State use a bit furtherBlaž Hrastnik2021-08-26
| | | | This is a legacy type that should be fully removed.
* Remove ExactSizeIterator requirement on Transaction::changeBlaž Hrastnik2021-07-19
| | | | Size hint is enough.
* Fix all remaining warnings in helix-core except for two.Nathan Vegdahl2021-07-02
| | | | | I'm not sure how to address them, because they look like they might be bugs, and code is involved. Will poke the relevant people.
* Remove #[allow(unused)] from helix-core, and fix unused imports.Nathan Vegdahl2021-07-02
| | | | Still a bunch more warnings to fix in core, but it's a start.
* fix ca98210d2016d96d1c441932d7a67bbc6e5eccb7Blaž Hrastnik2021-06-28
|
* fix: insert() | delete() would calculate the new insert incorrectlyBlaž Hrastnik2021-06-28
| | | | Refs #386
* Derive debug without featureIvan Tham2021-06-10
| | | | Note that this also removed those `finish_non_exhaustive()`.
* Implement Debug for data structure as a featurenotoria2021-06-10
|
* Fix Unicode (#135)Kirawi2021-06-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * init * wip * wip * fix unicode break * fix unicode break * Update helix-core/src/transaction.rs Co-authored-by: Benoît Cortier <benoit.cortier@fried-world.eu> * clippy * fix * add changes * added test * wip * wip * wip * wip * fix * fix view * fix #88 Co-authored-by: Benoît Cortier <benoit.cortier@fried-world.eu>
* Fixing Multiple Panics (#121)Kirawi2021-06-05
| | | | | | | * init * wip * wip
* Separate document history into CellIvan Tham2021-06-02
| | | | | As history is used separately from the rest of the edits, separating it can avoid needless borrowing and cloning. But one need to be aware later.
* core: Improve changeset composition behavior.Blaž Hrastnik2021-04-06
| | | | It would fail to combine with an empty set.
* Fully drop State references.Blaž Hrastnik2021-03-31
|
* Transaction: Add a changes_iter() that can convert back to a list of ChangesBlaž Hrastnik2021-03-29
|
* Transaction: need to consume insert | delete properly.Blaž Hrastnik2021-03-29
|
* clippy lintBlaž Hrastnik2021-03-24
|
* Merge some imports.Blaž Hrastnik2021-03-22
|
* Selection: fail early if new() is called with no ranges.Blaž Hrastnik2021-03-22
|
* Implement iter() and len() directly on Selection.Blaž Hrastnik2021-03-19
|
* Remove State from a few more signatures.Blaž Hrastnik2021-03-18
|
* Make Transaction::change only rely on the rope.Blaž Hrastnik2021-03-18
|
* Cleanup: use doc.selection() instead of doc.state.selection().Blaž Hrastnik2021-03-14
|
* transaction: Also modify map_pos to work with insert|delete order.Blaž Hrastnik2021-02-18
|
* minor changesBlaž Hrastnik2021-02-17
|
* Optimize Changeset::is_empty()Blaž Hrastnik2021-02-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Checked the ASM output for these three options: pub enum Operation { /// Move cursor by n characters. Retain(usize), /// Delete n characters. Delete(usize), /// Insert text at position. Insert(String), } pub struct A { changes: Vec<Operation>, len: usize, } impl A { pub fn is_empty1(&self) -> bool { match self.changes.as_slice() { [] => true, [Operation::Retain(_)] => true, _ => false, } } /// `true` when the set is empty. pub fn is_empty2(&self) -> bool { let len = self.changes.len(); len == 0 || ( len == 1 && self.changes[0] == Operation::Retain(self.len) ) } pub fn is_empty3(&self) -> bool { match self.changes.as_slice() { [] | [Operation::Retain(_)] => true, _ => false } } }
* Since insert preceedes deletes, follow that ordering in Transaction::changes.Blaž Hrastnik2021-02-16
| | | | Produces the same output but will take the happy path.
* transaction: Use builder methods to generate compact changesets.Blaž Hrastnik2021-02-16
|
* transaction: Merge consecutive inserts on compose.Blaž Hrastnik2021-02-15
|
* Address clippy lints.Blaž Hrastnik2021-01-08
|
* Text change generation, RPC call handling.Blaž Hrastnik2020-12-03
|
* Refactor: Document type as a wrapper around barebones State.Blaž Hrastnik2020-12-03
|
* Validate compose len after applying a is same as before applying b.Blaž Hrastnik2020-10-14
|
* Fix overlapping (insert | delete) composeBlaž Hrastnik2020-10-14
|
* Fix compose not merging certain changesets correctly.Blaž Hrastnik2020-10-14
|
* Don't try to compose zero-width deletes.Blaž Hrastnik2020-10-13
|
* Simplify changeset tracking.Blaž Hrastnik2020-10-13
|
* CleanupBlaž Hrastnik2020-10-13
|
* Simple yank/paste registers.Blaž Hrastnik2020-10-13
|
* Fix changeset composition, lengths don't have to match.Blaž Hrastnik2020-10-13
|
* Hacky undo/redo integration.Blaž Hrastnik2020-10-13
|
* Undo tree draft.Blaž Hrastnik2020-10-13
| | | | | We keep a tree of transactions. This allows for persistent undo by simply serializing the changesets.
* Fix transaction.invert()/.apply() using byte counts instead of char counts.Blaž Hrastnik2020-10-04
|
* Implement Transaction::invert.Blaž Hrastnik2020-10-02
|
* Split selection on regex, fix InputEdit generation.Blaž Hrastnik2020-09-28
|
* Extend selection commands.Blaž Hrastnik2020-09-28
|
* Command needs access to view information for certain changes.Blaž Hrastnik2020-09-19
|
* More work on the UI.Blaž Hrastnik2020-09-19
|