Commit Graph
39175 Commits
Author SHA1 Message Date
Antonio Scandurra 6994f91b65 Merge pull request #59 from zed-industries/more-resilient-fs-events
Use `flush_fs_events` more after performing synchronous fs mutations
2021-05-13 10:42:58 +02:00
Antonio Scandurra 1e11afd43e 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 Brunsfeld a27ba01aed Merge pull request #54 from zed-industries/file-changed-on-disk
Handle buffers' files changing on disk from outside of Zed
2021-05-12 20:19:39 -07:00
Max BrunsfeldandAntonio Scandurra 368d8723ab 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 9e54aa6471 Merge branch 'master' into file-changed-on-disk 2021-05-12 20:08:09 -07:00
Max Brunsfeld ba6bcd9a33 Merge pull request #57 from zed-industries/dropped-entities
Fix panic when an entity's ref count is decremented to 0 and then is incremented again
2021-05-12 20:03:24 -07:00
Max Brunsfeld 97cc639825 Remove dropped entities even if there are no effects to flush 2021-05-12 19:45:45 -07:00
Nathan Sobo 018d30cc00 Don't remove entities whose ref count has become positive again 2021-05-12 19:29:17 -06:00
Nathan Sobo d9392243f9 Remove dropped entities after every effect 2021-05-12 19:28:48 -06:00
Max Brunsfeld a053c3b5a0 Allow a longer timeout in buffer conflict test 2021-05-12 16:20:22 -07:00
Max Brunsfeld 3226435fc5 Merge branch 'master' into file-changed-on-disk 2021-05-12 16:20:03 -07:00
Max Brunsfeld 4a6919960e Merge pull request #56 from zed-industries/async-ctx
Simplify spawning and asynchronous code
2021-05-12 15:35:07 -07:00
Max Brunsfeld 4d075c38e0 Remove commented-out tests for spawn and spawn_stream 2021-05-12 15:27:58 -07:00
Nathan Sobo a792e53401 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 f39e101ae2 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
Max Brunsfeld 1eafa99c62 Merge pull request #55 from zed-industries/test-macros
Introduce a `gpui::test` macro for less ceremony when writing tests
2021-05-12 10:19:46 -07:00
Antonio ScandurraandMax Brunsfeld 78f4e93215 Use gpui::test for tests in gpui
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-05-12 18:21:32 +02:00
Antonio ScandurraandMax Brunsfeld d6002dcc81 Use gpui::test in async tests in zed
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-05-12 18:20:49 +02:00
Antonio Scandurra 630049eb8d Use gpui::test macro for synchronous tests in zed 2021-05-12 17:18:23 +02:00
Antonio Scandurra ba47eafe25 Introduce a gpui::test macro 2021-05-12 17:05:03 +02:00
Antonio Scandurra ed49b0ea34 Test prompting when saving while there's a conflict 2021-05-12 15:21:50 +02:00
Antonio Scandurra 6da1aa4dc7 Update mtime and is_deleted when saving/loading a file 2021-05-12 14:34:56 +02:00
Antonio Scandurra 236ffaa1ad Make MutableAppContext::prompt private
...as we're supposed to call this method only via ViewContext.
2021-05-12 11:57:05 +02:00
Antonio Scandurra aa68b290c4 Display prompt when trying to save a conflicting file 2021-05-12 11:54:48 +02:00
Max Brunsfeld 31242dc757 Use a different tab icon color for buffers with conflicts 2021-05-11 16:59:31 -07:00
Max Brunsfeld 6e72836a3d Add basic handling for buffer's files changing on disk 2021-05-11 16:18:29 -07:00
Max Brunsfeld 2daa7eadf0 Add failing test for buffer detecting on-disk changes 2021-05-11 11:38:10 -07:00
Antonio ScandurraandNathan Sobo f29a2003eb Mark FileHandle as not deleted right after saving it
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-05-11 17:26:26 +02:00
Antonio ScandurraandNathan Sobo 8de74d3f4a Add a basic tab keybinding
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-05-11 17:10:37 +02:00
Antonio Scandurra c821419a98 Merge pull request #48 from zed-industries/file-deletion
Fix management of buffers' dirty state
2021-05-11 17:00:44 +02:00
Antonio ScandurraandNathan Sobo 5a1e9adb6d Don't consider scan as being complete until its state is Idle
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-05-11 16:54:01 +02:00
Antonio ScandurraandNathan Sobo eb7fc67c42 Fix saving files in single-file worktrees
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-05-11 16:46:22 +02:00
Antonio ScandurraandNathan Sobo 2d56da5259 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 7e18d30ac0 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 d2965909dd 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 f2e9bb741a Merge pull request #51 from zed-industries/add-cursors-and-cancel-selections
Implement `add_selection_above`, `add_selection_below` and `cancel`
2021-05-11 13:02:37 +02:00
Antonio Scandurra 35f3fadbd7 💄 2021-05-11 12:43:24 +02:00
Antonio Scandurra a05eb7431d Bind add_selection_{above,below} to cmd-alt-{up,down} 2021-05-11 12:37:30 +02:00
Antonio Scandurra f31e25988d Add test for add_selection_above and add_selection_below 2021-05-11 12:35:27 +02:00
Antonio Scandurra 3c064f11b9 Add test for BufferView::cancel 2021-05-11 12:35:27 +02:00
Antonio Scandurra f90af79a65 Split multi-line selection when starting a new columnar selection 2021-05-11 12:35:27 +02:00
Antonio ScandurraandNathan Sobo f96f46f452 Keep only one selection when starting to add selections above/below
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-05-11 12:35:27 +02:00
Antonio ScandurraandNathan Sobo cc887eba7f Rename add_cursor_{above,below} to add_selection_{above, below}
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-05-11 12:35:27 +02:00
Antonio ScandurraandNathan Sobo 8d5542de57 Support undo of adding cursor above by adding cursor below and viceversa
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-05-11 12:35:27 +02:00
Antonio ScandurraandNathan Sobo 3abf986823 Empty last selection on cancel
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-05-11 12:35:27 +02:00
Antonio Scandurra 9ba791a255 Implement cancel for buffer 2021-05-11 12:35:27 +02:00
Antonio Scandurra 53e62a0fa0 Implement add_cursor_above and add_cursor_below for buffer 2021-05-11 12:35:27 +02:00
Max Brunsfeld a47ab53ee3 Merge pull request #47 from zed-industries/macos-10-compat
Ensure that the bundle runs on macOS versions < 11.0
2021-05-10 14:10:33 -07:00
Max Brunsfeld e099025466 Ensure that the bundle runs on macOS versions < 11.0 2021-05-10 14:14:04 -06:00
Nathan Sobo 0ea30dca56 Merge pull request #40 from zed-industries/close-window
Correctly handle closing windows and removing entities
2021-05-08 09:06:54 -06:00