Closes #24982
Release Notes:
- Fix `GoToDefinitionSplit` action bug where split wouldn't happen if
definition was in the same active editor
---------
Co-authored-by: Dylan <dylwil3@gmail.com>
Closes #16544
Release Notes:
- Added support for AWS Bedrock to the Assistant.
---------
Co-authored-by: Marshall Bowers <git@maxdeviant.com>
Co-authored-by: Anthony <anthony@zed.dev>
Co-authored-by: Anthony Eid <hello@anthonyeid.me>
Shardul Vaidya
,
Marshall Bowers
,
Anthony
, and
Anthony Eid
created
17a483c
Make generate-licenses scripts pass shellcheck (#25516)
Click to expand commit body
Release Notes:
- N/A
Michael Sloan
created
7b277d2
Fix run indicators jumping when buffer content changes. (#25507)
Click to expand commit body
Co-authored-by: Anthony Eid <hello@anthonyeid.me>
Release Notes:
- Fix run indicators jumping when content changes
---------
Co-authored-by: Anthony Eid <hello@anthonyeid.me>
Conrad Irwin
and
Anthony Eid
created
63cfcc2
Fix jumping to multibuffer excerpts from deleted hunks (#25512)
Click to expand commit body
Co-authored-by: Anthony Eid <hello@anthonyeid.me>
Release Notes:
- N/A
Co-authored-by: Anthony Eid <hello@anthonyeid.me>
Conrad Irwin
and
Anthony Eid
created
53a5145
Fix performance of GitPanel::update_visible_entries (#25504)
Click to expand commit body
Co-authored-by: Anthony Eid <hello@anthonyeid.me>
Closes #19022
Release Notes:
- Fixes pessimal performance with the new git panel when a very large
number of files are untracked
Co-authored-by: Anthony Eid <hello@anthonyeid.me>
Conrad Irwin
and
Anthony Eid
created
def342e
Remove dependents of `language_models` (#25511)
Click to expand commit body
This PR removes the dependents of the `language_models` crate.
The following types have been moved from `language_models` to
`language_model` to facilitate this:
- `LlmApiToken`
- `RefreshLlmTokenListener`
- `MaxMonthlySpendReachedError`
- `PaymentRequiredError`
With this change only `zed` now depends on `language_models`.
Release Notes:
- N/A
e5b97a5
Move `report_assistant_event` into `language_model` crate (#25508)
Click to expand commit body
This PR moves the `report_assistant_event` function from the
`language_models` crate to the `language_model` crate.
This allows us to drop some dependencies on `language_models`.
Release Notes:
- N/A
Marshall Bowers
created
e066667
Improve performance of project panel with many git statuses (#25465)
Click to expand commit body
Closes #ISSUE
Release Notes:
- Improved performance of project panel in large git repositories
Should make it less likely that notorization fails when nathan changes
his passwords.
(though probably no less likly to fail beacuse apple forces us to resign
new agreements on the regular)
Release Notes:
- N/A
---------
Co-authored-by: Peter Tripp <peter@zed.dev>
Conrad Irwin
and
Peter Tripp
created
0acd556
language_model: Remove dependencies on individual model provider crates (#25503)
Click to expand commit body
This PR removes the dependencies on the individual model provider crates
from the `language_model` crate.
The various conversion methods for converting a `LanguageModelRequest`
into its provider-specific request type have been inlined into the
various provider modules in the `language_models` crate.
The model providers we provide via Zed's cloud offering get to stay, for
now.
Release Notes:
- N/A
Marshall Bowers
created
2f7a627
edit predictions: Refine leading whitespace behavior (#25491)
Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/25406
### Problem
Users have been confused about requiring `alt-tab` instead of just `tab`
in cases where they don't have a completions menu open (see issue
above). When they insert a newline and are in leading whitespace, they
expect to be able to accept a prediction with just `tab`, but doing so
increasing the indentation instead.
This PR changes the behavior in so a modifier is only required if the
cursor isn't already at the right indentation level based on the
surrounding block. In this case, `tab` would increase the indentation
and the prediction would get interpolated, allowing the user to press
`tab` again to accept it.
We also updated the docs to break down this behavior:
https://github.com/zed-industries/zed/pull/25493
### Before
https://github.com/user-attachments/assets/91fe6193-dddd-43c1-8c26-0f4648bdc3fa
### After
https://github.com/user-attachments/assets/671041bf-bf22-46a3-8466-b19b3e7dd6a0
Release Notes:
- edit predictions: Do not require a modifier key when indentation is
correct according to its surrounding block
Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
Agus Zubiaga
and
Danilo Leal
created
f1e6b14
Git: Add hotkey to open file from changes list (#25500)
cdd07fd
Add `aws_http_client` and `bedrock` crates (#25490)
Click to expand commit body
This PR adds new `aws_http_client` and `bedrock` crates for supporting
AWS Bedrock.
Pulling out of https://github.com/zed-industries/zed/pull/21092 to make
it easier to land.
Release Notes:
- N/A
---------
Co-authored-by: Shardul Vaidya <cam.v737@gmail.com>
Co-authored-by: Anthony Eid <hello@anthonyeid.me>
Marshall Bowers
,
Shardul Vaidya
, and
Anthony Eid
created
8a3fb89
Document why `ForegroundExecutor` is `!Send` (#25492)
This function has grown a lot and it was getting really hard to
navigate. This PR splits it into smaller methods and moves it into
`Editor` with the rest of the edit prediction popovers' code.
I think there are opportunities to consolidate the many popovers we
have, but we'll do that separately.
Release Notes:
- N/A
Agus Zubiaga
created
d869451
emacs: Add support for paragraph navigation (#25284)
Click to expand commit body
- emacs: Added support for `alt-{` and `alt-}` paragraph navigation
Release Notes:
- N/A
---------
Co-authored-by: Michael Sloan <mgsloan@gmail.com>
Mikayla Maki
and
Michael Sloan
created
b1b6401
gpui: Don’t hide `Window` in docs (#25449)
Click to expand commit body
Release Notes:
- N/A
This side effect is only appearing in outside project.
## Before
<img width="414" alt="image"
src="https://github.com/user-attachments/assets/73d215d2-20e4-4337-82f4-74daa88a1bae"
/>
## After
<img width="453" alt="image"
src="https://github.com/user-attachments/assets/030d34d7-c425-44f6-9cc5-0f2f6fd0a1ac"
/>
---------
Co-authored-by: Marshall Bowers <git@maxdeviant.com>
Release Notes:
- N/A
Add a shorter method to apply underline style.
https://tailwindcss.com/docs/text-decoration-line#underling-text
---------
Co-authored-by: Marshall Bowers <git@maxdeviant.com>
Jason Lee
and
Marshall Bowers
created
6516249
Fix conflict state (was broken by merge conflict) (#25354)
Click to expand commit body
Closes #ISSUE
Release Notes:
- N/A
Conrad Irwin
created
fc8218d
project panel: Change marked entries behavior and improve state colors (#25457)
Click to expand commit body
Follow up to @0xtimsb's PR
https://github.com/zed-industries/zed/pull/22658.
- We're now changing the marked entry as we change the active buffer via
the pane tabs. If all tabs are closed, we clear all marked entries, too.
That means: if we have no open buffer, we don't have any highlighted
entry (i.e., background color) in the project panel.
- Also, now only marked entries have a different, more distinct
background color. The `is_active` state doesn't change an item's
background color anymore.
- This improves an edge case where you could have multiple entries
marked—where all of them would have a background color—and upon
unmarking one of them, that entry would continue to have a bg color.
Now, once you click or move your focus to unmark that entry, the bg
color goes away.
We discovered some new problems by doing these changes that we want to
fix:
1. If you open a project without any open buffer, focus on the project
panel, navigate with arrows to a given entry, and hit space, you will
mark and open the file in the buffer. This is all correct. If you then
hit `escape` to clear the marked entries, nothing happens to the open
buffer, and the marked styled in the project panel entry go away. This
is all correct. The wrong behavior happens if you now hit space _again_
on the active entry. That should mark it, and thus change its styles,
but it doesn't happen. You just see it upon moving to a different entry
with arrow up/down.
2. If you mark multiple entries on the project panel and then click on
an open buffer, we still see all the multiple entries marked. This feels
incorrect. We should only allow one marked entry at a time.
These fixes should happen in follow up PRs, though.
Release Notes:
- Improved the scenario where there'd be a project panel entry
highlighted/marked even if there is no open buffer.
---------
Co-authored-by: smit <0xtimsb@gmail.com>
Danilo Leal
and
smit
created
a8d5687
copilot: Support HTTP/HTTPS proxy for Copilot language server (#24364)
Click to expand commit body
Closes #6701 (one of the top ranking issues as of writing)
Adds the ability to specify an HTTP/HTTPS proxy to route Copilot code
completion API requests through. This should fix copilot functionality
in restricted network environments (where such a proxy is required) but
also opens up the ability to point copilot code completion requests at
your own local LLM, using e.g.:
- https://github.com/jjleng/copilot-proxy
- https://github.com/bernardo-bruning/ollama-copilot/tree/master
External MITM-proxy tools permitting, this can serve as a stop-gap to
allow local LLM code completion in Zed until a proper OpenAI-compatible
local code completions provider is implemented. With this in mind, in
this PR I've added separate `settings.json` variables to configure a
proxy server _specific to the code completions provider_ instead of
using the global `proxy` setting, to allow for cases like this where we
_only_ want to proxy e.g. the Copilot requests, but not all outgoing
traffic from the application.
Currently, two new settings are added:
- `inline_completions.copilot.proxy`: Proxy server URL (HTTP and HTTPS
schemes supported)
- `inline_completions.copilot.proxy_no_verify`: Whether to disable
certificate verification through the proxy
Example:
```js
"features": {
"inline_completion_provider": "copilot"
},
"show_completions_on_input": true,
// New:
"inline_completions": {
"copilot": {
"proxy": "http://example.com:15432",
"proxy_no_verify": true
}
}
```
Release Notes:
- Added the ability to specify an HTTP/HTTPS proxy for Copilot.
---------
Co-authored-by: Marshall Bowers <git@maxdeviant.com>
Eli Kaplan
and
Marshall Bowers
created
dd0de3c
Git panel: Fix commit binding tooltip not showing up (#25472)
198c368
Change `@variable` color in Gruvbox themes to be less intense (#25464)
Click to expand commit body
This PR changes the color used for `@variable` syntax highlights in the
Gruvbox themes to be less intense.
We now use the same color as `editor.foreground`.
| Language | Before | After |
| -------- |
-----------------------------------------------------------------------------------------------------------------------------------------------------
|
-----------------------------------------------------------------------------------------------------------------------------------------------------
|
| Rust | <img width="1410" alt="Screenshot 2025-02-24 at 10 08 41 AM"
src="https://github.com/user-attachments/assets/9a34964d-9fdc-4deb-ac30-4a1c9e6fb531"
/> | <img width="1410" alt="Screenshot 2025-02-24 at 10 55 18 AM"
src="https://github.com/user-attachments/assets/c245d0fd-28af-42b8-93f6-48cb14671d94"
/> |
| Python | <img width="1410" alt="Screenshot 2025-02-24 at 10 08 38 AM"
src="https://github.com/user-attachments/assets/8f8d111e-1d50-4229-a333-eb29b6ce9f4f"
/> | <img width="1410" alt="Screenshot 2025-02-24 at 10 55 20 AM"
src="https://github.com/user-attachments/assets/010b661e-dc9e-4ccb-8e52-ee10c8eb8342"
/> |
In #25333 and #25331 the highlight used for identifiers in Rust and
Python, respectively, was changed to `@variable`, which resulted in the
intense colors you see in the "Before" screenshots above.
We considered reverting the highlight query changes to those languages,
but after taking a look at our other languages, they already use similar
queries. Instead we're adjusting the theme to make these cases less
visually intense.
Release Notes:
- Gruvbox themes: Changed the color used for `@variable` syntax
highlights to be less intense.
Marshall Bowers
created
133704a
Adjust `@variable` color in One Dark theme (#25468)
Click to expand commit body
This PR adjusts the color used for `@variable`s in One Dark to use the
`editor.foreground` color.
| Language | Before | After |
| -------- |
-----------------------------------------------------------------------------------------------------------------------------------------------------
|
-----------------------------------------------------------------------------------------------------------------------------------------------------
|
| Rust | <img width="1410" alt="Screenshot 2025-02-24 at 10 46 04 AM"
src="https://github.com/user-attachments/assets/3e1de7d2-03f6-45cc-87bb-93b86b5b1cb2"
/> | <img width="1410" alt="Screenshot 2025-02-24 at 10 46 15 AM"
src="https://github.com/user-attachments/assets/da6129aa-6886-4655-b305-c283e23bfd1e"
/> |
| Python | <img width="1410" alt="Screenshot 2025-02-24 at 10 46 10 AM"
src="https://github.com/user-attachments/assets/f60833f9-d306-44b6-a0b0-42b447e60498"
/> | <img width="1410" alt="Screenshot 2025-02-24 at 10 46 19 AM"
src="https://github.com/user-attachments/assets/256aa6b3-b798-46e4-9943-f21469e7d8bb"
/> |
Release Notes:
- One Dark theme: Adjusted the color used for `@variable` syntax
highlights.
Marshall Bowers
created
d1302a7
Diff view: Fold excerpts of deleted files by default (#25436)
bc941bf
assistant_tools: Rename `FileToolInput` to `NowToolInput` (#25456)
Click to expand commit body
Renamed the `FileToolInput` structure to `NowToolInput` to better
reflect its purpose, as the tool is related to time-based operations.
Release Notes:
- N/A
Signed-off-by: Nikita Pivkin <nikita.pivkin@smartforce.io>
Nikita Pivkin
created
72a9429
edit predictions: Always position jump/accept popovers inside viewport (#25348)
Click to expand commit body
https://github.com/user-attachments/assets/345961c5-9bcb-4ee5-80f2-03d5fd0741d3
Release Notes:
- edit prediction: Fixed jump/accept popover position for long lines
---------
Co-authored-by: Danilo <danilo@zed.dev>
Agus Zubiaga
and
Danilo
created
f020291
assistant: Rename action from New Context to New Chat (#25455)
Click to expand commit body
If you looked that up via the Command Palette, we were showing an
outdated action name ("new context") which causes confusion given the
panel says "New Chat".
Release Notes:
- N/A
Danilo Leal
created
4b3a2a3
vim: Fix `auto_indent_on_paste` not being respected (#25447)
Click to expand commit body
Closes #12236
This PR fixes an issue where the `auto_indent_on_paste` setting was not
being applied for pasting in Vim mode. It was correctly used for normal
paste behavior.
Also includes tests.
Release Notes:
- Fixed yank + paste indenting incorrectly when `auto_indent_on_paste`
is set to `false` in certain languages.
Closes #24746
This PR modifies the implementation of `copy_recursive`. Previously, we
were copying and pasting simultaneously, which caused an issue when a
user copied a folder into one of its subfolders. This resulted in new
content being created in the folder while copying, and subsequent
recursive calls to `copy_recursive` would continue this process, leading
to an infinite loop.
In this PR, the approach has been changed: we now first collect the
paths of the files to be copied, and only then perform the copy
operation.
Additionally, I have added corresponding tests. On the main branch, this
test would previously run indefinitely.
Release Notes:
- Fixed `copy_recursive` runs infinitely when copying a folder into its
subfolder.
While investigating #24896, I noticed two issues:
1. The default configuration for the `zed.dev` provider was using the
wrong string for Claude 3.5 Sonnet. This meant the provider would always
result as not configured until the user selected it from the model
picker, because we couldn't deserialize that string to a valid
`anthropic::Model` enum variant.
2. When clicking on `Open New Chat`/`Start New Thread` in the provider
configuration, we would select `Claude 3.5 Haiku` by default instead of
Claude 3.5 Sonnet.
Release Notes:
- Fixed some issues that caused AI providers to sometimes be
misconfigured.
Antonio Scandurra
created
535ba75
Do not indent on enter in python comments ending in colon (#25437)
Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/25416
Release Notes:
- Fixed a bug where indentation was applied when adding a newline to a
Python comment ending in `:`.
a437934
docs: Remove empty Tree-sitter grammar link in the Tailwind docs (#25426)
Click to expand commit body
This PR removes the empty Tree-sitter grammar link in the Tailwind docs.
Tailwind does not use a Tree-sitter grammar.
Release Notes:
- N/A
Marshall Bowers
created
3b3c379
docs: Fix casing of "Tree-sitter" (#25427)
Click to expand commit body
This PR fixes the casing of "Tree-sitter" in the docs.
It is "Tree-sitter", not "Tree Sitter" or "Tree-Sitter".
Release Notes:
- N/A
Marshall Bowers
created
147f407
Fix theme selector resetting the buffer size (#25425)
Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/25413
As the issue points out well, themes do not need to alter any in-memory
state on load: that is done via settings file load.
Originally, it was introduced in
https://github.com/zed-industries/zed/pull/4064 and
https://github.com/zed-industries/zed/pull/24857 had restored that
behavior, which seems wrong to do.
Apart from removing that part, removes unnecessary methods and
emphasizes that in-memory state is the Buffer/UI size — no need to add
`Adjusted` there as the settings file presence is already enough.
Release Notes:
- Fixed theme selector resetting the buffer size
Kirill Bulatov
created
822f42e
docs: Remove outdated note about pinning `@vue/language-server` (#25424)
Click to expand commit body
This PR removes the outdated note about pinning `@vue/language-server`
to v1.8.
As of https://github.com/zed-extensions/vue/pull/1 we now use the latest
available version.
Release Notes:
- N/A
Marshall Bowers
created
7e097d5
zeta: Add `LICENSE.md` and `LICENCE.md` to license detection (#25422)
Click to expand commit body
Maybe it's not a very common, but it has a place to be.
Release Notes:
- Added `LICENSE.md` and `LICENCE.md` files to license detection for
edit prediction.
---------
Co-authored-by: Marshall Bowers <git@maxdeviant.com>
Aivaz Latypov
and
Marshall Bowers
created
65f76e6
Add support for `--target-dir` for Rust tasks (#24725)
Click to expand commit body
This PR is an attempt to add support for `--target-dir` argument to
`cargo` commands when executing tasks with rust.
When using VSCode I was already using this trick to not block the
current binary compilation when I was trying a specific test. As it's a
different target directory it won't block the `cargo` commands I'm using
in my terminal.
I used the task variables to achieve this but I'm not sure it's the best
option to be honest. I didn't find any examples in your docs to see if
sometimes you had specific configuration for languages and tasks.
Let me know if this solution would be a good fit and if the
implementation is ok.
If so feel free to redirect me to an example I can reproduce to write a
unit test or so... And I will also update the docs.
Example of config:
```
{
"languages": {
"Rust": {
"tasks": {
"variables": {
"RUST_TARGET_DIR": ".cargo_check"
}
}
}
}
}
```
it will run `cargo test -p XXX --target-dir .cargo-check`
Release Notes:
- Added support for `--target-dir` for Rust tasks
---------
Signed-off-by: Benjamin <5719034+bnjjj@users.noreply.github.com>
Coenen Benjamin
created
918cba4
lsp: Check for existing snapshots before sending off a didOpen notification (#25409)
Click to expand commit body
Closes #ISSUE
Release Notes:
- Fixed Zed sending out didOpen notification to a language server when
opening documents.