Antonio Scandurra
e48973f75a
Start on a SumTree-based Rope implementation
2021-05-14 11:33:39 +02:00
Max Brunsfeld and Nathan 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 Scandurra and Max 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 Scandurra and Max 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 Scandurra and Nathan 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 Brunsfeld and Antonio 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 Sobo and Max 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 Scandurra and Nathan Sobo
e72a309734
Add a basic tab keybinding
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-05-11 17:10:37 +02:00
Antonio Scandurra and Nathan 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 Scandurra and Nathan 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 Brunsfeld and Nathan 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
d9e7547d95
💄
2021-05-11 12:43:24 +02:00
Antonio Scandurra
07ef0d474e
Bind add_selection_{above,below} to cmd-alt-{up,down}
2021-05-11 12:37:30 +02:00
Antonio Scandurra
17258d4f8c
Add test for add_selection_above and add_selection_below
2021-05-11 12:35:27 +02:00
Antonio Scandurra
6f5e47d631
Add test for BufferView::cancel
2021-05-11 12:35:27 +02:00
Antonio Scandurra
0622722ab7
Split multi-line selection when starting a new columnar selection
2021-05-11 12:35:27 +02:00
Antonio Scandurra and Nathan Sobo
951aa0e443
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 Scandurra and Nathan Sobo
3fe64400c6
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 Scandurra and Nathan Sobo
b6449b3809
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 Scandurra and Nathan Sobo
acbda9184e
Empty last selection on cancel
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-05-11 12:35:27 +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
3120906275
Merge branch 'master' into close-window
2021-05-07 14:24:48 -07:00
Max Brunsfeld
d8d36a32bf
Add emacs key bindings for up/down/left/right
2021-05-07 13:51:17 -07:00
Max Brunsfeld
e32b6bc8f8
Merge branch 'master' into new-file
2021-05-07 10:10:20 -07:00
Antonio Scandurra
806c09bf11
Autoscroll when folding an arbitrary range
2021-05-07 18:15:00 +02:00
Antonio Scandurra
8bbaa0bd34
Handle reversed selections correctly in split_selection_into_lines
2021-05-07 14:54:46 +02:00
Antonio Scandurra
5f1d0b8850
💄
2021-05-07 14:38:21 +02:00
Antonio Scandurra
4797ccfdcd
Implement split_selection_into_lines for buffer
2021-05-07 14:32:57 +02:00
Antonio Scandurra
1c2f549c82
Don't report folds that touch the endpoints of the given range
...
Fold ranges are exclusive, exactly like the query ranges. So if the end
of a fold coincides with the start of the query range, we shouldn't
report that fold. Analogously, if the start of a fold coincides with the
end of the query range, that fold shouldn't be reported.
2021-05-07 14:30:40 +02:00
Antonio Scandurra
06fb4e8200
Implement select_line for buffer
2021-05-07 11:13:21 +02:00
Antonio Scandurra
6a2fe38d94
Verify FoldMap::unfold in randomized test
2021-05-07 09:39:55 +02:00
Max Brunsfeld
e6323f0d02
Fix handling of new files with new buffer/file structure
2021-05-06 21:06:20 -07:00
Nathan Sobo and Max Brunsfeld
4eac765f1a
Replace zed::watch with postage::watch for settings
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com >
2021-05-06 15:27:18 -06:00
Nathan Sobo and Max Brunsfeld
008f2b905b
Hold a WeakViewHandle in BufferElement
...
Otherwise, the element never goes away because the view never goes away because the element is holding a strong reference.
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com >
2021-05-06 15:13:01 -06:00
Antonio Scandurra and Nathan Sobo
6890a3d9fa
Batch fold insertion
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-05-06 19:50:51 +02:00
Antonio Scandurra and Nathan Sobo
2c1e4cae19
Merge FoldRange into Fold
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-05-06 19:36:19 +02:00
Antonio Scandurra and Nathan 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