Max Brunsfeld
733dc15c32
Ignore .git directories
2021-04-26 15:46:06 -07:00
Max Brunsfeld
e7c594262f
Fix handling of uppercase characters in fuzzy finding
2021-04-26 15:04:26 -07:00
Nathan Sobo
870925e2ac
Rerender tabs when buffers' file handles change
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-04-26 14:16:35 -07:00
Max Brunsfeld
9753e67410
Update filehandle paths when renames occur
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-04-26 12:56:13 -07:00
Antonio Scandurra
6535304da8
WIP: Start on updating file handles
...
Co-Authored-By: Max Brunsfeld <max@zed.dev>
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-04-26 20:10:15 +02:00
Antonio Scandurra
111d98d6c1
Keep ignore status up-to-date as events are processed
2021-04-26 17:55:18 +02:00
Nathan Sobo
f770a70929
WIP: Maintain an IgnoreStack while scanning
...
All ignore files associated with ancestors of the directory currently being scanned are included in the stack. This allows us to compute ignore status for each entry as we initially scan it. If we encounter an ignored directory, we replace the stack with an "ignore all" variant that simply ignores every descendant of the ignored directory.
This is incomplete. We still need to construct an ignore stack in an appropriate state when rescanning subtrees in response to events. It also doesn't deal with individual ignore files being added, removed, or changed. I think we could potentially use the ignore stack while reconstructing the tree for this purpose.
2021-04-24 23:59:03 -06:00
Antonio Scandurra
9cd1d5e607
Avoid cloning entry in Snapshot::entry_for_path
2021-04-24 10:14:17 +02:00
Max Brunsfeld
6a7308b87a
Avoid storing redundant copies of file paths
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-04-23 21:17:26 -07:00
Max Brunsfeld
054203d21c
Fix fuzzy matching after removing root dirname from stored paths
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-04-23 15:22:47 -07:00
Nathan Sobo
dced9469f5
WIP
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-04-23 12:47:23 -06:00
Nathan Sobo
c9d7249305
WIP
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-04-23 11:37:23 -06:00
Antonio Scandurra
ec2e1c3045
Rename PathSearch::Sibling
to PathSearch::Successor
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-04-23 17:15:04 +02:00
Antonio Scandurra
8f2fc079fd
Restructure Worktree to index entries by path
2021-04-23 15:25:59 +02:00
Max Brunsfeld
ae5f02d2e9
Use getmntinfo(3) to list mounted volumes
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-04-22 15:41:03 -07:00
Max Brunsfeld
b37b047400
Start work on excluding separate mount dirs
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-04-22 14:11:46 -07:00
Max Brunsfeld
3e44a0adae
Avoid redundant clearing of descendants when scanning dirs
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-04-22 10:30:47 -07:00
Antonio Scandurra
b2e7a2c42a
Log when there's an error while scanning a directory
...
Co-Authored-By: Max Brunsfeld <max@zed.dev>
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-04-22 19:15:37 +02:00
Antonio Scandurra
99f51c0d85
Simulate .gitignore
s in the randomized test
...
Co-Authored-By: Max Brunsfeld <max@zed.dev>
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-04-22 18:57:46 +02:00
Antonio Scandurra
928ce0eec8
Clear descendants of existing children when scanning a directory
...
Co-Authored-By: Max Brunsfeld <max@zed.dev>
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-04-22 18:42:11 +02:00
Antonio Scandurra
9723e46af4
Replace linear scan of entries with a custom FileIter
2021-04-22 17:29:36 +02:00
Antonio Scandurra
c429a937be
Remove is_ignored
from PathEntry
and lean more on the tree instead
2021-04-22 16:49:11 +02:00
Antonio Scandurra
f3b663e375
Ignore .git
folder
2021-04-22 16:48:13 +02:00
Antonio Scandurra
19a2856780
Let ignore edits batch naturally without imposing a max batch len
2021-04-22 16:47:41 +02:00
Antonio Scandurra
af3bc236b7
Recompute ignore status when .gitignore changes or for new entries
2021-04-22 15:14:23 +02:00
Max Brunsfeld
499e55e950
Start work on handling changes to gitignore files
...
* Use the published ignore crate
* Store ignore objects on snapshot, and use them to compute
files' ignored status dynamically, instead of storing the
ignored status on the file.
2021-04-21 18:11:52 -07:00
Max Brunsfeld
427930cd8a
wip - gitignore handling on rescan
2021-04-21 12:30:30 -07:00
Max Brunsfeld
8e0ca2056e
Store paths as strings on PathMatch structs
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-04-21 12:05:34 -07:00
Max Brunsfeld
955268e2a6
Check worktree invariants in randomized test
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-04-21 11:46:49 -07:00
Max Brunsfeld
ce28dc39ff
Fix missing insert in populate_dir
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-04-21 11:39:50 -07:00
Nathan Sobo
a898acf6b5
WIP
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-04-21 12:29:16 -06:00
Nathan Sobo
56b48c8229
WIP: Establish new invariant-maintaining API for mutating worktree snapshots
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-04-21 12:08:09 -06:00
Antonio Scandurra
031d5ac7d4
WIP
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-04-21 16:58:17 +02:00
Antonio Scandurra
fd8125b22c
Re-enable file finder test and bind menu:select-{next-prev}
2021-04-21 10:07:32 +02:00
Max Brunsfeld
9518cef0a2
Merge pull request #23 from zed-industries/fix-mac-mini-failures
...
Use our own scoped_pool implementation
2021-04-20 16:01:47 -07:00
Max Brunsfeld
b20f5e9139
Fully halt background scanner threads when dropping Worktree
...
* Rework fsevent API to expose a handle for halting the event stream
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-04-20 15:55:29 -07:00
Max Brunsfeld
9fd8acdce7
Use our own scoped_pool implementation
2021-04-20 14:07:36 -07:00
Max Brunsfeld
265ad90034
Stop processing events if root path is deleted
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-04-20 10:40:17 -07:00
Max Brunsfeld
85f8537017
Worktree: silence log message when dir is overwritten by file
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-04-20 10:12:48 -07:00
Nathan Sobo
5cbbf620ed
WIP
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-04-20 10:59:12 -06:00
Nathan Sobo
9899614f31
Remove task_done condvar which supported finish_pending_tasks
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-04-20 10:45:42 -06:00
Nathan Sobo
1a8e909a38
Ensure we remove broadcast channels after all conditions resolve
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-04-20 10:43:13 -06:00
Nathan Sobo
dcc2bdfd4c
Panic when awaiting conditions on dropped entities
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-04-20 10:36:54 -06:00
Antonio Scandurra
ddd746b9f9
Use env_logger
instead of simplelog
in tests
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-04-20 17:34:14 +02:00
Antonio Scandurra
37444acc9c
Time out condition
after 200ms and add basic unit tests for it
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-04-20 17:21:29 +02:00
Antonio Scandurra
cd7dccd30c
Replace remaining usages of finish_pending_tasks
with condition
2021-04-20 12:28:30 +02:00
Antonio Scandurra
ebb7124405
Use scan_complete
and the new ModelHandle::condition
test method
2021-04-20 11:48:12 +02:00
Antonio Scandurra
d11d5483b6
Rework Worktree::scan_complete
to use a watch
2021-04-20 11:24:46 +02:00
Nathan Sobo
a4c1fe5a0b
WIP: Add a condition method to model and view handles for use in tests
...
It returns a future that resolves when the provided predicate returns true. The predicate is called any time the handle's targeted entity calls notify.
Still need to add a timeout and completely remove finsih_pending_tasks.
2021-04-19 22:01:54 -06:00
Max Brunsfeld
69a43afcbd
Add a method for waiting until a worktree's current scan is complete
...
Start removing usages of finish_pending_tasks in tests
2021-04-19 17:45:01 -07:00