Commit log

cf75b09 feat: organize themes by folders with LICENSE

Sergey Onufrienko created

986b02e Update LSP to the newest version (#2535)

Click to expand commit body
Current `lsp-types:0.91.1` crate lacks inlay hints' definitions. Crate's
changelog is not very descriptive, but it appears that `0.92.1` could be
used:
https://github.com/gluon-lang/lsp-types/blob/master/CHANGELOG.md#v0921-2022-03-21
The latest is crate version is `0.94.0` (2023-02-08), the PR updates Zed
to the latest version.


Notable changes:
* workspace symbols may arrive unresolved if the corresponding client
capability is enabled:
https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#partialResults
Zed has this capability disabled, forcing all symbols to arrive
synchronously (?).

Resolve capabilities are important for inlay hints too, but I've not
found any code in Zed for that outside tests, so I'd love to learn more
and implement the resolution for workspace symbols separately.

* since LSP `3.17` (current), watch file changes can use relative glob
patterns:
https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#workspace_didChangeWatchedFiles

That seemed just a straightforward extra `match` to use the same Ruse
`Glob` to handle the relative path one.

Release Notes:

N/A

Kirill Bulatov created

fdad1ad Update LSP to the newest version

Kirill Bulatov created

e453047 Make worktree `UpdatedEntries` events fully describe all changes (#2533)

Click to expand commit body
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.

Max Brunsfeld created

1f42bfc Include repositories with workdir changes in worktree UpdatedGitRepsositories event

Max Brunsfeld created

2db57b5 Adjust diagnostic transformation test to not wait for two buffer notifications

Max Brunsfeld created

02b95ef Derive worktree update messages from existing change events

Max Brunsfeld created

9cfe39f Display external paths in history (#2534)

Click to expand commit body
Fixes
https://linear.app/zed-industries/issue/Z-1793/file-finder-external-recent-paths-are-not-rendered-properly

Long paths get trimmed, but same do many of our other elements, such as
type definitions, so I think it's ok for now:

![image](https://github.com/zed-industries/zed/assets/2690773/b8b6588d-6d6b-42db-9085-c741a40b7adb)

Also, we seem to do a lot of odd diagnostics handling on every external
stdlib file opened:

![image](https://github.com/zed-industries/zed/assets/2690773/cd82c54e-7849-46fe-a01c-79bfc5402b7b)
Other external files also emit similar messages, but not that much.
@\mikayla-maki mentioned, that this was happening before, so can be
fixed separately.
The PR adds path printing to these logs.

Release Notes:

* Fixed external files not being displayed properly in the recently
opened list in the file finder panel

Kirill Bulatov created

5fda9e9 Shorten full paths with ~

Kirill Bulatov created

3a3c1c5 Add a test

Click to expand commit body
co-authored-by: Mikayla <mikayla@zed.dev>

Kirill Bulatov and Mikayla created

6628c4d Store worktree changes in a sorted arc slice, not a HashMap

Click to expand commit body
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.

Max Brunsfeld created

59bfd40 Make stricter assertions about change events in random worktree test

Max Brunsfeld created

f890eef Include paths loaded during initial scan in worktree UpdatedEntries event

Max Brunsfeld created

cf2bbfc Better display labels for external files

Kirill Bulatov created

508533e Track abs paths in history

Kirill Bulatov created

2fdc960 Properly display labels for currently opened external files

Kirill Bulatov created

b75c27d Simplify selected index handling

Kirill Bulatov created

364631a Add absolute paths to historic elements

Kirill Bulatov created

128c198 Fix duplicate item creation in project panel (#2532)

Click to expand commit body
Closes
https://linear.app/zed-industries/issue/Z-1760/creating-a-new-file-with-the-same-name-as-an-existing-file-overwrites

Now every rename/creation editor won't do anything if a duplicate name
is submitted.

Release Notes:

* Fixed a bug when created in project panel items with duplicate names
were overwriting the old files

Kirill Bulatov created

5501dd7 Fix duplicate item creation in project panel

Kirill Bulatov created

7900d2a Multibuffer edit perf (#2531)

Click to expand commit body
This took so much longer than I wanted, so glad to finally be rid of
this

Release Notes:
* Improved performance when editing many git-tracked files in a
multi-buffer at the same time

Julia created

5e39ba5 Clean up final remaining code paths calling old diff update method

Julia created

f40c498 Fix tests

Julia created

8d662ed Remove concept of git diff refresh from `Item` trait

Julia created

cede296 Project level git diff recalc handling

Click to expand commit body
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>

Julia and Max Brunsfeld created

54421b1 wip

Max Brunsfeld created

ae3bdd7 Support OnTypeFormatting LSP request (#2517)

Click to expand commit body
Supports
https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#textDocument_onTypeFormatting

rust-analyzer uses this feature to add matching brackets semantically,
e.g.
before:
![Screenshot 2023-05-23 at 17 46
42](https://github.com/zed-industries/zed/assets/2690773/020e8448-23e6-4a38-8dbb-c9edf18062f7)

after:
![Screenshot 2023-05-23 at 17 46
49](https://github.com/zed-industries/zed/assets/2690773/4d140af3-aca6-451d-ac61-e2a9bb31caea)

`use_on_type_format` settings entry was added, enabled by default, to
disable the new feature.

Release Notes:

* Support `OnTypeFormatting` LSP protocol feature, allowing
rust-analyzer to add matching brackets

Kirill Bulatov created

739d5ca Have proper undo for both client and host

Kirill Bulatov created

24098c5 Prevent bottom dock from becoming too large or too small (#2529)

Click to expand commit body
Fixes
https://linear.app/zed-industries/issue/Z-1834/bottom-dock-can-be-dragged-down-far-enough-such-that-the-tab-bar-is

Release Notes:

- Improved the resize experience for the bottom dock, preventing it from
becoming too large or too small. (preview-only)

Antonio Scandurra created

4185a17 Prevent bottom dock from becoming too large or too small

Antonio Scandurra created

f549ada Restore the ability to search terminals in the terminal panel (#2528)

Click to expand commit body
Fixes
https://linear.app/zed-industries/issue/Z-1812/find-in-terminal-panel-is-broken

![CleanShot 2023-05-25 at 15 18
01@2x](https://github.com/zed-industries/zed/assets/482957/ddb33b61-d253-4de1-961f-14b24aaa3e46)

This also removes navigation controls from the terminal panel, given
that terminals don't make use of that feature anyway. When the toolbar
is empty, we'll avoid showing it altogether.

![CleanShot 2023-05-25 at 15 17
26@2x](https://github.com/zed-industries/zed/assets/482957/52419f2c-bca0-494a-a9b3-88e183b4c12f)


Release Notes:

- Fixed a regression that was preventing the terminal panel from being
searched.

Antonio Scandurra created

aa8c047 Don't show navigation controls for terminal panel

Antonio Scandurra created

e2ff829 Use Transaction instead of ProjectTransaction

Click to expand commit body
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>

Kirill Bulatov and Antonio Scandurra created

414b97a Add search bar to terminal panel

Antonio Scandurra created

dba7ec4 Prevent pane from being erroneously zoomed when toggling the outline pane (#2527)

Click to expand commit body
Fixes
https://linear.app/zed-industries/issue/Z-1818/toggling-the-outline-pane-causes-the-pane-to-zoom

Add release note lines here:

- Fixed a bug that could cause panes to be erroneously zoomed when
toggling modals. (preview-only)

Antonio Scandurra created

c2f3ac2 Prevent zoom from being restored when focusing a modal

Antonio Scandurra created

7e1ea8f Remove stray dbg!

Antonio Scandurra created

aa58d0f Do not send edits over the wire

Kirill Bulatov created

f812151 Add integration tests

Kirill Bulatov created

eca6d2b Process remote format typing also

Kirill Bulatov created

58a56bd Always use server formatting settings

Kirill Bulatov created

d1f4b60 Allow to disable the new feature

Kirill Bulatov created

b9dabb1 Use formatting options

Kirill Bulatov created

3327e8a Support remote sessions

Kirill Bulatov created

f6d7b3d Send and handle OnTypeFormatting LSP request

Kirill Bulatov created

793486b Update Diff Modified Color (#2526)

Click to expand commit body
For some reason the yellow I used for the modified color in light themes
was really light
.
Release Notes:

* Improved the contrast of diff modified color in the editor in light
themes.

Nate Butler created

3f79b0c Don't hardcode dates into script

Joseph Lyons created

cc3186c Add script to print all prs merged between a previous date and now

Joseph Lyons created

0b7d095 Introduce the ability to talk to GPT-4 within buffers on preview and dev (#2524)

Click to expand commit body
This adds basic ability to interact with OpenAI inside a buffer.

Release Notes:

* If`OPENAI_API_KEY` is defined in your environment, you can now run the
`ai: assist` command to pass the text of your current buffer to GPT-4.
If you're editing a file with a `.zmd` extension, you can also invoke
the model with `cmd-enter.` (preview-only)

Nathan Sobo created

37d35db v0.89.x dev

Joseph Lyons created