Antonio Scandurra
e2c19d3d3f
Add Rope::chunks
2021-05-14 15:19:03 +02:00
Antonio Scandurra
6e30fdbf5c
Better balancing of chunks on push
2021-05-14 15:07:30 +02:00
Antonio Scandurra
f303a1d5fe
Implement ::chars, ::to_point and ::to_offset for Rope
2021-05-14 14:44:19 +02:00
Antonio Scandurra
ff235e61f7
Increase leaf occupation for rope
2021-05-14 13:20:20 +02:00
Antonio Scandurra
d7cde9f81b
Don't underflow Rope chunks on append
2021-05-14 12:26:21 +02:00
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
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
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
Antonio Scandurra
5f1d0b8850
💄
2021-05-07 14:38:21 +02:00
Antonio Scandurra
06fb4e8200
Implement select_line for buffer
2021-05-07 11:13:21 +02:00
Max Brunsfeld
e6323f0d02
Fix handling of new files with new buffer/file structure
2021-05-06 21:06:20 -07: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
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 Scandurra and Nathan 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 Sobo
5c392f933f
Merge branch 'master' into buffer-per-inode
2021-05-03 20:47:28 -06:00
Nathan Sobo and Max Brunsfeld
b801628230
Clean up
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com >
2021-05-03 16:33:13 -06:00
Nathan Sobo and Max 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
Antonio Scandurra
76b454d34b
Push selections down correctly when moving a line down
2021-05-03 14:49:35 +02:00
Antonio Scandurra
8cd451f3ca
Implement move_line_up and move_line_down
...
This does not restore folds yet.
2021-05-03 11:37:36 +02:00
Antonio Scandurra
0e432ed889
Merge pull request #32 from zed-industries/editor-keybindings
...
Initial editor keybindings
2021-04-30 09:31:32 +02:00
Max Brunsfeld
8cffa8bdb2
Move file handle from buffer to buffer view
2021-04-29 17:47:06 -07:00