Commit message (Collapse) | Author | Age | |
---|---|---|---|
* | Add auto pairs for same-char pairs (#1219) | Skyler Hawthorne | 2021-12-13 |
| | | | | | | | | | | | | | | | * Add auto pairs for same-char pairs * Add unit tests for all existing functionality * Add auto pairs for same-char pairs (quotes, etc). Account for apostrophe in prose by requiring both sides of the cursor to be non-pair chars or whitespace. This also incidentally will work for avoiding a double single quote in lifetime annotations, at least until <> is added * Slight factor of moving the cursor transform of the selection to inside the hooks. This will enable doing auto pairing with selections, and fixing the bug where auto pairs destroy the selection. Fixes #1014 | ||
* | Address new lint on 1.57 | Blaž Hrastnik | 2021-12-03 |
| | |||
* | fix: Correctly detect empty transactions | Blaž Hrastnik | 2021-12-02 |
| | | | | Fixes #1221 | ||
* | completion: fully revert state before apply & insertText common prefix | Blaž Hrastnik | 2021-10-25 |
| | |||
* | fix: Compose where changes.compose(empty_other) | Blaž Hrastnik | 2021-10-25 |
| | |||
* | remove unsafe | Brian Shu | 2021-08-27 |
| | |||
* | Fix tests broken by the State change | Blaž Hrastnik | 2021-08-26 |
| | |||
* | Reduce State use a bit further | Blaž Hrastnik | 2021-08-26 |
| | | | | This is a legacy type that should be fully removed. | ||
* | Remove ExactSizeIterator requirement on Transaction::change | Blaž Hrastnik | 2021-07-19 |
| | | | | Size hint is enough. | ||
* | Fix all remaining warnings in helix-core except for two. | Nathan Vegdahl | 2021-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 Vegdahl | 2021-07-02 |
| | | | | Still a bunch more warnings to fix in core, but it's a start. | ||
* | fix ca98210d2016d96d1c441932d7a67bbc6e5eccb7 | Blaž Hrastnik | 2021-06-28 |
| | |||
* | fix: insert() | delete() would calculate the new insert incorrectly | Blaž Hrastnik | 2021-06-28 |
| | | | | Refs #386 | ||
* | Derive debug without feature | Ivan Tham | 2021-06-10 |
| | | | | Note that this also removed those `finish_non_exhaustive()`. | ||
* | Implement Debug for data structure as a feature | notoria | 2021-06-10 |
| | |||
* | Fix Unicode (#135) | Kirawi | 2021-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) | Kirawi | 2021-06-05 |
| | | | | | | | * init * wip * wip | ||
* | Separate document history into Cell | Ivan Tham | 2021-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ž Hrastnik | 2021-04-06 |
| | | | | It would fail to combine with an empty set. | ||
* | Fully drop State references. | Blaž Hrastnik | 2021-03-31 |
| | |||
* | Transaction: Add a changes_iter() that can convert back to a list of Changes | Blaž Hrastnik | 2021-03-29 |
| | |||
* | Transaction: need to consume insert | delete properly. | Blaž Hrastnik | 2021-03-29 |
| | |||
* | clippy lint | Blaž Hrastnik | 2021-03-24 |
| | |||
* | Merge some imports. | Blaž Hrastnik | 2021-03-22 |
| | |||
* | Selection: fail early if new() is called with no ranges. | Blaž Hrastnik | 2021-03-22 |
| | |||
* | Implement iter() and len() directly on Selection. | Blaž Hrastnik | 2021-03-19 |
| | |||
* | Remove State from a few more signatures. | Blaž Hrastnik | 2021-03-18 |
| | |||
* | Make Transaction::change only rely on the rope. | Blaž Hrastnik | 2021-03-18 |
| | |||
* | Cleanup: use doc.selection() instead of doc.state.selection(). | Blaž Hrastnik | 2021-03-14 |
| | |||
* | transaction: Also modify map_pos to work with insert|delete order. | Blaž Hrastnik | 2021-02-18 |
| | |||
* | minor changes | Blaž Hrastnik | 2021-02-17 |
| | |||
* | Optimize Changeset::is_empty() | Blaž Hrastnik | 2021-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ž Hrastnik | 2021-02-16 |
| | | | | Produces the same output but will take the happy path. | ||
* | transaction: Use builder methods to generate compact changesets. | Blaž Hrastnik | 2021-02-16 |
| | |||
* | transaction: Merge consecutive inserts on compose. | Blaž Hrastnik | 2021-02-15 |
| | |||
* | Address clippy lints. | Blaž Hrastnik | 2021-01-08 |
| | |||
* | Text change generation, RPC call handling. | Blaž Hrastnik | 2020-12-03 |
| | |||
* | Refactor: Document type as a wrapper around barebones State. | Blaž Hrastnik | 2020-12-03 |
| | |||
* | Validate compose len after applying a is same as before applying b. | Blaž Hrastnik | 2020-10-14 |
| | |||
* | Fix overlapping (insert | delete) compose | Blaž Hrastnik | 2020-10-14 |
| | |||
* | Fix compose not merging certain changesets correctly. | Blaž Hrastnik | 2020-10-14 |
| | |||
* | Don't try to compose zero-width deletes. | Blaž Hrastnik | 2020-10-13 |
| | |||
* | Simplify changeset tracking. | Blaž Hrastnik | 2020-10-13 |
| | |||
* | Cleanup | Blaž Hrastnik | 2020-10-13 |
| | |||
* | Simple yank/paste registers. | Blaž Hrastnik | 2020-10-13 |
| | |||
* | Fix changeset composition, lengths don't have to match. | Blaž Hrastnik | 2020-10-13 |
| | |||
* | Hacky undo/redo integration. | Blaž Hrastnik | 2020-10-13 |
| | |||
* | Undo tree draft. | Blaž Hrastnik | 2020-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ž Hrastnik | 2020-10-04 |
| | |||
* | Implement Transaction::invert. | Blaž Hrastnik | 2020-10-02 |
| |