Commit log

69fb9b9 assistant: Adjust terms of service notice (#16235)

Click to expand commit body
Co-Authored-by: Max <max@zed.dev>
Co-Authored-by: Marshall <marshall@zed.dev>
Co-Authored-by: Peter <peter@zed.dev>

<img width="396" alt="image"
src="https://github.com/user-attachments/assets/62282506-c74a-455e-ae4d-0438d47fed96">

Release Notes:

- N/A

Co-authored-by: Max <max@zed.dev>
Co-authored-by: Marshall <marshall@zed.dev>
Co-authored-by: Peter <peter@zed.dev>

Bennet Bo Fenner , Max , Marshall , and Peter created

7f82db5 v0.149.x preview

Joseph T Lyons created

8ad7d69 indexed_docs: Normalize `-` in crate names to `_` when computing rustdoc output path (#16234)

Click to expand commit body
This PR fixes an issue where crate names that included `-`s would not
work properly when indexing them with rustdoc, due to the output
directories using `_` instead of `-`.

Release Notes:

- N/A

Marshall Bowers created

8df21f7 Fix slash command argument completion bugs (#16233)

Click to expand commit body
Release Notes:

- N/A

---------

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

Kirill Bulatov and Mikayla Maki created

6365000 gleam: Clean up slash commands in preparation for release (#16232)

Click to expand commit body
This PR cleans up the slash command functionality in preparation for an
upcoming release:

- Removed arguments to `/gleam-project` that were just used as an
example
- Removed `/gleam-docs` in favor of `/docs` with the `gleam-hexdocs`
provider
- Pulled a list of all Gleam packages to use as suggestions

Release Notes:

- N/A

Marshall Bowers created

6713e40 Revert "Simplify inline assist to avoid spurious xml in completions (… (#16231)

Click to expand commit body
…#16184)"

This reverts commit c3edbd7d9a3d26e7ad0607b1c45cf1e621623421, which
caused a regression that leaked chatter into inline assist replacements
and <rewrite_this> tags into insertions.

Release Notes:

- N/A

jvmncs created

793a90c assistant: Improve terminal slash command (#16229)

Click to expand commit body
- Fix terminal slash command not working when terminal tab was placed in
center workspace
- Removed `--line-count` argument, you can now just pass a number to the
slash command
e.g. `/terminal 10` will show the last 10 lines of the active terminal
- Increase default context lines to 50
- We will revisit this once we add support for only including the last n
amount of commands that were run

Release Notes:

- N/A

Bennet Bo Fenner created

340a1d1 haskell: Bump to v0.1.1 (#16228)

Click to expand commit body
This PR bumps the Haskell extension to v0.1.1.

Changes:

- https://github.com/zed-industries/zed/pull/13268
- https://github.com/zed-industries/zed/pull/15998

Release Notes:

- N/A

Marshall Bowers created

caf222a assistant: Show errors without mouse interaction (#16226)

Click to expand commit body
https://github.com/user-attachments/assets/a8e5e0ce-349d-4836-afe6-fc960a307c9f


Release Notes:

- N/A

---------

Co-authored-by: Thorsten <thorsten@zed.dev>
Co-authored-by: Danilo <danilo@zed.dev>

Bennet Bo Fenner , Thorsten , and Danilo created

f5532af erlang: Update tree-sitter grammar and query files (#15973)

Click to expand commit body
Hi, I bump the tree-sitter-erlang to a newest version and sync the
hightlight query to fix long standing issue in the Zed erlang extension
about incorrect function highlighting, not support the triple quote
string and many more.

Release Notes:

- N/A

Signed-off-by: Thanabodee Charoenpiriyakij <wingyminus@gmail.com>

Thanabodee Charoenpiriyakij created

8d9dcf1 Stop automatically running /file command afer file suggestions (#16222)

Click to expand commit body
https://github.com/user-attachments/assets/c5723950-7628-4073-bf03-f0a7473e984e

Release Notes:

- N/A

Kirill Bulatov created

aa31f9d Fix diagnostic popups not having a max width (#16092)

Click to expand commit body
They were probably broken by #14518 

Release Notes:

- N/A

Stanislav Alekseev created

f8a72b5 assistant: Run `/docs` when completing a suggested (unindexed) package (#16218)

Click to expand commit body
This PR is a follow-up to
https://github.com/zed-industries/zed/pull/16216, as we want to run the
`/docs` command when completing a suggested package that has yet to be
indexed.

Release Notes:

- N/A

Marshall Bowers created

8fe2de1 Further improve /tabs command and slash arguments completion (#16216)

Click to expand commit body
* renames `/tabs` to `/tab`
* allows to insert multiple tabs when fuzzy matching by the names
* improve slash command completion API, introduce a notion of multiple
arguments
* properly fire off commands on arguments' completions with
`run_command: true`

Release Notes:

- N/A

---------

Co-authored-by: Marshall Bowers <marshall@zed.dev>

Kirill Bulatov and Marshall Bowers created

88a12b6 windows: Fix supermaven (#16203)

Click to expand commit body
Closes #16194

This PR introduces the following changes:

1. Updated the download process to retrieve the `.exe` file, as the API
response indicates that the `.exe` file should be downloaded on Windows.
> API response:
"https://supermaven-public.s3.amazonaws.com/sm-agent/26/windows/amd64/sm-agent.exe"
2. Modified the startup behavior of supermaven to prevent the cmd window
from appearing.

Release Notes:

- N/A

张小白 created

0eb96c7 context inspector: Log when no suggestions (#16208)

Click to expand commit body
Release Notes:

- N/A

Thorsten Ball created

5556383 assistant: Adjust slash command popover padding (#16181)

Click to expand commit body
I've looked for other instances of the popover component where this change could cause a spacing regression but couldn't find any yet. Let me know if you do! Intuitively, I wouldn't change this padding directly on the component container, but I didn't find any other way to tackle it.

Release Notes:

- N/A

Danilo Leal created

e28681c outline: Match on full item path in `Outline::find_most_similar` (#16206)

Click to expand commit body
Previously, we were only looking at a simple syntax node name at a time
and not the full path to an item. E.g. in a rust-toolchain.toml file:
```rs
[toolchain]
targets = [ "x86_64-apple-darwin", "aarch64-apple-darwin", "x86_64-unknown-linux-gnu", "wasm32-wasi" ]
```
When matching against a query "toolchain targets" from the Assistant,
we'd try to match it against "toolchain" and "targets" and not against
"toolchain targets" - we only look at the name of the innermost node and
not it's full path.
I'd expect it to significantly improve precision of outline item
matching.

Release Notes:

- N/A

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

Piotr Osiewicz and Bennet Bo created

b7dcd4e assistant panel: Fix pending completions not being cleaned up (#16201)

Click to expand commit body
Turns out that you could always cancel a completion, even if it was
already done and completed, because it was never cleaned up.

Release Notes:

- N/A

Thorsten Ball created

8b8335f assistant panel: Stop animation & show explicit state if canceled (#16200)

Click to expand commit body
This fixes a bug by stopping the animation when a completion is canceled
and it also makes the state more explicit, which I think is very
valuable.



https://github.com/user-attachments/assets/9ede9b25-86ac-4901-8434-7407896bb799


Release Notes:

- N/A

Thorsten Ball created

97469cd Improve slash commands (#16195)

Click to expand commit body
This PR:

- Makes slash commands easier to compose by adding a concept,
`CompletionIntent`. When using `tab` on a completion in the assistant
panel, that completion item will be expanded but the associated command
will not be run. Using `enter` will still either run the completion item
or continue command composition as before.
- Fixes a bug where running `/diagnostics` on a project with no
diagnostics will delete the entire command, rather than rendering an
empty header.
- Improves the autocomplete rendering for files, showing when
directories are selected and re-arranging the results to have the file
name or trailing directory show first.

<img width="642" alt="Screenshot 2024-08-13 at 8 12 43 PM"
src="https://github.com/user-attachments/assets/97c96cd2-741f-4f15-ad03-7cf78129a71c">


Release Notes:

- N/A

Mikayla Maki created

5cb4de4 Fix regression: Restore creation of multiple assist editors on `ctrl-enter` when selections span across multiple excerpts (#16190)

Click to expand commit body
Release Notes:

- N/A

Nathan Sobo created

4762851 assistant: Put `/docs` and `/project` behind a setting (#16186)

Click to expand commit body
This PR puts the availability of the `/docs` and `/project` slash
commands behind their respective settings.

Release Notes:

- N/A

Marshall Bowers created

c3edbd7 Simplify inline assist to avoid spurious xml in completions (#16184)

Click to expand commit body
Some prompt changes to highlight:
- Removes `<rewrite_section>` rendering, preferring to just show
`<rewrite_section_with_selections>`
- Concise, terse instructions throughout

I'd like to have experimented with prefilling the assistant response,
but I don't think OpenAI allows for that and wouldn't want to break
compatibility with gpt-4 et al.

Release Notes:

- N/A

jvmncs created

aa12ae0 Allow extensions to suggest packages for `/docs` completions (#16185)

Click to expand commit body
This PR gives extensions the ability to suggest packages to show up in
`/docs` completions by default.

Release Notes:

- N/A

Marshall Bowers created

c6a1d9a assistant: Polish terms of service toast design (#16183)

Click to expand commit body
Pushing in tiny design tweaks and wording change on the button so it's a bit more explicit.

Release Notes:

- N/A

Danilo Leal created

07c21bb assistant: Change the quote selection crease icon (#16180)

Click to expand commit body
Felt like this icon was more fitting to the idea of selected text, and looked less like a document.

Release Notes:

- N/A

Danilo Leal created

2f5031b Adjust pulsating animation ranges (#16179)

Click to expand commit body
Just a fine-grain refinement to the pulsating animation range.

Release Notes:

- N/A

Danilo Leal created

170ad46 assistant: Add gap to the context toolbar (#16178)

Click to expand commit body
Not the ideal solution yet, but just a small treatment so these two blocks don't collide.

Release Notes:

- N/A

Danilo Leal created

a81e355 Promote package suggestions to a first-class concept on `IndexedDocsProvider`s (#16177)

Click to expand commit body
This PR promotes package suggestions to a first-class concept on the
`IndexedDocsProvider` trait.

This will allow any implementer of `IndexedDocsProvider` to provide a
list of package names to suggest for use with `/docs`.

For the docs.rs provider we use the 250 most popular Rust crates (as
identified [here](https://lib.rs/std)), and for the rustdoc provider we
use the packages in the Cargo workspace.

Release Notes:

- N/A

Marshall Bowers created

bd71e91 Match VSCode behavior for ctrl-a/ctrl-e on MacOS (#15981)

Click to expand commit body
- Make `ctrl-a` and `ctrl-e` ignore soft_wraps on MacOS, matching the behavior of VSCode.
- Unchanged: `home`, `end`, `cmd-left`, `cmd-right` respect softwrap (both in Zed and VSCode).

Peter Tripp created

7eeb372 assistant: Fix nested slash command rendering (#16173)

Click to expand commit body
/rant on
We have this issue where if a prompt starts with a slash command (e.g.
/workflow), the rendering is a bit messed up. The nested slash command
gets picked up as the parent of a command that includes it (/prompt).
This is due to how we parse slash commands; their output is obtained
asynchronously. When we run `/prompt "My prompt"` whose contents are
`/workflow`, we first include the prompt content verbatim and then
reparse the whole buffer, picking up /workflow as a new command (as if
it was typed by an user). The problem with that is that the range of
parent /prompt does not include the expanded range of a /workflow; in
fact, after doing full expansion of "My prompt", we lose track of the
parent-children relationship of these two slash commands and treat them
as if top-level user prompt was `/workflow/prompt "My prompt"` and not
`/prompt "My prompt"` (which, by the way, would not be parsable for us).

The "proper" fix would be to update the parent range whenever we parse a
new children within it. We could do that. But then, the question is;
what do we gain from it? Slash command output is put behind a crease,
which is fundamentally a fold. Given "My prompt", we'd have to put two
fold indicators on a single line even if the ranges were set up
correctly. So that merely moves the target elsewhere into yet another
issue. Even if we did solve two-fold problem somehow (by e.g. sorting
same-line folds by the end point), we would still be stuck with
suboptimal render. What do we gain from all that anyways? Proper
handling of a relatively obscure (although - at the same time - quite
common) edge case which may as well be handled by having /prompt insert
a new line if there's a slight chance that the edge case could occur.
And that hacky, "inproper" solution is what this PR does; in fact, it's
not the first time it was done, as /default also has the same issue
which it solves in precisely the same manner.

/rant off

Release Notes:

- N/A

Piotr Osiewicz created

d4761a3 Recognize Cuda files as C++ (#16098)

Click to expand commit body
Signed-off-by: Athish Pranav D <athishanna@gmail.com>

Athish Pranav D created

ac30ed0 assistant: Populate `/docs rustdoc` with workspace crates (#16172)

Click to expand commit body
This PR makes the `/docs` slash command populate the list with all of
the workspace crates when using the local rustdoc provider.

The workspace crates are shown in the search results when a crate is not
already indexed:

<img width="577" alt="Screenshot 2024-08-13 at 2 18 39 PM"
src="https://github.com/user-attachments/assets/39bee576-8e1a-4b21-a9f8-7951ebae4cc3">

These crates are shown with an `(unindexed)` suffix to convey this:

<img width="570" alt="Screenshot 2024-08-13 at 2 18 45 PM"
src="https://github.com/user-attachments/assets/4eeb07f7-378f-44d4-ae11-4ffe45a23964">

Release Notes:

- N/A

Marshall Bowers created

b1a581e Copy/paste images into editors (Mac only) (#15782)

Click to expand commit body
For future reference: WIP branch of copy/pasting a mixture of images and
text: https://github.com/zed-industries/zed/tree/copy-paste-images -
we'll come back to that one after landing this one.

Release Notes:

- You can now paste images into the Assistant Panel to include them as
context. Currently works only on Mac, and with Anthropic models. Future
support is planned for more models, operating systems, and image
clipboard operations.

---------

Co-authored-by: Antonio <antonio@zed.dev>
Co-authored-by: Mikayla <mikayla@zed.dev>
Co-authored-by: Jason <jason@zed.dev>
Co-authored-by: Kyle <kylek@zed.dev>

Richard Feldman , Antonio , Mikayla , Jason , and Kyle created

e3b0de5 assistant: Auto-suggest crates for `/docs` when using the docs.rs provider (#16169)

Click to expand commit body
This PR improves the initial experience of using `/docs docs-rs` with an
empty index.

We now show a brief explainer of what is expected (a crate name) as well
as list some popular Rust crates to try:

<img width="540" alt="Screenshot 2024-08-13 at 12 25 39 PM"
src="https://github.com/user-attachments/assets/942de250-2901-45df-9e3e-52ff3b3fc517">

Release Notes:

- N/A

Marshall Bowers created

03796e7 repl: Don't show cmd window on Windows (#16016)

Click to expand commit body
Closes #15955 .

Release Notes:

- Fixed `cmd` window showing when repl executing
commands([#15955](https://github.com/zed-industries/zed/issues/15955) ).

张小白 created

fa51651 assistant: Fix debug inspector removing workflow step it's applied to (#16166)

Click to expand commit body
Debug inspector broke immediately after merge as #16036 landed in
parallel; one of the changes of that PR is removing any steps whose
content was edited, which is what debug inspector happened to do. The
fix is to make the edit right past the step block.


Release Notes:

- N/A

Piotr Osiewicz created

7aed240 Improve /tabs completion workflow (#16168)

Click to expand commit body
Follow-up of https://github.com/zed-industries/zed/pull/16154

Reworks /tabs arguments to allow:
* current tab by default, if no arguments are present
* fuzzy-matching over paths of the related tabs
* `all` case to insert all tabs at once

Release Notes:

- N/A

Kirill Bulatov created

7b613cb Revert "Remove extra empty space for files when file icons are turned off (#16142) (#16167)

Click to expand commit body
This PR reverts #16142, as it isn't what we want from a design
standpoint.

Having the file names misaligned from the folder names is not the
desired behavior:

<img width="243" alt="Screenshot 2024-08-13 at 11 16 53 AM"
src="https://github.com/user-attachments/assets/12914e89-2641-4932-96c2-00e89e56d6d7">

We can revisit when we have design bandwidth.

This reverts commit ee6a40137f21998a1b82df480c81207ec569fc98.

Release Notes:

- Reverted #16142.
  - @JosephTLyons @notpeter for release notes curation

Marshall Bowers created

8a9c58e zed_extension_api: Add `HttpRequestBuilder` (#16165)

Click to expand commit body
This PR adds an `HttpRequestBuilder` to the extension API to allow for a
more ergonomic way for constructing HTTP requests within extensions.

The HTTP client functionality is now also exposed via the
`zed_extension_api::http_client` module instead of top-level.

Release Notes:

- N/A

Marshall Bowers created

0dbecee assistant: Refine workflow step labels (#16161)

Click to expand commit body
https://github.com/user-attachments/assets/f6325507-091a-482e-ac28-dd09877ebaa2


Release Notes:

- N/A

---------

Co-authored-by: Danilo <daniloleal09@gmail.com>

Piotr Osiewicz and Danilo created

8252949 Fix min and max versions for v0.1.0 of the extension API (#16163)

Click to expand commit body
Missed this in #16158.

Release Notes:

- N/A

Marshall Bowers created

4450ebf Allow extensions to control the redirect policy for the HTTP client (#16162)

Click to expand commit body
This PR extends the extension API with support for controlling the
redirect policy used by the HTTP client.

Release Notes:

- N/A

Marshall Bowers created

98a2ab0 zed_extension_api: Bump to v0.1.0 (#16158)

Click to expand commit body
This PR changes v0.0.7 of the extension API to v0.1.0.

We had a false-start in releasing v0.0.7, which has since been yanked,
so we need a new version number. We'll publish v0.1.0 to crates.io once
the Preview build is out tomorrow.

We're incrementing the minor version so that we have some leeway in
putting out patch releases of the crate within a given extension API
release.

Release Notes:

- N/A

Marshall Bowers created

47eed12 Update zed.desktop.in to include the MimeType for empty files by default (#15623)

Click to expand commit body
Update zed.desktop.in to include the MimeType for empty files.
Seems to be the default for all "text editors" .desktop files.

Release Notes:

- Improved MimeType list in XDG .desktop file

Rudolf Kastl created

cade9fb assistant: Show a better error when `/docs` is used without a package name (#16157)

Click to expand commit body
This PR makes it so that running `/docs` without providing a package
name gives a better error message:

<img width="248" alt="Screenshot 2024-08-13 at 9 24 58 AM"
src="https://github.com/user-attachments/assets/c1cc794e-0fa0-490a-871a-a56702b03d42">

<img width="228" alt="Screenshot 2024-08-13 at 9 25 05 AM"
src="https://github.com/user-attachments/assets/45dca2d7-171f-48f0-a03c-254b552cb50d">

Release Notes:

- N/A

Marshall Bowers created

fe19035 editor: Add revert file action to command palette (#16012)

Click to expand commit body
Release Notes:

- Added an `editor::RevertFile` action

CharlesChen0823 created

ab98f16 Update key-bindings.md (#15994)

Click to expand commit body
Closes https://github.com/zed-industries/zed/pull/15238

Release Notes:

- N/A

fcolecumberri created

ac6bff1 windows: Remove unused dependencies (#15857)

Click to expand commit body
I have removed some unused dependencies, reducing the total number of
packages during the build from 1141 to 1112. This should slightly
decrease the build time.

![Screenshot 2024-08-06
230726](https://github.com/user-attachments/assets/58a49fd4-4a0a-4026-b6b7-79b95529ec74)


Release Notes:

- N/A

张小白 created