Commit Graph
466 Commits
Author SHA1 Message Date
Max Brunsfeld a2ab7c9eb9 Respect project-specific settings for copilot 2023-05-31 14:42:15 -07:00
Mikayla Makiandjulia 4717ce1da3 WIP: Move statuses to entries
co-authored-by: julia <julia@zed.dev>
2023-05-31 12:55:31 -07:00
Mikayla MakiandJulia 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
JuliaandMax Brunsfeld cede296b04 Project level git diff recalc handling
This avoids an issue where in a many-buffer multi-buffer, each modified
buffer could complete its recalc independently, causing a cascade of
repeated notifies

Now all recalcs started at the same time must complete before
 A: Starting another recalc pass
 B: The master notify occurring

Each buffer can still show its new diff if something else triggers it
to notify earlier, this is desirable and does not have the same negative
effects as the notify cascade as those re-layouts would need to happen
anyway

Co-Authored-By: Max Brunsfeld <max@zed.dev>
2023-05-25 14:10:27 -04:00
Mikayla Maki 51d94f532b Load diff base for buffers that are opening but not yet opened when repositories are discovered 2023-05-22 18:26:33 -07:00
Mikayla Maki 4c9d24da7c Only fire update diff base when the dot repo is scanned (#2510)
This PR fixes a bug in the firing of the UpdatedRepositories event which
caused it to flood collaboration with new messages on every file save.

Release Notes:

* Fixed a bug in repository detection that caused it to fire
over-eagerly (preview only)
2023-05-22 14:11:19 -07:00
Mikayla Maki 96224fa7e8 Only fire update diff base when the dot repo is scanned 2023-05-22 13:57:07 -07:00
Max Brunsfeld 7689cdf3f9 Clear old diagnostics when restarting a language server 2023-05-22 12:53:22 -07:00
Mikayla Maki bbb68c523c Refactored apart the forward and the backwards iterator for diff hunks 2023-05-19 18:09:47 -07:00
Mikayla Maki 1474429271 fmt 2023-05-19 16:32:07 -07:00
Mikayla Maki c795c9b844 Rearrange git tests in worktree
Add support for renaming work directories
2023-05-19 16:30:00 -07:00
Max Brunsfeld 7ae642b9b8 Avoid storing removed_entry_ids on the LocalSnapshot 2023-05-19 15:16:04 -07:00
Max Brunsfeld 32c7157906 🎨 Make worktree repositories more consistent 2023-05-19 15:04:37 -07:00
Max Brunsfeld 6359333749 Don't store next_entry_id on worktree's local snapshot 2023-05-19 13:49:24 -07:00
Max Brunsfeld 844b8d9e1e Remove unnescessary double lookup in repo for (#2492)
Release Notes:

* Optimize repository queries (preview only)
2023-05-19 11:47:05 -07:00
Mikayla Maki 9f157bdb67 Remove unescessary methods 2023-05-19 11:30:10 -07:00
Max BrunsfeldandMikayla 729a93db6b Optimize retrieving repos for entries when rendering the project panel
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-05-19 11:29:02 -07:00
Mikayla Maki 6792788216 Remove unnescessary double lookup 2023-05-19 11:08:58 -07:00
Kirill Bulatov 3984cc6d39 Properly handle WorktreeId 2023-05-19 12:37:36 +03:00
Kirill BulatovandMax 201d513c50 Show navigation history in the file finder modal
co-authored-by: Max <max@zed.dev>
2023-05-18 21:50:38 +03:00
JuliaandAntonio Scandurra 8b63caa0bd Fix worktree refresh request causing gitignore to not update
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2023-05-16 13:01:29 -04:00
JuliaandAntonio Scandurra f50240181a Avoid removing fake fs entry when rename fails later in the process
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2023-05-16 13:00:39 -04:00
Mikayla Maki e4d509adf4 fmt 2023-05-15 16:22:52 -07:00
Mikayla Makiandmax 4d40aa5d6f Restore trickle up git status to folder
co-authored-by: max <max@zed.dev>
2023-05-15 16:22:00 -07:00
Mikayla Makiandmax 68078853b7 Made status tracking resilient to folder renames
co-authored-by: max <max@zed.dev>
2023-05-15 16:21:58 -07:00
Mikayla Maki 307dd2b83e Update proto names to reflect new status info 2023-05-15 16:20:01 -07:00
Mikayla Maki 6c26f3d0e4 Fixed formatting 2023-05-15 16:20:01 -07:00
Mikayla Maki 2b18975cdc Change folder styling from a reduce over all child files to a simple 'always modified'
Remove git status from tab titles
2023-05-15 16:20:01 -07:00
Julia cf53b2ca87 Merge pull request #2471 from zed-industries/optimize-update-local-worktree-buffers
Optimize update local worktree buffers
2023-05-15 13:13:09 -04:00
Julia fa32adecd5 Fixup more, tests finally pass 2023-05-14 12:06:00 -04:00
Mikayla Maki a6a4b846bc fmt 2023-05-13 10:43:16 -07:00
Mikayla Maki 5e2aaf45a0 Fix repository initialization bug 2023-05-13 10:38:24 -07:00
Mikayla Maki 04041af78b Fixed bug with failing to clear git file status 2023-05-13 02:40:22 -07:00
Mikayla Maki 62c445da57 Match priority of folder highlights to vscode 2023-05-13 02:30:59 -07:00
Mikayla MakiandNathan 6ef0f70528 Made the map seek target a publicly implementable interface
Integrated remove_range with the existing git code

co-authored-by: Nathan <nathan@zed.dev>
2023-05-12 08:37:32 -07:00
Nathan Sobo ee3637216e Add TreeMap::remove_between that can take abstract start and end points
This commit introduces a new adaptor trait for SeekTarget that works around
frustrating issues with lifetimes. It wraps the arguments in a newtype wrapper
that lives on the stack to avoid the lifetime getting extended to the caller
of the method.

This allows us to introduce a PathSuccessor object that can be passed as the
end argument of remove_between to remove a whole subtree.
2023-05-12 08:21:01 -07:00
Mikayla Maki 5fe8b73f04 compile error 😅 2023-05-11 16:07:41 -07:00
Mikayla MakiandNathan d538994c7f Use more efficient sum tree traversals for removal and improve ergonomics with iter_from
co-authored-by: Nathan <nathan@zed.dev>
2023-05-11 16:06:25 -07:00
Mikayla Maki 72655fc41d fmt 2023-05-11 13:25:57 -07:00
Mikayla Maki 6f87f9c51f Don't scan for statuses in files that are ignored 2023-05-11 13:25:07 -07:00
Mikayla Maki 5b2ee63f80 Added status trickle up 2023-05-11 12:01:42 -07:00
Julia 0f34af50a8 Use path list generated during entry reload of a refresh request 2023-05-10 23:37:02 -04:00
Mikayla Maki 9800a149a6 Remove some external context from git status test 2023-05-10 17:59:33 -07:00
Mikayla Maki e20eaca595 Got basic replication working :) 2023-05-10 17:37:36 -07:00