Commit graph

507 commits

Author SHA1 Message Date
Max Brunsfeld
8609ccdcf7 Add test coverage for FS events happening inside unloaded dirs 2023-06-29 11:55:25 -07:00
Max Brunsfeld
ba80c53278 Avoid redundant FS scans when LSPs changed watched files
* Don't scan directories if they were already loaded.
* Do less work when FS events occur inside unloaded directories.
2023-06-29 11:35:49 -07:00
Max Brunsfeld
91f87bb31f Scan any external/ignored directories needed for LSP watchers
Also, don't include "external" files in project searches. Treat them
the same as ignored files.

Co-authored-by: Nathan Sobo <nathan@zed.dev>
2023-06-23 12:53:25 -07:00
Max Brunsfeld
27b74e9ea1 Prune the set of expanded dir ids as entries are removed 2023-06-23 10:23:21 -07:00
Max Brunsfeld
b22a18345e Emit loaded events for lazily loaded paths in worktree 2023-06-23 09:39:37 -07:00
Max Brunsfeld
ffb0a215ea Fix randomized worktree test failures
* Distinguish between unloaded and pending directories via separate entry kind.
* Scan directories before updating ignore statuses after fs events.
2023-06-22 16:52:04 -07:00
Max Brunsfeld
5350164db9 Get integration test passing. Wait for expand entry on remote projects. 2023-06-22 10:34:28 -07:00
Max Brunsfeld
400e3cda32 Scan directories when they stop being ignored 2023-06-22 10:34:28 -07:00
Max Brunsfeld
d3477f75ac Fix reloading of git repositories
Also, clean up logic for reloading git repositories.
2023-06-22 10:34:28 -07:00
Max Brunsfeld
4424dafcd7 Fix expansion of ancestor directories when refreshing a path 2023-06-22 10:34:28 -07:00
Max Brunsfeld
3e6aedfc69 Expand dirs on-demand when opening buffers inside unloaded dirs 2023-06-22 10:34:28 -07:00
Max Brunsfeld
cd823ede4d Add a bit to each entry indicating if it's outside of the worktree root 2023-06-22 10:34:28 -07:00
Max Brunsfeld
1b71589514 Fix confusion between canonical vs non-canonical paths when rescanning, expanding paths 2023-06-22 10:34:28 -07:00
Max Brunsfeld
3c06bd056a Load git repositories when inserting the entry for the .git
Don't wait until populating that directory entry, for two reasons:
* In the case of submodules, .git is not a directory
* We don't eagerly populate .git directories, since their contents
  are automatically ignored.
2023-06-22 10:34:28 -07:00
Max Brunsfeld
6fe74602ac Fix detection of when refreshed paths are outside of worktree root 2023-06-22 10:34:28 -07:00
Max Brunsfeld
205c758e4e Wait for ignored directory to be expanded in descendant entries test 2023-06-22 10:34:28 -07:00
Max Brunsfeld
aa6f2f1816 Remove logic for marking worktree entries as collapsed 2023-06-22 10:34:28 -07:00
Max Brunsfeld
f910d8fe3e Only scan ignored or externals paths if expanded in a project panel 2023-06-22 10:34:28 -07:00
Max Brunsfeld
4c03231863 Maintain on the background scanner a set of expanded directories 2023-06-22 10:34:28 -07:00
Nathan Sobo
8c298a9da5 Rename SumTree::push_tree to ::append 2023-06-19 19:49:33 -06:00
Max Brunsfeld
c17dbab6f1 Move worktree tests to their own file 2023-06-13 10:22:14 -07:00
Mikayla Maki
fc1f8c5657
Fixed ci 2023-06-07 16:58:55 -07:00
Mikayla Maki
8ca1a7d43d
add scan_complete await 2023-06-07 16:51:54 -07:00
Mikayla Maki
9e9d8e3a7b
add mroe dbg 2023-06-07 16:50:15 -07:00
Mikayla Maki
9d58c4526d
Fix warning 2023-06-07 16:45:36 -07:00
Mikayla Maki
5f143f689f
Attempting to debug on ci... 2023-06-07 16:44:13 -07:00
Mikayla Maki
572d40381a
Add track caller 2023-06-07 16:39:10 -07:00
Mikayla Maki
2c5e83bf72
Fixed a bug where buffer saved clocks would desynchronize in rare execution paths
co-authored-by: Max <max@zed.dev>
2023-06-07 16:10:45 -07:00
Mikayla Maki
28ba27c9c5
Merge branch 'main' into stream-git-statuses 2023-06-07 14:12:58 -07:00
Mikayla Maki
34e134fafb
Fix several randomized test failures with the new git status implementation 2023-06-07 14:10:17 -07:00
Mikayla Maki
a2d58068a7
Improve test generation and implement status propogation
co-authored-by: max <max@zed.dev>
2023-06-05 17:30:12 -07:00
Mikayla Maki
9a13a2ba2c
WIP: Add status bubbling to project panel 2023-06-05 12:53:04 -07:00
Mikayla Maki
e56fcd69b5
Track git status changes with the changed_paths system 2023-06-05 11:50:23 -07:00
Joseph Lyons
7c60f636d5 Fix typos 2023-06-02 22:02:19 -04:00
Mikayla Maki
ca077408d7
Fix bug where git statuses would not be initialized on startup
move git status queries to be on entry creation

co-authored-by: max <max@zed.dev>
2023-06-02 17:38:39 -07:00
Mikayla Maki
2f97c7a4f1
Remove stale comments
Implement status bubbling query with sum tree traversals

co-authored-by: max <max@zed.dev>
2023-06-02 16:41:01 -07:00
Mikayla Maki
e377459948
Remove stateful bubbling
co-authored-by: max <max@zed.dev>
2023-06-02 15:07:49 -07:00
Mikayla Maki
99a0e11e70
Abandoning stateful bubbling approach
co-authored-by: max <max@zed.dev>
2023-06-02 14:51:40 -07:00
Mikayla Maki
3768851799
WIP: Git statuses 2023-06-01 23:27:49 -07:00
Mikayla Maki
5e43dcaab8
WIP: Add stateful status bubbling to worktree 2023-06-01 16:51:34 -07:00
Max Brunsfeld
03a351fb26 Make language settings accessors take an arc dyn file 2023-05-31 14:57:04 -07:00
Max Brunsfeld
a2ab7c9eb9 Respect project-specific settings for copilot 2023-05-31 14:42:15 -07:00
Mikayla Maki
4717ce1da3
WIP: Move statuses to entries
co-authored-by: julia <julia@zed.dev>
2023-05-31 12:55:31 -07:00
Mikayla Maki
22e4086658
WIP: Move statuses to be on their associated file entries in worktree
co-authored-by: Julia <julia@zed.dev>
2023-05-31 11:03:11 -07:00
Max Brunsfeld
89446c7fd4 Start work on respecting project-specific settings 2023-05-29 14:25:49 -07:00
Max Brunsfeld
1f42bfc1bd Include repositories with workdir changes in worktree UpdatedGitRepsositories event 2023-05-26 15:47:37 -07:00
Max Brunsfeld
02b95ef320 Derive worktree update messages from existing change events 2023-05-26 15:47:37 -07:00
Max Brunsfeld
6628c4df28 Store worktree changes in a sorted arc slice, not a HashMap
We don't need to look-up change types by an arbitrary key, but we
do need to iterate it. It would also be useful to be able to
cheaply clone the changes, to use them in a background task.
2023-05-26 09:24:15 -07:00
Max Brunsfeld
59bfd40679 Make stricter assertions about change events in random worktree test 2023-05-26 09:24:15 -07:00
Max Brunsfeld
f890eefdef Include paths loaded during initial scan in worktree UpdatedEntries event 2023-05-26 09:24:15 -07:00