Commit log

67b49ec zed 0.152.3

Peter Tripp created

85a6dde Ubuntu 22 (Linux arm runner) fixes (#17643)

Click to expand commit body
Our GitHub Actions Linux ARM hosted runner was running Ubuntu 20 was EOL'd.

This gets builds working on the Ubuntu 22 Linux ARM runner which have spun to replace the EOL'd one. It pushes forward our Glibc requirement for Linux ARM users (was >= 2.29, now >= 2.35; sorry!) but also uses a newer version of clang/llvm (was 10, now 15; yay!).

Peter Tripp created

1705af1 zed 0.152.2

Peter Tripp created

08d8ab1 blade: Update to e142a3a to fix crash (#17510)

Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/17005

Like https://github.com/zed-industries/zed/pull/17319, but based on
https://github.com/kvark/blade/pull/144.

This should be cherry-picked into preview if possible 🙂 

Release Notes:

- Linux: Fixed crash when closing windows on Wayland.

apricotbucket28 created

9981f36 zed 0.152.1

Peter Tripp created

1ff6ef3 Revert FPS counter (#17485)

Click to expand commit body
**UPDATE**: Response so far seems to be that this fixes the performance
issues on Intel MacBooks. So we're going to go ahead and merge it.

This reverts the FPS counter added in 11753914d (#16422) because in this
issue someone bisected recent performance regressions down to this
commit:

- https://github.com/zed-industries/zed/issues/16729

Another issue that's possibly related:

-
https://github.com/zed-industries/zed/issues/17305#issuecomment-2332316242

We're reverting this in a PR to create a bundle that people can try out.

Assets:

- Universal Binary:
https://github.com/zed-industries/zed/actions/runs/10735702994/artifacts/1900460781
- x86/Intel:
https://github.com/zed-industries/zed/actions/runs/10735702994/artifacts/1900461236
- Apple Silicon:
https://github.com/zed-industries/zed/actions/runs/10735702994/artifacts/1900460978


Release Notes:

- Removed the recently-added FPS counter since the changes it made to
the Metal renderer on macOS could lead to performance regressions on
Intel MacBooks.

Co-authored-by: Bennet <bennet@zed.dev>

Thorsten Ball and Bennet created

c304bf9 Fix `Workspace` references being leaked (#17497)

Click to expand commit body
We noticed that the `Workspace` was never released (along with the
`Project` and everything that comes along with that) when closing a
window.

After playing around with the LeakDetector and debugging with
`cx.on_release()` callbacks, we found two culprits: the inline assistant
and the outline panel.

Both held strong references to `View<Workspace>` after PR #16589 and PR
#16845.

This PR changes both references to `WeakView<Workspace>` which fixes the
leak but keeps the behaviour the same.

Release Notes:

- N/A

Co-authored-by: Bennet <bennet@zed.dev>

Thorsten Ball and Bennet created

ac93366 v0.152.x preview

Joseph T Lyons created

bde1c95 svelte: Update Tree-sitter grammar (#17323)

Click to expand commit body
Before:
![Screenshot from 2024-09-03
20-36-48](https://github.com/user-attachments/assets/c4eca8c9-977b-461c-bb0a-77c0d94554b8)

After:
![Screenshot from 2024-09-03
20-43-44](https://github.com/user-attachments/assets/d9b9653c-29c0-4273-85ee-040fb51af07c)

Release Notes:

- N/A

---------

Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>

Mathias and Marshall Bowers created

a092ff0 gpui: Add `opacity` to support transparency of the entire element (#17132)

Click to expand commit body
Release Notes:

- N/A

---

Add this for let GPUI element to support fade in-out animation.

## Platform test

- [x] macOS
- [x] blade `cargo run -p gpui --example opacity --features macos-blade`

## Usage

```rs
div()
    .opacity(0.5)
    .bg(gpui::black())
    .text_color(gpui::black())
    .child("Hello world")
```

This will apply the `opacity` it self and all children to use `opacity`
value to render colors.

## Example

```
cargo run -p gpui --example opacity
cargo run -p gpui --example opacity --features macos-blade
```

<img width="612" alt="image"
src="https://github.com/user-attachments/assets/f1da87ed-31f5-4b55-a023-39e8ee1ba349">

Jason Lee created

072513f outline_panel: Fix `j` and `k` not working in outline panel filter (#17293)

Click to expand commit body
Closes #17248

Release Notes:

- Fixed outline panel filter not working for certain Vim bindings
([#17248](https://github.com/zed-industries/zed/issues/17248))

CharlesChen0823 created

5b0d648 assistant: Allow accepting terminal inline assist suggestion without executing command (#17299)

Click to expand commit body
This adds a new button that on click, accepts the suggestion but does
not run the generated command.


https://github.com/user-attachments/assets/426b0ff3-8e19-435a-aa7f-89e062aefd4c

@danilo-leal @iamnbutler Any ideas on how to make both options
discoverable without having an extra button?

Release Notes:

- Added a way to accept terminal inline assist suggestions without
executing them

---------

Co-authored-by: Danilo Leal <67129314+danilo-leal@users.noreply.github.com>

Bennet Bo Fenner and Danilo Leal created

3bdc35f Update typescript docs (#17321)

Click to expand commit body
Release Notes:

- N/A

---------

Co-authored-by: Richard <richard@zed.dev>
Co-authored-by: Thorsten Ball <mrnugget@gmail.com>

Conrad Irwin , Richard , and Thorsten Ball created

be21169 vtsls: Enable Inlay Hints by default for JavaScript #17232 (#17334)

Click to expand commit body
Closes #17232

Release Notes:

- Fixed inlay hints not being enabled for JavaScript when using the
`vtsls` language server. (They were enabled by default for TypeScript)

Mathias created

3cffcac cpp: Add concepts to outline (#17329)

Click to expand commit body
Release Notes:

- N/A

![concepts](https://github.com/user-attachments/assets/d21de27c-09e9-48bb-9af5-88ea0b73d3db)

Fernando Tagawa created

e81b484 assistant: Add tool registry (#17331)

Click to expand commit body
This PR adds a tool registry to hold tools that can be called by the
Assistant.

Currently we just have a `now` tool for retrieving the current datetime.

This is all behind the `assistant-tool-use` feature flag which currently
needs to be explicitly opted-in to in order for the LLM to see the
tools.

Release Notes:

- N/A

Marshall Bowers created

c2448e1 assistant: Insert creases for tool uses (#17330)

Click to expand commit body
This PR makes it so we create creases for each of the tool uses in the
context editor.

<img width="1290" alt="Screenshot 2024-09-03 at 5 37 33 PM"
src="https://github.com/user-attachments/assets/94e943fd-3f05-4bc4-9672-94bff42ec500">

Release Notes:

- N/A

Marshall Bowers created

be65737 Make LspStore more responsible (#17318)

Click to expand commit body
It now handles more of the buffer language work that project used to
have to.

Release Notes:

- N/A

Conrad Irwin created

452272e assistant: Stream tool uses as structured data (#17322)

Click to expand commit body
This PR adjusts the approach we use to encoding tool uses in the
completion response to use a structured format rather than simply
injecting it into the response stream as text.

In #17170 we would encode the tool uses as XML and insert them as text.
This would require then re-parsing the tool uses out of the buffer in
order to use them.

The approach taken in this PR is to make `stream_completion` return a
stream of `LanguageModelCompletionEvent`s. Each of these events can be
either text, or a tool use.

A new `stream_completion_text` method has been added to `LanguageModel`
for scenarios where we only care about textual content (currently,
everywhere that isn't the Assistant context editor).

Release Notes:

- N/A

Marshall Bowers created

132e8e8 docs: Fix delayed git inline blame example (#17320)

Click to expand commit body
Fixes docs example. Otherwise the inline git blame is fully disabled
instead of delayed.

Release Notes:

- N/A

Brian J. Cardiff created

5a94e0f zed: Sort dependencies in `Cargo.toml` (#17317)

Click to expand commit body
This PR sorts the dependencies in the `zed` crate's `Cargo.toml`, as
they had gotten unsorted.

Release Notes:

- N/A

Marshall Bowers created

3d83903 gpui: Update "Getting Started" to include macOS setup (#17316)

Click to expand commit body
This PR updates the GPUI docs to mention how to install XCode for Metal
support.

Supersedes https://github.com/zed-industries/zed/pull/16820.

Release Notes:

- N/A

Marshall Bowers created

2730d08 docs: Fix shell setting doc (#17208)

Click to expand commit body
Release Notes:

- N/A


https://github.com/zed-industries/zed/blob/03fd5c90d8901f91e03578ac46a169ef8d997f70/crates/project/src/project.rs#L5210


https://github.com/zed-industries/zed/blob/03fd5c90d8901f91e03578ac46a169ef8d997f70/crates/task/src/lib.rs#L266

Jason Lee created

12341e5 gpui: Add `svg` example (#17315)

Click to expand commit body
This PR adds an example for working with SVGs.

Release Notes:

- N/A

Marshall Bowers created

30cfff0 Document PRIME config setting on linux (#17311)

Click to expand commit body
Release Notes:

- N/A

Conrad Irwin created

3005625 collab: Add `GET /models` endpoint to LLM service (#17307)

Click to expand commit body
This PR adds a `GET /models` endpoint to the LLM service.

This endpoint returns the models that the authenticated user has access
to.

This is the first step towards populating the models for the hosted
service from the server.

Release Notes:

- N/A

Marshall Bowers created

122f01f Update Rust crate async-tar to 0.5.0 (#17304)

Click to expand commit body
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [async-tar](https://redirect.github.com/dignifiedquire/async-tar) |
workspace.dependencies | minor | `0.4.2` -> `0.5.0` |

---

### Release Notes

<details>
<summary>dignifiedquire/async-tar (async-tar)</summary>

###
[`v0.5.0`](https://redirect.github.com/dignifiedquire/async-tar/compare/v0.4.2...v0.5.0)

[Compare
Source](https://redirect.github.com/dignifiedquire/async-tar/compare/v0.4.2...v0.5.0)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 3pm on Wednesday" in timezone
America/New_York, Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

Release Notes:

- N/A

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC41OS4yIiwidXBkYXRlZEluVmVyIjoiMzguNTkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

renovate[bot] and renovate[bot] created

02e9682 extension: Delete working directory on uninstall (#17127)

Click to expand commit body
Closes #17126 

Release Notes:

- N/A

bestgopher created

32db140 assistant: Fix inline assist not restarting transformation after pressing retry (#17301)

Click to expand commit body
Release Notes:

- Fixed an issue where the inline assist would be dismissed even when
instructed to regenerate the transformation after an error

Bennet Bo Fenner created

64a8b14 assistant: Use code label for tab slash command completions (#17296)

Click to expand commit body
This adopts the same approach we use for the `/file` command, which has
the benefit that, even if the path is long, the filename is always
visible.

| Before | After |
|--------|-------|
| <img width="564" alt="image"
src="https://github.com/user-attachments/assets/a43574af-e4c1-4f11-be70-49d6020557c4">
| <img width="567" alt="image"
src="https://github.com/user-attachments/assets/4db383b9-5039-4f35-b821-e1cc1a4ea7e8">
|


Release Notes:

- Improved UX of tab slash command completions

Bennet Bo Fenner created

b41ddbd Have models indicate code locations in workflows using textual search, not symbol names (#17282)

Click to expand commit body
Release Notes:

- N/A

---------

Co-authored-by: Antonio Scandurra <me@as-cii.com>

Max Brunsfeld and Antonio Scandurra created

c63c201 Revert accidental one theme changes (#17273)

Click to expand commit body
Co-authored-by: Peter Tripp <peter@zed.dev>

Kyle Kelley and Peter Tripp created

7844b9f php: Add more keywords (#17243)

Click to expand commit body
This list should now be complete according to the official list at
https://www.php.net/manual/en/reserved.keywords.php

Patka created

6b8bdcf Add jsonschema link to bundled themes (#17253)

Peter Tripp created

b6cf576 project panel: Always show paste in context menu (and grey it out when it's disabled) (#17262)

Click to expand commit body
![image](https://github.com/user-attachments/assets/df471567-bdb9-494b-96a5-84d1da47583f)

Release Notes:

- "Paste" is now always shown in project panel context menu.

Piotr Osiewicz created

b578be5 assistant: Fix `"New Context"` behavior when focused in editor (#17106)

Click to expand commit body
Closes #16676

Release Notes:

- assistant: fix `New Context` opening a new file when focused in the
editor pane.

Rami Pellumbi created

1c6dbe0 editor: Do not lay out task indicators outside of the viewport (#17250)

Click to expand commit body
A friend of mine shared a Rust file with me that crashed Zed
consistently due to Arena space exhaustion. It is a dump of a proc macro
output that generates tests (among other things).
TL;DR: we were always laying out all run indicators, irrespective of
current scroll position. In his case, we were redundantly rendering
about 3k elements.
Obviously, this doesn't just fix the problems with Arena space
exhaustion - it should also improve perf in files with many runnables.

Release Notes:

- Improved editor performance in presence of many runnable indicators in
the gutter.

Piotr Osiewicz created

d682594 Improve outline panel performance (#17183)

Click to expand commit body
Part of https://github.com/zed-industries/zed/issues/14235

* moved search results highlight calculation into the background thread,
with highlight-less representation as a fallback
* show only a part of the line per search result, stop uniting them into
a single line if possible, always trim left trailing whitespaces
* highlight results in batches
* better cache all search result data, related to rendering
* add test infra and fix folding-related issues
* improve entry displays when multi buffer has a buffer search (find
references one has)
* fix cloud notes not showing search matches

Release Notes:

- Improved outline panel performance

Kirill Bulatov created

1694261 examples: Update slash-commands-example readme (#17204)

Click to expand commit body
Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>

Peter Tripp and Marshall Bowers created

b8e6098 Consolidate logic for protobuf message handling between ssh and web socket clients (#17185)

Click to expand commit body
This is a refactor to prepare for adding LSP support in SSH remote
projects.

Release Notes:

- N/A

---------

Co-authored-by: Mikayla <mikayla@zed.dev>
Co-authored-by: Conrad <conrad@zed.dev>

Max Brunsfeld , Mikayla , and Conrad created

144793b legal: Correct privacy policy (#17238)

Click to expand commit body
- Correct Privacy policy to state `"Zed does not store or train on your requests without consent."`

Peter Tripp created

54ac963 client: Ensure query string values are URL-encoded (#17235)

Click to expand commit body
This PR fixes an issue where the query string values weren't URL-encoded
when authenticating as an admin in development.

Release Notes:

- N/A

Marshall Bowers created

b386b6c Allow Zed to run under multiple user accounts simultaneously (#14143)

Click to expand commit body
Closes #4607

This is an attempt to enable Zed to run under multiple user accounts on
the same Mac, because it's a blocker to me really giving Zed a fair shot
at being my primary editor.

According to some helpful info from @ForLoveOfCats in #4607 the main
reason why this doesn't work is because Zed is using a Unix socket or
maybe a TCP socket with a hard-coded path and/or port. To me it looks
like it's a TCP socket so I tried changing that code in here, but I'm
stuck at trying to test it out because running `target/debug/zed` or
`target/release/zed` seems to behave differently than running an actual
app bundle. I had no luck copying the binary over to
/Applications/Zed.app/Contents/MacOS/zed because it can't find
WebRTC.framework which resides at a different relative path in the app
bundle.

If this seems like a desirable change to the core team then I'm looking
for some guidance on how to build an app bundle or otherwise test out
this change, or a nudge in the correct direction if I'm way off base
with my current approach.

Release Notes:

- Added multiuser support for up to 100 users on the same machine.

---------

Co-authored-by: Mikayla <mikayla@zed.dev>

Sami Samhuri and Mikayla created

8376395 rust: Improve syntax highlighting of methods in completions menu (#17184)

Click to expand commit body
What do all of the syntax-highlighted methods have in common in this
screenshot?
<img width="597" alt="image"
src="https://github.com/user-attachments/assets/7e3cced5-1857-44ca-8000-d2aa3c485726">
They're all trait methods. This is an unfortunate byproduct of how we
parse function signatures and handle details of completions. Other
non-syntax highlighted entries could get the highlighting for free, if
not for the fact that they lack a bit of data that is available for
trait methods.

This PR fixes this problem.
<img width="597" alt="image"
src="https://github.com/user-attachments/assets/065dc929-be00-46fc-a7c3-e63ed7ad6a0a">

Release Notes:

- Improved syntax highlighting of Rust methods in completions menu

Piotr Osiewicz created

6a9820e scripts: Fix bundle-linux when RUSTFLAGS is unset (#17218)

Click to expand commit body
The install-linux script fails to build when the RUSTFLAGS environment
variable is not set. Bash attempts to expand an empty variable and fails
due to the prior set -u

Closes #17217

Release Notes:
- N/A

it-a-me created

c9b4c8c Let script/bundle-linux preserve RUSTFLAGS (#17202)

Click to expand commit body
Example usage:

    RUSTFLAGS="--cfg gles" ./script/install-linux

Release Notes:
- N/A

Niklas Fiekas created

03d8e54 Revert "lsp: Watch paths outside of worktrees at language servers request (#17173) (#17206)

Click to expand commit body
This PR reverts #17173, as it introduced a segfault when opening any
Gleam project and the language server starts up.

This reverts commit a850731b0ed61b0ef2a0173843b6daedf45327e8.

Release Notes:

- N/A

Marshall Bowers created

a850731 lsp: Watch paths outside of worktrees at language servers request (#17173)

Click to expand commit body
Context: https://x.com/fasterthanlime/status/1819120238228570598

Up to this PR:
- We were not watching paths outside of a worktree when language server
requested it.
- We expected GlobPattern used for file watching to be always rooted at
the worktree root.

'1 mattered for observing global files (e.g. global RA config) and both
points had impact on "monorepos".
Let's picture the following scenario:
You're working on a Rust project that has two crates: bin and lib crate:
```
my-rust-project/
  bin-crate/
  lib-crate/
```
Up to this PR, making changes like changing field visibility in
lib-crate **was not reflected** in bin-crate until RA was restarted. RA
for bin-crate asked us to watch lib-crate. Now, depending on if you had
this project open as:
- a project with one worktree rooted at my-rust-project:
- due to '2, we never noticed that we have to notify RA instance for
bin-crate about changes in lib-crate.
- a project with two worktrees (bin-crate and lib-crate):
- due to '1 (as lib-crate is not within bin-crate's worktree), we once
again missed the fact that we have to watch for changes in lib-crate.

This PR solves this by introducing a side-channel - we just store fs
watchers for abs paths at the Project level. Worktree changes handling
is left relatively untouched - as it's used for other changes besides
LSP change notifying, I've figured to better leave it as is, as right
now we have 1 worktree change watcher; if we were to change it, we'd
have `(language server) + 1` watchers per worktree, which seems.. pretty
horrid.

What's the end effect? At the very least fasterthanlime should be a tad
happier; in reality though, I expect it to have some impact on LS
reliability in monorepo setups.

TODO
- [x] Wire through FileChangeType into `fs::watch` interface.

Release Notes:

- Improved language server reliability in multi-worktree projects and
monorepo. We now notify the language server more reliably about which
files have changed.

Piotr Osiewicz created

d2cb45e Revert "Make selection more consistent across languages (#17084)" (#17175)

Click to expand commit body
This reverts commit 7db8d80c3090f70b466284e70e9635b0e63528c9.(#17084)

Release Notes:

- N/A

Conrad Irwin created

75d4c79 Extract an LspStore object from Project, to prepare for language support over SSH (#17041)

Click to expand commit body
For ssh remoting lsps we'll need to have language server support
factored out of project.

Thus that begins

Release Notes:

- N/A

---------

Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Co-authored-by: Mikayla <mikayla@zed.dev>

Conrad Irwin , Max Brunsfeld , and Mikayla created