Commit graph

23954 commits

Author SHA1 Message Date
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
cfb7c8770c
Merge pull request #41 from zed-industries/faster-fold-querying
Optimize querying folds
2021-05-07 10:09:34 +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
35e0eaaae2 Refocus root view if focused view is removed
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-05-06 16:30:10 -06:00
Nathan Sobo
5e08a02ca8 Don't retain entities after EntityTasks are dropped
This allows us to spawn long-running tasks without leaking entities, but it also ensures that if we *do* hold on to a task, that the entity exists until the future or stream complete so that the task doesn't need to return an Option type.

Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-05-06 16:19:38 -06:00
Nathan Sobo
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
ab10e27424 Create a pending view handle before creating a view
This way, if we create and drop a handle during the creation of a view, we don't drop the view before we have a chance to increment its initial reference count.

Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-05-06 15:18:09 -06:00
Nathan Sobo
f408521d12 Gracefully handle a view being updated and removed in the same tick
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-05-06 15:13:26 -06:00
Nathan Sobo
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
Max Brunsfeld
290fcb4c06 In handle ::condition, re-poll on events as well as notifications 2021-05-06 13:18:41 -07:00
Antonio Scandurra
6890a3d9fa Batch fold insertion
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-05-06 19:50:51 +02:00
Antonio Scandurra
2c1e4cae19 Merge FoldRange into Fold
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-05-06 19:36:19 +02:00
Antonio Scandurra
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
Antonio Scandurra
65e92ac2f2 Ignore empty folds in FoldMap::fold
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-05-06 18:53:09 +02:00
Antonio Scandurra
178705f8f9 Add FoldMap::folds_in_range to randomized test and fix issues it found 2021-05-06 18:49:41 +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
Nathan Sobo
7717700b2c Implement Drop on AnyViewHandle
This was a pretty bad oversight.
2021-05-05 23:21:39 -06:00
Nathan Sobo
6cb656db9a Require window to have a root view and focused view
This is possible now that the window doesn't need to own the view. We can create the root view before we create the window.
2021-05-05 23:21:19 -06:00
Nathan Sobo
45a01d1526 Don't store views on windows
Instead, store all views in a single top-level map that's keyed by window id and view id. This ensures we'll keep a view alive even if its window is gone, so long as we're holding a handle. This can happen with things like spawned tasks. We don't want to panic during a spawned task after we close the window.
2021-05-05 22:48:16 -06: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
Max Brunsfeld
1fcbadaa99 Add TestAppContext::simulate_new_path_selection 2021-05-05 11:04:39 -07:00
Nathan Sobo
3f844bc953 Fix crash when closing windows 2021-05-05 11:34:49 -06:00
Antonio Scandurra
f7d8b6b4c0
Merge pull request #39 from zed-industries/move-lines-folds
Synchronize `FoldMap` with buffer's contents lazily
2021-05-05 10:47:52 +02:00
Antonio Scandurra
e771e70788 Add test for moving lines up and down 2021-05-05 10:23:35 +02:00
Antonio Scandurra
10aef856e3 Merge branch 'master' into move-lines-folds 2021-05-05 09:58:34 +02:00
Max Brunsfeld
5fd084ec09 Start work on creating and saving new files 2021-05-04 19:04:11 -07:00
Nathan Sobo
2ce9f271b5
Merge pull request #30 from zed-industries/bundle
WIP: Create and upload application bundle in CI
2021-05-04 18:02:47 -06:00
Nathan Sobo
a0471a5447 Add ~/.rustup to the list of cached paths
And restore skipping of rust install if it hasn't changed.
2021-05-04 17:46:44 -06:00
Nathan Sobo
13e524d9ed Try to disable caching 2021-05-04 17:38:05 -06:00
Nathan Sobo
3604d7e292 Try to fix target not being installed 2021-05-04 17:34:03 -06:00
Nathan Sobo
5cf65ed6b7 Ad hoc code-sign the app bundle
Apparently this is necessary to run on the M1 macs
2021-05-04 17:29:39 -06:00
Nathan Sobo
52a5777fbd Create the bundle as a "fat binary" supporting the M1 2021-05-04 17:18:25 -06:00
Nathan Sobo
1f06d216b5 Fix artifact name 2021-05-04 17:18:25 -06:00
Nathan Sobo
2dc1176486 Create and upload a DMG 2021-05-04 17:18:25 -06:00
Nathan Sobo
8297f2a941 Attempt to upload app bundle as an artifact 2021-05-04 17:18:25 -06:00
Nathan Sobo
898271edfb Add script/bundle, which creates a macOS app bundle 2021-05-04 17:18:25 -06:00
Max Brunsfeld
3d739b6621
Merge pull request #34 from zed-industries/buffer-per-inode
Only open one buffer per inode, but associate each buffer view with its own path
2021-05-04 14:37:27 -07:00
Max Brunsfeld
361bb83f43 Replace Workspace::open_path with simpler ::add_worktree method
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-05-04 14:18:16 -07:00
Max Brunsfeld
2b9a97a46e Fix hangs in workspace tests 2021-05-04 12:41:00 -07:00
Antonio Scandurra
05ab1bdddf Synchronize FoldMap with buffer's contents lazily
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-05-04 18:27:56 +02:00
Antonio Scandurra
c135c84ef0 Use correct bias when calculating next_row_end 2021-05-04 16:13:01 +02:00
Antonio Scandurra
7bd192bdfb Add FoldMap::chars_at to randomized test 2021-05-04 14:13:28 +02:00
Antonio Scandurra
3ba463020c Test FoldMap to_display_offset, to_display_point, to_buffer_point 2021-05-04 12:16:35 +02:00