Commit Graph

90 Commits (06d0f33c9469f8be016e66064bcdba41416fde3d)

Author SHA1 Message Date
Blaž Hrastnik b0b5451c38 Since insert preceedes deletes, follow that ordering in Transaction::changes.
Produces the same output but will take the happy path.
2021-02-16 11:09:05 +09:00
Blaž Hrastnik b4312c9492 transaction: Use builder methods to generate compact changesets. 2021-02-16 11:03:36 +09:00
Blaž Hrastnik 19fb4ed835 transaction: Merge consecutive inserts on compose. 2021-02-16 00:15:49 +09:00
Blaž Hrastnik 777a80917d Address clippy lints. 2021-01-08 16:37:36 +09:00
Blaž Hrastnik cc6bdf8f66 Text change generation, RPC call handling. 2020-12-03 13:10:35 +09:00
Blaž Hrastnik b39849dde1 Refactor: Document type as a wrapper around barebones State. 2020-12-03 13:10:35 +09:00
Blaž Hrastnik 0b74d423d0 Validate compose len after applying a is same as before applying b. 2020-10-14 13:35:54 +09:00
Blaž Hrastnik 7fcc6f8f1b Fix overlapping (insert | delete) compose 2020-10-14 11:48:01 +09:00
Blaž Hrastnik 94f9603c74 Fix compose not merging certain changesets correctly. 2020-10-14 09:38:52 +09:00
Blaž Hrastnik 4a648555ed Don't try to compose zero-width deletes. 2020-10-13 23:13:56 +09:00
Blaž Hrastnik 490e23b645 Simplify changeset tracking. 2020-10-13 23:13:56 +09:00
Blaž Hrastnik 8098279676 Cleanup 2020-10-13 23:13:56 +09:00
Blaž Hrastnik 1dba0f2b1c Simple yank/paste registers. 2020-10-13 23:13:56 +09:00
Blaž Hrastnik eba5b1ef33 Fix changeset composition, lengths don't have to match. 2020-10-13 23:13:56 +09:00
Blaž Hrastnik b765c17896 Hacky undo/redo integration. 2020-10-13 23:13:56 +09:00
Blaž Hrastnik fd311fb8ad Undo tree draft.
We keep a tree of transactions. This allows for persistent undo by
simply serializing the changesets.
2020-10-13 23:13:56 +09:00
Blaž Hrastnik 883b77bd24 Fix transaction.invert()/.apply() using byte counts instead of char counts. 2020-10-04 17:37:46 +09:00
Blaž Hrastnik aa077a07f3 Implement Transaction::invert. 2020-10-02 18:16:26 +09:00
Blaž Hrastnik 36e7e2133f Split selection on regex, fix InputEdit generation. 2020-09-29 01:01:27 +09:00
Blaž Hrastnik 3020077da8 Extend selection commands. 2020-09-29 01:00:35 +09:00
Blaž Hrastnik 48330ddb5f Command needs access to view information for certain changes. 2020-09-19 23:16:00 +09:00
Blaž Hrastnik 3859f6963d More work on the UI. 2020-09-19 11:58:08 +09:00
Blaž Hrastnik 088f8a82af Incremental parsing: rough draft. 2020-09-17 16:32:40 +09:00
Blaž Hrastnik 96db02742e Simplify some more code. 2020-09-13 23:40:11 +09:00
Blaž Hrastnik 0427acd18c Avoid collect() by accepting iterators into Transaction::change. 2020-09-13 23:12:14 +09:00
Blaž Hrastnik b08278807e Add 'A', 'I' commands. 2020-09-13 20:04:16 +09:00
Blaž Hrastnik fb0f56b747 Add 'o' command. 2020-09-13 19:51:42 +09:00
Blaž Hrastnik 22cb7b3338 Change -> Operation, Change2 -> Change 2020-09-13 19:18:05 +09:00
Blaž Hrastnik d86f0feafc Abstract Transaction::change from change_by_selection. 2020-09-13 15:48:15 +09:00
Blaž Hrastnik d466882d04 Abstract Transaction::change_by_selection, working del/backspace. 2020-09-13 11:32:37 +09:00
Blaž Hrastnik dd749bb284 Expand transaction API. 2020-09-07 17:08:28 +09:00
Blaž Hrastnik 8b3e152126 cleanup: Make Buffer just a part of State. 2020-09-07 11:28:52 +09:00
Blaž Hrastnik 579b6899f1 Work on insert mode. 2020-09-07 11:21:26 +09:00
Blaž Hrastnik 387fb57c94 Allow unused code for the time being. 2020-06-02 10:59:02 +09:00
Blaž Hrastnik 6905ff03c2 Start swapping from termwiz to crossterm + async. 2020-05-28 17:47:35 +09:00
Blaž Hrastnik 1984410ac9 Selection mapping over changesets. 2020-05-28 14:59:50 +09:00
Blaž Hrastnik e52e848fd7 changeset: Introduce map_pos. 2020-05-28 14:48:34 +09:00
Blaž Hrastnik b5c38812e9 address clippy warnings 2020-05-28 14:45:44 +09:00
Blaž Hrastnik 23109f1512 OT: changeset: Implement compose and apply. 2020-05-26 18:11:11 +09:00
Blaž Hrastnik 44ff4d3c1f Implement a new core based on CodeMirror. 2020-05-25 13:02:21 +09:00