Commit Graph
75 Commits
Author SHA1 Message Date
Nathan SoboandAntonio Scandurra cbc1d83067 Get worktree out of the way so we can try again
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-04-14 11:09:06 -06:00
Nathan Sobo 24cdfd2471 Identify Worktree entries by their inode
This will allow us to re-parent elements when re-scanning when the file system changes.
2021-04-13 20:09:41 -06:00
Nathan SoboandBrooks Swinnerton 0a2d2aa684 Replace app/app_mut on contexts with AsRef/AsMut impls
Co-Authored-By: Brooks Swinnerton <934497+bswinnerton@users.noreply.github.com>
2021-04-13 20:07:25 -06:00
Max Brunsfeld b2723fd1dd Remove unused variables 2021-04-12 11:45:41 -07:00
Max Brunsfeld afa3f6dcd1 Add test coverage for edit event grouping in transactions 2021-04-12 11:45:41 -07:00
Max Brunsfeld a0da23799d Merge branch 'master' into undo-stack 2021-04-12 10:49:46 -07:00
Antonio Scandurra 8f6b8b2e43 📝 2021-04-12 19:05:56 +02:00
Antonio Scandurra 3a33fab091 Generate operation when updating selection set after undo/redo 2021-04-12 17:47:19 +02:00
Antonio Scandurra 59a9f0102f Remove unnecessary edit_at method 2021-04-12 17:36:56 +02:00
Antonio Scandurra be68af43fc Add unit test for history manipulation (undo, redo, grouping) 2021-04-12 16:01:41 +02:00
Antonio Scandurra 606e6bed56 Simplify buffer history management 2021-04-12 16:01:41 +02:00
Antonio Scandurra ab14b99a73 Introduce transactional edits and allow snapshotting of selections 2021-04-12 16:01:41 +02:00
Antonio Scandurra 40bfdd38ae 💄 2021-04-12 16:01:41 +02:00
Antonio Scandurra 551c86f87a WIP: Start on pushing selection management down into Buffer 2021-04-12 16:01:41 +02:00
Antonio Scandurra 472ff1621f Merge UndoHistory and History, storing also operations in the latter 2021-04-12 16:01:41 +02:00
Antonio ScandurraandNathan Sobo d0b06a2a1d Don't clear redo stack when editing
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-04-12 16:01:41 +02:00
Antonio Scandurra e534fe9112 Add initial support for undo/redo stack
We're still not capturing selections/anchors, that's right up next.
2021-04-12 16:01:41 +02:00
Nathan Sobo 4638391412 Remove MutableAppContext::downgrade 2021-04-10 00:14:26 -06:00
Nathan Sobo 97a8a8ed43 Remove unsafe code from App::test_async
I don't actually think it was correct to allow the future to borrow a mutable app reference. I went back to passing a wrapper around the refcell to async tests. They'll be a bit more annoying to write but also totally safe.
2021-04-10 00:05:09 -06:00
Max Brunsfeld 079050541f Get app running and test passing after gpui App+Platform restructure 2021-04-09 16:56:32 -07:00
Nathan SoboandMax Brunsfeld 4ecc17b1bb WIP: Make App the only entry point from main
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-04-09 13:38:09 -06:00
Antonio Scandurra 07b8a105a6 Merge pull request #11 from zed-industries/undo
Introduce undo/redo support for arbitrary operations in `Buffer`
2021-04-09 18:50:36 +02:00
Antonio Scandurra cba8730d5a Don't report edits in Buffer::undo_or_redo
We will report them in public higher-level methods like `Buffer::undo`
and `Buffer::redo`.
2021-04-09 14:15:17 +02:00
Antonio Scandurra bf3a5d0a0d Move UndoMap down 2021-04-09 11:25:28 +02:00
Antonio Scandurra 4d9ff1109a Exercise arbitrary undos/redos in single-peer buffer randomized test 2021-04-09 11:22:25 +02:00
Antonio Scandurra 2e7ca8ea46 Store only max undo by replica instead of individual undos in Fragment 2021-04-09 11:22:25 +02:00
Antonio Scandurra 7b6fbe1d89 Compute minimal version_in_range on edit and account for undo 2021-04-09 11:22:22 +02:00
Antonio Scandurra c20935de91 WIP 2021-04-08 16:57:46 +02:00
Antonio Scandurra 5e0d5b7f9a Fix Debug impl for Text to only display the slice a Text refers to
...as opposed to the whole string.
2021-04-08 15:05:33 +02:00
Antonio Scandurra 44ab38ac98 Introduce undo/redo support for arbitrary operations in Buffer 2021-04-08 15:05:05 +02:00
Nathan Sobo 0664321125 Add ability to debug element trees as JSON 2021-04-07 21:54:14 -06:00
Max Brunsfeld ae57178f3e Restructure event-handling methods in workspace ItemView 2021-04-07 15:05:16 -07:00
Max Brunsfeld a95d33f662 Add assertions about Dirtied events in test 2021-04-07 14:52:22 -07:00
Nathan Sobo 05125f76bd Fix tests 2021-04-06 20:59:55 -06:00
Nathan Sobo 3f9d224e0f persisted_version -> saved_version 2021-04-06 20:59:44 -06:00
Nathan SoboandMax Brunsfeld 2619bc4602 Update modified status by emitting event whenever buffer is dirtied or saved
I used the word "dirty" because it felt more expressive than "modified" to me, but not married to it. Tagging Max because we did a lot of this thinking together.

Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-04-06 20:46:35 -06:00
Max Brunsfeld d724387158 wip 2021-04-06 18:25:50 -07:00
Max Brunsfeld 685665f3c0 Implement Buffer::is_modified by storing persisted version 2021-04-06 16:19:17 -07:00
Max Brunsfeld bd37b11306 Update tab's modified icon via a saved event emitted from buffer 2021-04-06 15:47:05 -07:00
Max Brunsfeld dabd6abe37 Start work on displaying modified status in tabs 2021-04-06 14:37:21 -07:00
Nathan Sobo 2a9e71d725 Vertically center glyphs in Line::paint based on ascender/descender for line 2021-04-06 09:15:21 -06:00
Nathan Sobo 2970e934da Use handles to obtain entities in future callbacks
This guarantees that the spawning entity will be present and simplifies
the logic for obtaining the entity. Now we can forward the results of spawned futures and streams in the same way regardless of whether what spawned them was a model or a view.
2021-04-05 20:04:04 -06:00
Max BrunsfeldandNathan Sobo fda1394057 Rename Task -> EntityTask (a BackgroundTask is just a Task)
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-04-05 17:03:42 -07:00
Max BrunsfeldandNathan Sobo 46f8665e41 Add save command
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-04-05 16:52:33 -07:00
Max Brunsfeld cded00cf29 Make backspace work correctly for empty selections 2021-04-02 16:20:40 -07:00
Max Brunsfeld dd31b870c3 Remove small pieces of unused code 2021-04-02 14:26:53 -07:00
Max Brunsfeld ce6ca13b13 Fix buffer folding test 2021-04-02 14:04:35 -07:00
Antonio Scandurra d10fc6ce3f Fix crash when selections exceed the container's bounds 2021-04-02 13:49:44 +02:00
Antonio Scandurra ae447ca1d9 Layout lines and line numbers sequentially
Doing things in parallel has a constant factor associated with it (e.g.,
spawning threads and coordinating them) that dwarves its benefits on a
code path like this where things take < 2-3ms when done sequentially.
2021-04-02 10:20:29 +02:00
Antonio Scandurra e487aa5cbd Don't render glyphs located outside of BufferElement's bounds 2021-04-01 11:19:50 +02:00