17323ed
Show git items in the panel only when in a git repository (#24865)
Click to expand commit body
| Before | After | After2 |
| - | - | - |
| <img width="368" alt="Screenshot 2025-02-14 alle 13 45 41"
src="https://github.com/user-attachments/assets/9ed6f233-c7e3-45b4-b2cd-605b6f785cbe"
/> | <img width="367" alt="Screenshot 2025-02-14 alle 14 25 24"
src="https://github.com/user-attachments/assets/808da265-dd1d-4679-9b62-a4def459fc8f"
/> | <img width="371" alt="Screenshot 2025-02-14 alle 14 25 38"
src="https://github.com/user-attachments/assets/09d0e27e-1e58-43b4-9a35-eb14c0d14961"
/> |
Release Notes:
- If it is not a git repository it shows nothing.
- Fix stage and unstage title in context_menu
Angelk90
created
3759e0b
terminal: Update terminal reopening from global to per-workspace (#25336)
Click to expand commit body
Closes #7145
Currently, terminal persistence is global, i.e. split configurations are
restored across all workspaces.
This PR changes it to per-workspace, so configurations are restored only
within the same workspace. Opening a new window will start with a fresh
terminal.
https://github.com/user-attachments/assets/d43fe747-9f28-4723-b409-e8dbb3a23912
Release Notes:
- Improved terminal reopening to be per workspace instead of global.
smit
created
144d8a1
Improve C and C++ syntax highlighting (#25325)
Click to expand commit body
Release Notes:
- Improved C and C++ syntax highlighting.
| Zed 0.174.6 | With this PR |
| --- | --- |
|

|

|
- `NULL`, `nullptr`: `constant` -> `constant.builtin`
```cpp
#include <stdbool.h>
int a[] = {true, false};
const int * IDENTIFIER = nullptr;
```
---------
Co-authored-by: Marshall Bowers <git@maxdeviant.com>
Release Notes:
- Improved Go syntax highlighting.
| Zed 0.174.6 | With this PR |
| --- | --- |
|

|

|
- `package_identifier`: `namespace`, language-agnostic scope for
modules, packages, namespaces
- `method_elem`: `function.method`
- `;` ,`.` ,`,` ,`:`: `punctuation.delimiter`
```go
package my_package
import (
pkg "fmt"
)
type A interface {
method_elem(foo int, bar float64) int
}
func main() {
identifier := true
const constant int = 3
for i := 0; i <= 3; i++ {
pkg.Println(identifier)
}
}
```
---------
Co-authored-by: Marshall Bowers <git@maxdeviant.com>
chbk
and
Marshall Bowers
created
a97a2eb
lsp: Send non-null workspaceFolders in initialize (#25337)
Click to expand commit body
This is a ~workaround for next-ls not handling null workspace folders in
initialize request
Related to #25264
/cc @timfjord
Closes #ISSUE
Release Notes:
- Changed how workspace folders are shared with language servers, fixing
a startup issue with `next-ls` in the process.
a4ade37
rust: Add `raw` to keyword list for syntax highlighting (#25342)
Click to expand commit body
This PR adds support for syntax highlighting the `raw` keyword in Rust.
Release Notes:
- Added `raw` keyword to Rust language highlights (see the [Rust 1.82.0
announcement](https://blog.rust-lang.org/2024/10/17/Rust-1.82.0.html#native-syntax-for-creating-a-raw-pointer)).
Co-authored-by: everdrone <giorgiotropiano@gmail.com>
Marshall Bowers
and
everdrone
created
1fb4620
Use `@boolean` for `true` and `false` in highlights (#25338)
Click to expand commit body
Release Notes:
- Fixed issue where `true` and `false` were highlighted as constants,
ignoring the `boolean` highlight defined in themes.
- This fix applies to: C, C++, Go, JSON, JSONC, Python, and Rust.
---------
Co-authored-by: Marshall Bowers <git@maxdeviant.com>
everdrone
and
Marshall Bowers
created
3c4903c
Pass "menu" key presses in windows down as a `Keystroke` (#25000)
Click to expand commit body
This is second part needed for #17819.
There is already binding in default bindings: `"menu":
"editor::OpenContextMenu",` (but won't work on windows without this
change)
Release Notes:
- Handle "menu" key in windows
GiM
created
ad4163b
Revert "Add syntax scopes to themes (#25323)" (#25339)
Click to expand commit body
This reverts commit 2f416aebbe74f0bbaafe9b18310ff6025fd61916.
We shouldn't have merged this yet, as it currently breaks syntax
highlighting for some languages that haven't had their requisite changes
merged yet.
We also need to be aware of the impact this will have on downstream
themes.
@chbk We should bundle any changes to the themes with the specific
language highlights that depend on those changes (and if there are
multiple languages that need the same change then pick one language to
come first and then stack the rest of the changes on top of that).
Release Notes:
- Community: This is a revert of
https://github.com/zed-industries/zed/pull/25323, so remove those notes
from the release notes.
Release Notes:
- Added syntax scopes to themes
Supports:
- [Improve CSS syntax
highlighting](https://github.com/zed-industries/zed/pull/25326)
- [Improve Go syntax
highlighting](https://github.com/zed-industries/zed/pull/25327)
- [Improve Markdown syntax
highlighting](https://github.com/zed-industries/zed/pull/25330)
Changes:
- Adds highlighting rules for the following new scopes, using theme
colors:
- `heading`
- `namespace`
- `selector`
- `strikethrough`
- `unit`
- Renames scopes that are no longer used in `zed/crates/languages/src`
or `zed/extensions` to their new names:
- `punctuation.list_marker` -> `punctuation.markup`
- `link_text` -> `link`
- `link_uri` -> `link.url`, as defined in the [gitcommit
grammar](https://github.com/zed-industries/zed/blob/dff47a843695d03160680502e6d94634e376698e/crates/languages/src/gitcommit/highlights.scm#L5)
- `text.literal` -> `raw`
chbk
created
5397ca2
ui: More component previews, UI component cleanup (#25302)
Just little bit clean up from #25288
Release Notes:
- N/A
smit
created
dff47a8
rust: Add support for doctest runnables (#24806)
Click to expand commit body
Screenshot:

I would be happy to add tests if you point me to the right place to do
it please.
Release Notes:
- Added support for doc test in tasks for Rust
---------
Signed-off-by: Benjamin <5719034+bnjjj@users.noreply.github.com>
Coenen Benjamin
created
d45aaa1
scrollbar: Implement minimum thumb size (#25288)
Click to expand commit body
This PR addresses 3 issues with the common scrollbar component used in
the Terminal, Outline Panel, etc.
1. Extremely small or invisible scrollbar for long content.
2. Flickering issue when the thumb is already at the bottom-most
position, and the user tries to overscroll.
3. Scrollbar appearing even when there is no excessive content to
scroll.
Before:
<img width="300" alt="image"
src="https://github.com/user-attachments/assets/8a124a72-3b56-4bef-858a-a4942c871829"
/>
After:
<img width="300" alt="Screenshot 2025-02-21 at 3 26 32 AM"
src="https://github.com/user-attachments/assets/2a8a5796-b332-4c06-84b2-226d2de6e300"
/>
Release Notes:
- Fixed extremely small scrollbar thumb for long content in Terminal,
Outline Panel, and more.
---------
Co-authored-by: Danilo <danilo@zed.dev>
Co-authored-by: Richard Feldman <oss@rtfeldman.com>
smit
,
Danilo
, and
Richard Feldman
created
5e1dd91
Fix UI font size changes not applying (#25307)
Click to expand commit body
Related to #24857.
Release Notes:
- N/A
João Marcos
created
4871d3c
New commit review flow in project diff view (#25229)
Closes #25258
Release Notes:
- Fixed `gr` in visual mode
0x2CA
created
c31c638
Fix relative indentation when pasting content copied from outside Zed (#25300)
Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/24914
Release Notes:
- Fixed incorrect indentation when pasting multi-line content that was
copied from another app.
Make the editor non-dirty and read-only.
Release Notes:
- Improve expanded macro ergonomics
Kirill Bulatov
created
30850fe
Add editor actions for moving and selecting to next / previous excerpt (#25299)
Click to expand commit body
Covers part of #5129 by adding `MoveToStartOfExcerpt`,
`MoveToEndOfExcerpt`, `SelectToStartOfExcerpt`, and
`SelectToEndOfExcerpt`.
No default linux bindings yet as it's unclear what to use. Currently,
`ctrl-up` / `ctrl-down` scroll up and down by one line (see #13269).
Considering changing the meaning of those.
Mac:
* Previously `cmd-up` and `cmd-down` were `editor::MoveToBeginning` and
`editor::MoveToEnd`. In singleton editors these will behave the same as
before. In multibuffers, they will now step through excerpts instead of
jumping to the beginning / end of the multibuffer.
* `cmd-home` and `cmd-end`, often typed as `cmd-fn-left` and
`cmd-fn-right` are now `editor::MoveToBeginning` and
`editor::MoveToEnd`. This is useful in multibuffers.
Release Notes:
- Mac: `cmd-up` now moves to the previous
multibuffer excerpt start, and `cmd-down` moves to the next multibuffer
excerpt end. Within normal buffers these behave the same as before, moving
to the beginning or end.
Michael Sloan
created
ec00fb9
git_hosting_providers: Add support for Chromium repositories (#24881)
Click to expand commit body
Add an implementation of GitHostingProvider for repositories hosted on
https://chromium.googlesource.com. Pull requests target the Gerrit
instance at https://chromium-review.googlesource.com and avatar images
are fetched using the Gerrit REST API.
<img width="513" alt="Screenshot 2025-02-20 at 6 43 37 PM"
src="https://github.com/user-attachments/assets/867af988-594d-45ea-8482-e40517443c73"
/>
<img width="511" alt="Screenshot 2025-02-20 at 6 43 51 PM"
src="https://github.com/user-attachments/assets/1d412904-048d-4a2d-8494-0837e75f8d61"
/>
Release Notes:
- Added support for repositories hosted on `chromium.googlesource.com`
for Git blames and permalinks.
---------
Co-authored-by: Marshall Bowers <git@maxdeviant.com>
Henrique Ferreiro
and
Marshall Bowers
created
5dd3515
diagnostics: Do not run syntactic expansion on main thread (#25287)
Click to expand commit body
Related to #18300
Release Notes:
- Improved diagnostic pane responsiveness with large # of diagnostics.
---------
Co-authored-by: Anthony Eid <hello@anthonyeid.me>
Piotr Osiewicz
and
Anthony Eid
created
5ae93ce
Add initial inline diagnostics support (#25297)
Click to expand commit body
https://github.com/user-attachments/assets/eb881707-e575-47ef-9ae0-67d8085d8065
Closes https://github.com/zed-industries/zed/pull/22668
Closes https://github.com/zed-industries/zed/issues/4901
Takes https://github.com/zed-industries/zed/pull/22668 and fixes all
review items on top.
Inline diagnostics are disabled by default, but can be enabled via
settings permanently, or temporarily toggled with the `editor:
ToggleInlineDiagnostics` action and the corresponding editor menu item
<img width="242" alt="image"
src="https://github.com/user-attachments/assets/8e177511-4626-4434-902b-d6aa4d3fafd0"
/>
Inline diagnostics does not show currently active diagnostics group, as
it gets inline into the editor too, inside the text.
Inline git blame takes precedence and is shown instead of the
diagnostics, edit predictions dim the diagnostics if located on the same
line.
One notable drawback of the implementation is the inability to wrap,
making inline diagnostics cut off the right side:

(same as inline git blame and other elements to the right of the text)
Given that it's disabled by default and go to next/prev diagnostics will
show them better, seems fine to leave in the first iteration.
Release Notes:
- Added initial inline diagnostics support
---------
Co-authored-by: Paul J. Davis <paul.davis@tiledb.com>
Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
Kirill Bulatov
,
Paul J. Davis
, and
Danilo Leal
created
74c581b
assistant2: Combine history views into one (#25293)
Click to expand commit body
This PR combines the two history views in Assistant2 into one.
<img width="1309" alt="Screenshot 2025-02-20 at 5 34 37 PM"
src="https://github.com/user-attachments/assets/fbb08542-58b5-4930-8a20-254234e335fa"
/>
<img width="1309" alt="Screenshot 2025-02-20 at 5 34 41 PM"
src="https://github.com/user-attachments/assets/1174849e-edad-4e02-8bf3-bb92aafba4f8"
/>
Release Notes:
- N/A
Marshall Bowers
created
3a222f0
lsp: Fill root_uri property on Initialize again (#25264)
Click to expand commit body
Closes #ISSUE
Release Notes:
- Fix some language servers (elixir-ls, tailwindcss, phpactor) failing
to start up due to an unfilled root_uri property in the InitializeParams
Co-authored-by: Anthony Eid <hello@anthonyeid.me>
Piotr Osiewicz
and
Anthony Eid
created
300ed6b
assistant2: Remove blank line in parameter list (#25286)
Click to expand commit body
This PR removes a blank line in the `ThreadHistory::new` parameter list.
Release Notes:
- N/A
Marshall Bowers
created
3c8dbaf
outline panel: Improve the search query header design (#25283)
Click to expand commit body
Fine-tuning alignment and spacing.
| Before | After |
|--------|--------|
| 
| 
|
Release Notes:
- N/A
Danilo Leal
created
4151b5b
Make cmd-t open new tab in Assistant (#25267)
Click to expand commit body
Match the behavior of chrome, safari, etc.
Release Notes:
- N/A
Peter Tripp
created
274e70e
Fix `cargo test` task for tests module in `lib.rs`, `main.rs`, `mod.rs` (#25092)
Click to expand commit body
Closes #19161
Release Notes:
- Fixed not being able to spawn the `cargo test` task for a `tests`
module in `lib.rs`, `main.rs`, or `mod.rs`
This PR bumps the TOML extension to v0.1.3.
Changes:
- https://github.com/zed-industries/zed/pull/25276
Release Notes:
- N/A
Marshall Bowers
created
191a1d7
edit prediction: Don't show and discard completion if toggled off in the buffer (#24927)
Click to expand commit body
Discards an inline completion when it's toggled to off (using, say, a
keyboard shortcut). This matches the behaviour in VS Code and JetBrains,
and I think is a bit more intuitive.
(https://github.com/zed-industries/zed/discussions/24895)
Release Notes:
- N/A
itsaphel
created
2581f8b
toml: Respect language server `binary` settings (#25276)
Click to expand commit body
This PR updates the TOML extension to respect the `binary` settings for
the language server.
Related to https://github.com/zed-industries/zed/issues/22775.
Release Notes:
- N/A
Marshall Bowers
created
a1223e0
Use the development credentials provider in development by default (#25273)
Click to expand commit body
This PR changes the default credentials provider used in developments
builds of Zed to the development credentials provider.
Previously this required setting `ZED_DEVELOPMENT_AUTH=1` in order to
opt-in to the development credentials provider.
This led to confusion for new Zed employees who did not know that this
environment variable existed.
If you do need to interact with the system keychain for some reason, you
can run Zed with:
```
ZED_DEVELOPMENT_USE_KEYCHAIN=1
```
`ZED_DEVELOPMENT_AUTH` is dead. Long live Zed development auth!
Release Notes:
- N/A
Marshall Bowers
created
a8610fb
Hide the mouse when the user is typing in the editor (#25040)
Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/4461
This PR improves the coding experience by hiding the mouse while the
user is typing so it does not accidentally get in their way, making it
challenging to ready characters in the editor.
Release Notes:
- The following PR hides the cursor when the user is typing by adding a
new cursor style called `None`.
- Assuming the user does not move the mouse, it will stay hidden until
it is moved again.
https://github.com/user-attachments/assets/6ba9f2ee-b9f3-4595-81e4-e9d986da4a39
---------
Co-authored-by: Agus <agus@zed.dev>
Co-authored-by: Peter Tripp <peter@zed.dev>
Co-authored-by: Kirill Bulatov <kirill@zed.dev>
Thomas Mickley-Doyle
,
Agus
,
Peter Tripp
, and
Kirill Bulatov
created
3116850
git: Take only the first line of MERGE_MSG (#25263)
Click to expand commit body
The rest of the generated message consists of comments that are
redundant with what we show in the panel.
Release Notes:
- N/A
Cole Miller
created
21bb724
Add `CredentialsProvider` to silence keychain prompts in development (#25266)
Click to expand commit body
This PR adds a new `CredentialsProvider` trait that abstracts over
interacting with the system keychain.
We had previously introduced a version of this scoped just to Zed auth
in https://github.com/zed-industries/zed/pull/11505.
However, after landing https://github.com/zed-industries/zed/pull/25123,
we now have a similar issue with the credentials for language model
providers that are also stored in the keychain (and thus also produce a
spam of popups when running a development build of Zed).
This PR takes the existing approach and makes it more generic, such that
we can use it everywhere that we need to read/store credentials in the
keychain.
There are still two credential provider implementations:
- `KeychainCredentialsProvider` will interact with the system keychain
(using the existing GPUI APIs)
- `DevelopmentCredentialsProvider` will use a local file on the file
system
We only use the `DevelopmentCredentialsProvider` when:
1. We are running a development build of Zed
2. The `ZED_DEVELOPMENT_AUTH` environment variable is set
- I am considering removing the need for this and making it the default,
but that will be explored in a follow-up PR.
Release Notes:
- N/A
c18be3e
vim: Fix cursor shape hollow only in block (#25235)
Click to expand commit body
Closes #ISSUE
Before this, in Vim mode, as long as the window loses focus, regardless
of the current cursor shape, it will definitely switch to a hollow
cursor.
Release Notes:
- Fixed vim cursor shape hollow only in block
0x2CA
created
f609abb
assistant2: Highlight crease on selection (#24358)
Click to expand commit body
Give the inline file crease inside of `assistant2`'s editor a
selection background when there is a selection over it
Release Notes:
- N/A
---------
Co-authored-by: Piotr <piotr@zed.dev>
Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
João Marcos
,
Piotr
, and
Danilo Leal
created
78a8002
keymap: Fix `shift-` modifier symbol (#25238)
Click to expand commit body
Closes #25230
```
The shift- modifier can only be used in combination with a letter to indicate the uppercase version. For example shift-g matches typing G. Although on many keyboards shift is used to type punctuation characters like (, the keypress is not considered to be modified and so shift-( does not match.
```
[Document](https://zed.dev/docs/key-bindings#keybinding-syntax)
Release Notes:
- Fixed Keymap use `shift-` modifier symbol
0x2CA
created
f2b7d8a
python: Properly check for Pyright language server in local environment (#24873)
Click to expand commit body
Closes #24565
As pointed out in
https://github.com/zed-industries/zed/issues/24565#issuecomment-2657822723
, the name for the Pyright language server is `pyright-langserver`, not
`pyright`. The latter is a CLI-tool as described in
https://microsoft.github.io/pyright/#/command-line which only provides
static type checking. It has neither LSP-capabilities nor a `--stdio`
argument. Thus, the error as shown in the linked issue appears.
I disagree with the fix as described in
https://github.com/zed-industries/zed/issues/24565#issuecomment-2657904208
, as it could only cause this error to reappear in rare scenarios where
Pyright, but not the Pyright language server is installed in a user's
environment. Just checking for `pyright-langserver` to be present in the
environment seems more straightforward here.
Release Notes:
- Python: Fixed Pyright failing to start when installed locally
Co-authored-by: Beniamin Zagan <47153906+beniaminzagan@users.noreply.github.com>
Finn Evers
and
Beniamin Zagan
created
1d513dd
Make `"allow_rewrap": "anywhere"` the default for "Git Commit" files (#25260)
Click to expand commit body
This PR makes `"allow_rewrap": "anywhere"` the default for "Git Commit"
files.
Closes https://github.com/zed-industries/zed/issues/24987.
Release Notes:
- N/A
Marshall Bowers
created
b84aec0
Centralize logic around which keybind to display (#25215)
Click to expand commit body
Closes #24931
We've flipped back and forth at least once on whether the last or first
added keybinding should be shown in different contexts (See
[this](https://github.com/zed-industries/zed/issues/23621#issuecomment-2614061385)
as well as #23621 and the subsequent #23660)
This PR attempts to pick a side to stick with so that we are at least
consistent until #23660 is resolved and we have a way to determine which
keybinds to display in a manner that is both consistent and not
confusing
Release Notes:
- N/A
This PR bumps the Deno extension to v0.1.0.
Changes:
- https://github.com/zed-industries/zed/pull/16955
- https://github.com/zed-industries/zed/pull/25252
Release Notes:
- N/A
Marshall Bowers
created
7f3e2e4
deno: Make downloaded language server binary executable (#25252)
Click to expand commit body
Closes #20347
This PR fixes the downloaded Deno LSP binary not being able to start by
marking it as executable.
Release Notes:
- N/A
Finn Evers
created
43f2e4c
assistant: Add missing toggle model selector action handler (#25248)
Click to expand commit body
#25032 removes handling of `ToggleModelSelector` action. This PR adds
missing handler to context editor.
Release Notes:
- N/A
Askar
created
48541fb
editor: Ignore whitespaces in selection highlight (#25236)
Click to expand commit body
This PR prevents whitespace selections from being highlighted.
Before:
<img
src="https://github.com/user-attachments/assets/79812ae5-6709-4e93-b203-b8f1d5ffbf7b"
alt="image" width="400px" />
After:
<img
src="https://github.com/user-attachments/assets/77540ef9-65df-476e-9cca-b2cef14f5f3a"
alt="image" width="400px" />
Release Notes:
- Fixed an issue where whitespace selections were incorrectly
highlighted.
smit
created
f973b26
Update Rust crate clap to v4.5.30 (#25187)
Click to expand commit body
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [clap](https://redirect.github.com/clap-rs/clap) |
workspace.dependencies | patch | `4.5.29` -> `4.5.30` |
---
### Release Notes
<details>
<summary>clap-rs/clap (clap)</summary>
###
[`v4.5.30`](https://redirect.github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#4530---2025-02-17)
[Compare
Source](https://redirect.github.com/clap-rs/clap/compare/v4.5.29...v4.5.30)
##### Fixes
- *(assert)* Allow `num_args(0..=1)` to be used with `SetTrue`
- *(assert)* Clean up rendering of `takes_values` assertions
</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:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNzMuMSIsInVwZGF0ZWRJblZlciI6IjM5LjE3My4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>