Commit Graph
85 Commits
Author SHA1 Message Date
Antonio Scandurra e48973f75a Start on a SumTree-based Rope implementation 2021-05-14 11:33:39 +02:00
Max BrunsfeldandNathan Sobo 9aeb35bfab Get tests passing using a slow rightmost_point impl
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-05-13 11:54:29 -07:00
d8f7b35dca Fix concurrent editing in buffer after using ropes
Co-Authored-By: Max Brunsfeld <max@zed.dev>
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-05-13 19:59:01 +02:00
Antonio ScandurraandMax Brunsfeld 39c56b75ed Get local buffer usage working with ropes
Randomized tests for remote edits are still not passing.

Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-05-13 19:48:55 +02:00
Antonio ScandurraandMax Brunsfeld 7b98fb33dd WIP: Get the type checker passing...
...but not the borrow checker!

Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-05-13 19:24:03 +02:00
Antonio ScandurraandNathan Sobo 0e9441e5cd WIP
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-05-13 18:35:48 +02:00
Antonio Scandurra 37f0ba9586 Increase timeout for fs-dependent conditions 2021-05-13 11:38:39 +02:00
Antonio Scandurra 4884a05a73 Change buffer atomically when reloading from disk 2021-05-13 11:26:11 +02:00
Antonio Scandurra 19f51bc480 Rely more on conditions for state derived after worktree changes 2021-05-13 11:25:29 +02:00
Antonio Scandurra eea9cb47fd Use flush_fs_events more after performing synchronous fs mutations
I am not sure I have caught all the examples of this, but in general
I think we always want to perform a `flush_fs_events` as opposed to
`next_scan_complete` when doing synchronous I/O. Indeed, the file
system may inform us about the events caused by the just-performed
I/O over multiple batches, and `next_scan_complete` may return
before seeing all of them.

Note that this also removes a few assertions which were ensuring
that, on start, a worktree's file handle wouldn't know its deleted
status, even if the file didn't exist for sure on disk. However,
now that `file` is an async API, it's possible that by the time the
`FileHandle` is resolved, `Worktree` has already completed scanning.
We test a similar behavior further along in the test where those
assertions were removed, so it felt okay to proceed without them.
2021-05-13 10:25:16 +02:00
Max BrunsfeldandAntonio Scandurra 520cbfb955 Read file's mtime in background when getting a FileHandle
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-05-12 20:13:56 -07:00
Max Brunsfeld c757b3f46e Allow a longer timeout in buffer conflict test 2021-05-12 16:20:22 -07:00
Max Brunsfeld 4910bc50c6 Merge branch 'master' into file-changed-on-disk 2021-05-12 16:20:03 -07:00
Nathan Sobo a3be5595dd Pass a handle to the current view model when spawning
Most of the time, we'll want a way to get a reference back to the current view or model, so this facilitates that common case.
2021-05-12 15:28:59 -06:00
Nathan SoboandMax Brunsfeld fa6bd1f926 Introduce AsyncAppContext and simplify spawning
Now when you call spawn in various context, you pass an FnOnce that is called with an AsyncAppContext and returns a static future. This allows you to write async code similar to how our tests work, borrowing the guts of the AsyncAppContext when needed to interact, but using normal async await semantics instead of callbacks.

Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-05-12 15:16:49 -06:00
Antonio Scandurra 1c2b381f74 Use gpui::test macro for synchronous tests in zed 2021-05-12 17:18:23 +02:00
Max Brunsfeld c54a49e5d1 Use a different tab icon color for buffers with conflicts 2021-05-11 16:59:31 -07:00
Max Brunsfeld 040189db3c Add basic handling for buffer's files changing on disk 2021-05-11 16:18:29 -07:00
Max Brunsfeld d5218fbac5 Add failing test for buffer detecting on-disk changes 2021-05-11 11:38:10 -07:00
Antonio ScandurraandNathan Sobo d8eed53f13 Emit Dirtied event when a clean buffer's file is deleted
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-05-11 16:32:52 +02:00
Antonio ScandurraandNathan Sobo 02bd9c8420 Make sure next_scan_complete resolves
Sometimes the scan state could change so quickly that the consumer
wouldn't notice that it ever went to a scanning state before going back
to an idle state, hence never resolving.

Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-05-11 16:06:12 +02:00
Max BrunsfeldandNathan Sobo ff5561d402 Fix management of buffers' dirty state
* Don't consider files deleted if they just haven't been scanned yet.
* Consider a buffer dirty if its file has been deleted.

Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-05-11 15:37:01 +02:00
Antonio Scandurra 143c50f321 Implement cancel for buffer 2021-05-11 12:35:27 +02:00
Antonio Scandurra 0baff0c61d Implement add_cursor_above and add_cursor_below for buffer 2021-05-11 12:35:27 +02:00
Max Brunsfeld e32b6bc8f8 Merge branch 'master' into new-file 2021-05-07 10:10:20 -07:00
Max Brunsfeld e6323f0d02 Fix handling of new files with new buffer/file structure 2021-05-06 21:06:20 -07:00
Antonio ScandurraandNathan Sobo e8179f7e3e Always provide a context to sum tree's methods
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-05-06 19:29:38 +02:00
Max Brunsfeld 490fb485fd Merge branch 'master' into new-file 2021-05-06 09:19:16 -07:00
Antonio Scandurra 652fc9e4ec Remove add_summary_with_ctx and always require a ctx in add_summary 2021-05-06 16:57:47 +02:00
Antonio Scandurra 901525bf77 Implement FoldMap's folds using a SumTree
This required passing a `Context` object to `Summary` and introducing a
new `SeekDimension` trait that allows comparing two dimensions and pass
an additional context object.
2021-05-06 16:20:23 +02:00
Antonio Scandurra 7fb7a6adfc Add a Summary trait in preparation of passing a context struct 2021-05-06 09:32:14 +02:00
Max Brunsfeld bf28aba1a7 Restore Buffer::file field and workspace::Item trait 2021-05-05 18:08:18 -07:00
Max Brunsfeld 78a5d0a378 Maintain workspace buffers state after saving untitled buffer 2021-05-05 13:12:51 -07:00
Max Brunsfeld 47d03498f4 Wait to update bufferview's file handle until save has completed 2021-05-05 11:05:50 -07:00
Antonio Scandurra 10aef856e3 Merge branch 'master' into move-lines-folds 2021-05-05 09:58:34 +02:00
Antonio ScandurraandNathan Sobo 05ab1bdddf Synchronize FoldMap with buffer's contents lazily
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-05-04 18:27:56 +02:00
Nathan SoboandMax Brunsfeld b801628230 Clean up
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-05-03 16:33:13 -06:00
Nathan SoboandMax Brunsfeld afb623b6b5 Make Workspace::open_entry2, which returns a dyn ItemViewHandle
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-05-03 16:25:18 -06:00
Max Brunsfeld 8cffa8bdb2 Move file handle from buffer to buffer view 2021-04-29 17:47:06 -07:00
Max Brunsfeld 88b88a8067 Start work on opening files 2021-04-28 17:46:27 -07:00
Nathan Sobo 870925e2ac Rerender tabs when buffers' file handles change
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-04-26 14:16:35 -07:00
6535304da8 WIP: Start on updating file handles
Co-Authored-By: Max Brunsfeld <max@zed.dev>
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-04-26 20:10:15 +02:00
Nathan SoboandMax Brunsfeld c9d7249305 WIP
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-04-23 11:37:23 -06:00
Nathan Sobo 358fad8242 Replace the old worktree with the new one 2021-04-15 21:02:30 -06:00
Nathan Sobo db8cce9aa9 Merge branch 'master' into rescan 2021-04-14 22:26:09 -06:00
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
Antonio ScandurraandNathan Sobo f4538e9eb5 Generalize pasting when number of selections doesn't match clipboard's
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-04-14 19:02:44 +02:00
Antonio Scandurra 40980edffe Merge branch 'master' into copy-paste 2021-04-14 12:05:52 +02: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