Commit Graph
3306 Commits
Author SHA1 Message Date
Max Brunsfeld 59e1c210c6 Emit project event when a language server sends a logMessage notification 2023-06-07 14:46:08 -07:00
Mikayla Maki 35ef109e8d Merge branch 'main' into stream-git-statuses 2023-06-07 14:12:58 -07:00
Mikayla Maki 7b7282fa47 Fix several randomized test failures with the new git status implementation 2023-06-07 14:10:17 -07:00
Max Brunsfeld c861083f13 Highlight hover code blocks as LSP's own language by default
The elixir LSP does not include a language name on its elixir code blocks.
2023-06-07 10:01:19 -07:00
Max Brunsfeld ce7f69513d Handle LSP codeActions capability set to false 2023-06-06 17:13:59 -07:00
Max Brunsfeld 4bfec02d3c Live-reload tree-sitter queries in development 2023-06-06 14:20:21 -07:00
Mikayla Makiandmax 032d8e4aa1 Improve test generation and implement status propogation
co-authored-by: max <max@zed.dev>
2023-06-05 17:30:12 -07:00
Mikayla Maki af3189be5b WIP: Add status bubbling to project panel 2023-06-05 12:53:04 -07:00
Mikayla Maki 619cfe3cec Track git status changes with the changed_paths system 2023-06-05 11:50:23 -07:00
Joseph Lyons 4b5a7ec94a Fix typos 2023-06-02 22:02:19 -04:00
Mikayla Makiandmax 09220ebb02 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 Makiandmax c589b13748 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 Makiandmax 026df41c1a Remove stateful bubbling
co-authored-by: max <max@zed.dev>
2023-06-02 15:07:49 -07:00
Mikayla Makiandmax 16ba8467d8 Abandoning stateful bubbling approach
co-authored-by: max <max@zed.dev>
2023-06-02 14:51:40 -07:00
Mikayla Maki 1e44d43940 WIP: Git statuses 2023-06-01 23:27:49 -07:00
Mikayla Maki 319f9d7377 WIP: Add stateful status bubbling to worktree 2023-06-01 16:51:34 -07:00
Max Brunsfeld ba6cd9a8a4 Add support for folder-specific settings (#2537)
This PR allows you to customize Zed's settings within a particular
folder by creating a `.zed/settings.json` file within that folder.

Todo

* [x] respect folder-specific settings for local projects
* [x] respect folder-specific settings in remote projects
* [x] pass a path when retrieving editor/language settings
* [x] pass a path when retrieving copilot settings
* [ ] update the `Setting` trait to make it clear which types of
settings are locally overridable

Release Notes:

* Added support for folder-specific settings. You can customize Zed's
settings within a particular folder by creating a `.zed` directory and a
`.zed/settings.json` file within that folder.
2023-05-31 16:27:08 -07:00
Max Brunsfeld c338c69da7 Make language_settings take a language, not a language name 2023-05-31 15:10:30 -07:00
Max Brunsfeld 6f55841897 Make language settings accessors take an arc dyn file 2023-05-31 14:57:04 -07:00
Max Brunsfeld 1fbbaa262f Respect project-specific settings for copilot 2023-05-31 14:42:15 -07:00
Mikayla Makiandjulia b2303fb1ea WIP: Move statuses to entries
co-authored-by: julia <julia@zed.dev>
2023-05-31 12:55:31 -07:00
Mikayla MakiandJulia 3df36f560f 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 a2a96774fc Replicate project-specific settings when collaborating 2023-05-30 18:08:03 -07:00
Max Brunsfeld fb4c174fd1 Start work on respecting project-specific settings 2023-05-29 14:25:49 -07:00
Antonio ScandurraandNathan Sobo f028df6108 Make Pane::add_item a proper Pane method
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-05-29 19:16:22 +02:00
Kirill Bulatov 99509fc6ed Update LSP to the newest version 2023-05-28 21:55:08 +03:00
Max Brunsfeld 17ff7eb95f Make worktree UpdatedEntries events fully describe all changes (#2533)
This PR makes the worktree's change events more useful in a few ways:

* The changes are now described by a cheaply clone-able collection, so
that they can be used in background tasks. Right now, I'm using a simple
Arc slice.
* The `UpdatedEntries` event now captures not only changes due to FS
changes, but also newly-loaded paths that are discovered during the
initial scan.
* The `UpdatedGitRepositories` event now includes repositories whose
work-dir changed but git dir didn't change. A boolean flag is included,
to indicate whether the git content changed.
* The `UpdatedEntries` and `UpdatedGitRepositories` events are now
*used* to compute the worktree's `UpdateWorktree` messages, used to sync
changes to guests. This unifies two closely-related code paths, and
makes the host more efficient when collaborating, because the
`UpdateWorktree` message computation used to require walking the entire
`entries` tree on every FS change.
2023-05-26 15:55:14 -07:00
Max Brunsfeld 35e12824f2 Include repositories with workdir changes in worktree UpdatedGitRepsositories event 2023-05-26 15:47:37 -07:00
Max Brunsfeld 208cf495f8 Adjust diagnostic transformation test to not wait for two buffer notifications 2023-05-26 15:47:37 -07:00
Max Brunsfeld c09a51b3b7 Derive worktree update messages from existing change events 2023-05-26 15:47:37 -07:00
Kirill BulatovandMikayla 25ec8a8960 Add a test
co-authored-by: Mikayla <mikayla@zed.dev>
2023-05-27 01:12:22 +03:00
Max Brunsfeld cdd178a149 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 d56b0ae1e5 Make stricter assertions about change events in random worktree test 2023-05-26 09:24:15 -07:00
Max Brunsfeld cd22cdcadc Include paths loaded during initial scan in worktree UpdatedEntries event 2023-05-26 09:24:15 -07:00
Julia a3bc3f85a9 Clean up final remaining code paths calling old diff update method 2023-05-25 14:41:09 -04:00
Julia a1b4c57588 Fix tests 2023-05-25 14:29:28 -04:00
Julia ee718b9a33 Remove concept of git diff refresh from Item trait 2023-05-25 14:29:28 -04:00
JuliaandMax Brunsfeld 7331f2ce3f 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
Max Brunsfeld e507cc509c wip 2023-05-25 14:10:27 -04:00
Kirill BulatovandAntonio Scandurra c125d0d92b Use Transaction instead of ProjectTransaction
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-05-25 16:12:14 +03:00
Kirill Bulatov f5340df2fa Do not send edits over the wire 2023-05-25 12:55:44 +03:00
Kirill Bulatov e1e9ef9ed9 Process remote format typing also 2023-05-25 09:45:50 +03:00
Kirill Bulatov 64af35dd99 Always use server formatting settings 2023-05-25 09:45:50 +03:00
Kirill Bulatov adaae861b6 Use formatting options 2023-05-25 09:45:50 +03:00
Kirill Bulatov 5e4717898a Support remote sessions 2023-05-25 09:45:50 +03:00
Kirill Bulatov 4a0dec610a Send and handle OnTypeFormatting LSP request 2023-05-25 09:45:50 +03:00
Mikayla Maki 029295c13f 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 f267663b57 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 3052891543 Only fire update diff base when the dot repo is scanned 2023-05-22 13:57:07 -07:00
Max Brunsfeld 9dd6826cbc Clear old diagnostics when restarting a language server 2023-05-22 12:53:22 -07:00