Commit graph

700 commits

Author SHA1 Message Date
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
Antonio Scandurra
d326e80657 Rework randomized test, ensuring order of folds is maintained correctly 2021-05-04 11:27:32 +02:00
Antonio Scandurra
a0428667d0 Fix folds_in_range and add a test for it
With the current ordering, a linear scan is required in order to
determine which folds intersect the given range.
2021-05-04 11:24:33 +02:00
Nathan Sobo
5c392f933f Merge branch 'master' into buffer-per-inode 2021-05-03 20:47:28 -06:00
Nathan Sobo
8820df7912 Rename WorkspaceView to Workspace and reorganize module 2021-05-03 20:42:32 -06:00