a51e975
Improve support for multiple registrations of `textDocument/diagnostic` (#43703)
Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/41935
The registration ID responsible for generating each diagnostic is now
tracked. This allows us to replace only the diagnostics from the same
registration ID when a pull diagnostics report is applied.
Additionally, various deficiencies in our support for pull diagnostics
have been fixed:
- Document pulls are issued for all open buffers, not just the edited
one. A shorter debounce is used for the edited buffer. Workspace
diagnostics are also now ignored for open buffers.
- Tracking of `lastResultId` is improved.
- Stored pull diagnostics are discarded when the corresponding buffer is
closed.
Release Notes:
- Improved compatibility with language servers that use the "pull
diagnostics" feature of Language Server Protocol.
---------
Co-authored-by: Kirill Bulatov <mail4score@gmail.com>
Co-authored-by: Kirill Bulatov <kirill@zed.dev>
John Tur
,
Kirill Bulatov
, and
Kirill Bulatov
created
493cfad
Revert "http_client: Add integrity checks for GitHub binaries using digest checks (#43737)" (#44086)
Click to expand commit body
This reverts commit 05764e8af797b5abb8076bc78ce32d4130505e93.
Internally we've seen a much higher incidence of macOS code-signing
failing on
the download rust analyzer than we did before this change.
It's unclear why this would be a problem, but we want to try reverting
to see if that fixes it.
Release Notes:
- Reverted a change that seemed to cause problems with code-signing on
rust-analyzer
Conrad Irwin
created
0818ced
editor: Fix blame hover not working when inline git blame is disabled (#42992)
Click to expand commit body
Closes #42936
Release Notes:
- Fixed editor blame hover not working when inline git blame is disabled
Here's the before/after:
https://github.com/user-attachments/assets/a3875011-4a27-45b3-b638-3e146c06f1fe
Mayank Verma
created
6b46a71
tab_switcher: Fix bug where selected index after closing tab did not match pane's active item (#44006)
Click to expand commit body
Whenever an item is removed using the Tab Switcher, the list of matches
is automatically updated, which can lead to the order of the elements
being updated and changing in comparison to what the user was previously
seeing. Unfortunately this can lead to a situation where the selected
index, since it wasn't being updated, would end up in a different item
than the one that was actually active in the pane.
This Pull Request updates the handling of the `PaneEvent::RemovedItem`
event so that the `TabSwitcherDelegate.selected_index` field is
automatically updated to match the pane's new active item.
Seeing as this is being updated, the
`test_close_preserves_selected_position` test is also removed, as it no
longer makes sense with the current implementation. I believe a better
user experience would be to actually not update the order of the
matches, simply removing the ones that no longer exist, and keep the
selected index position, but will tackle that in a different Pull
Request.
Closes #44005
Release Notes:
- Fixed a bug with the tab switcher where, after closing a tab, the
selected entry would not match the pane's active item
Dino
created
575ea49
Fix yank around paragraph missing newline (#43583)
Click to expand commit body
Use `MotionKind::LineWise` in both
`vim::normal::change::Vim.change_object` and
`vim::normal::yank::Vim.yank_object` when dealing with objects that
target `Mode::VisualLine`, for example, paragraphs. This fixes an issue
where yanking and changing paragraphs would not include the trailing
newline character.
Closes #28804
Release Notes:
- Fixed linewise text object operations (`yap`, `cap`, etc.) omitting
trailing blank line in vim mode
---------
Co-authored-by: dino <dinojoaocosta@gmail.com>
Ramon
and
dino
created
85ccd7c
Fix not able to navigate to files in git commit multibuffer (#42558)
Click to expand commit body
Closes #40851
Release Notes:
- Fixed: Commit diff multibuffers now open real project files whenever
possible, restoring navigation and annotations inside those excerpts.
---------
Co-authored-by: Anthony Eid <anthony@zed.dev>
Xipeng Jin
and
Anthony Eid
created
b168679
language: Remove old unused `HTML/ERB` language ID (#44081)
Click to expand commit body
The `HTML/ERB` language was renamed
to `HTML+ERB` in https://github.com/zed-industries/zed/pull/40000 We can
remove the old name safely now.
Release Notes:
- N/A
Closes #43730
## Summary
This modifies the existing injections.scm file for go by adding more
specific prefix queries and *_content nodes to the existing
`raw_string_literal` and `interpreted_string_literal` sections
<details><summary>This PR</summary>
<img width="567" height="784" alt="image"
src="https://github.com/user-attachments/assets/bfe8c64e-1dc2-470c-9f85-2c664a6c5a15"
/>
<img width="383" height="909" alt="image"
src="https://github.com/user-attachments/assets/9349af8c-22d3-4c9b-a435-a73719f17ba3"
/>
<img width="572" height="800" alt="image"
src="https://github.com/user-attachments/assets/939ada3b-1440-443b-8492-0eb61a7ee90f"
/>
</details>
<details><summary>Current Release (0.214.7)</summary>
<img width="569" height="777" alt="image"
src="https://github.com/user-attachments/assets/e6fffe77-e4c6-48e3-9c6d-a140298225c5"
/>
<img width="381" height="896" alt="image"
src="https://github.com/user-attachments/assets/bf107950-c33a-4603-90d3-2304bef0a4af"
/>
<img width="574" height="798" alt="image"
src="https://github.com/user-attachments/assets/2c5e43e5-f101-4722-8f58-6b176ba950ca"
/>
</details>
<details><summary>Code</summary>
```go
func test_sql() {
// const assignment
const _ = /* sql */ "SELECT * FROM users"
const _ = /* sql */ `SELECT id, name FROM products`
// var assignment
var _ = /* sql */ `SELECT id, name FROM products`
var _ = /* sql */ "SELECT id, name FROM products"
// := assignment
test := /* sql */ "SELECT * FROM users"
test2 := /* sql */ `SELECT * FROM users`
println(test)
println(test2)
// = assignment
_ = /* sql */ "SELECT * FROM users WHERE id = 1"
_ = /* sql */ `SELECT * FROM users WHERE id = 1`
// literal elements
_ = testStruct{Field: /* sql */ "SELECT * FROM users"}
_ = testStruct{Field: /* sql */ `SELECT * FROM users`}
testFunc(/* sql */ "SELECT * FROM users")
testFunc(/* sql */ `SELECT * FROM users`)
const backtickString = /* sql */ `SELECT * FROM users;`
const quotedString = /* sql */ "SELECT * FROM users;"
const backtickStringNoHighlight = `SELECT * FROM users;`
const quotedStringNoHighlight = "SELECT * FROM users;"
}
func test_yaml() {
// const assignment
const _ = /* yaml */ `
settings:
enabled: true
port: 8080
`
// := assignment
test := /* yaml */ `
settings:
enabled: true
port: 8080
`
println(test)
// = assignment
_ = /* yaml */ `
settings:
enabled: true
port: 8080
`
// literal elements in a struct
_ = testStruct{Field: /* yaml */ `
settings:
test: 1234
port: 8080
`}
// function argument
testFunc(/* yaml */ `
settings:
enabled: true
port: 8080
`)
}
func test_css() {
// const assignment
const _ = /* css */ "body { margin: 0; }"
const _ = /* css */ `body { margin: 0; }`
const cssCodes = /* css */ `
h1 {
color: #333;
}
`
// := assignment
test := /* css */ "body { margin: 0; }"
println(test)
// = assignment
_ = /* css */ "body { margin: 0; }"
_ = /* css */ `body { margin: 0; }`
// literal elements
_ = testStruct{Field: /* css */ "body { margin: 0; }"}
_ = testStruct{Field: /* css */ `body { margin: 0; }`}
testFunc(/* css */ "body { margin: 0; }")
testFunc(/* css */ `body { margin: 0; }`)
const backtickString = /* css */ `body { margin: 0; }`
const quotedString = /* css */ "body { margin: 0; }"
const backtickStringNoHighlight = `body { margin: 0; }`
const quotedStringNoHighlight = "body { margin: 0; }"
}
```
</details>
Release Notes:
- Greatly improved the quality of comment-directed language injections
in Go
Jeff Brennan
created
c248a95
markdown: Fix rendering of inline HTML <code> tags (#43513)
Click to expand commit body
Added support for rendering HTML `<code> `tags inside Markdown content.
Previously, these tags were ignored by the renderer and displayed as raw
text (inside LSP hover documentation).
Closes: #43166
Release Notes:
- Fixed styling of `<code>` HTML tags in Markdown popovers.
Before:
<img width="445" height="145" alt="image"
src="https://github.com/user-attachments/assets/67c4f864-1fa7-46a9-bb25-8b07a335355d"
/>
After:
<img width="699" height="257" alt="image"
src="https://github.com/user-attachments/assets/8d784a75-28be-43cd-80b4-3aad8babb65b"
/>
Arthur Schurhaus
created
7e177c4
markdown_preview: Fix markdown tables taking up the full width of the parent element (#43555)
Click to expand commit body
Closes #39152
This PR fixes an issue where we would render Markdown tables full width
based on their container size. We now render tables based on their
content min size, meaning you are still allowed to make the table render
as it was before by making the columns `w_full`.
I had to change the `div()` to `v_flex().items_start()` because this
introduced a weird displaying behavior of the outside table border,
because the grid container was not shrinking due to It was always taking
up the full width of their container.
**Before**
<img width="1273" height="800" alt="Screenshot 2025-11-26 at 14 37 19"
src="https://github.com/user-attachments/assets/2e152021-8679-48c2-b7bd-1c02768c0253"
/>
**After**
<img width="1273" height="797" alt="Screenshot 2025-11-26 at 14 56 12"
src="https://github.com/user-attachments/assets/4459d20e-8c3b-487b-a215-c95ee5c1fc8e"
/>
**Code example**
```markdown
| Name | Age | Occupation |
|:--------:|:-------:|:--------------:|
| Alice | 28 | Engineer |
| Bob | 34 | Designer |
| Carol | 25 | Developer |
| Syntax | Description |
| ----------- | ----------- |
| Header | Title |
| Paragraph | Text |
| City | Population (approx.) | Known For |
|----------------|----------------------|------------------------------------|
| New York | 8,500,000 | Statue of Liberty, Wall Street |
| Los Angeles | 4,000,000 | Hollywood, film industry |
| Chicago | 2,700,000 | Architecture, deep-dish pizza |
| Houston | 2,300,000 | NASA, energy industry |
| Miami | 470,000 | Beaches, Latin culture |
| San Francisco | 800,000 | Golden Gate Bridge, Silicon Valley |
| Las Vegas | 650,000 | Casinos, nightlife |
<table>
<caption>Table Caption</caption>
<thead>
<tr>
<th>ID asjkfjaslkf jalksjflksajflka jlksdla k</th>
<th>Name</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>Chris</td>
</tr>
<tr>
<td>2</td>
<td>Dennis</td>
</tr>
<tr>
<td>3</td>
<td>Sarah</td>
</tr>
<tr>
<td>4</td>
<td>Karen</td>
</tr>
</tbody>
</table>
```
cc @bennetbo
Release Notes:
- Markdown Preview: Markdown tables scale now based on their content
size
904d90b
extension_ci: Run tests on pushes to `main` (#44079)
Click to expand commit body
This seems sensible to do - it already was the case prior but
indirectly, lets rather be explicit about this.
Release Notes:
- N/A
Co-authored-by: Agus Zubiaga <agus@zed.dev>
Finn Evers
and
Agus Zubiaga
created
1e09cbf
workspace: Scope tab tooltip to tab content only (#44076)
Click to expand commit body
Release Notes:
- Fixed scope tab tooltip to tab content only
Signed-off-by: Xiaobo Liu <cppcoffee@gmail.com>
Xiaobo Liu
created
8ca2571
extension_ci: Do not trigger version bump on workflow file changes (#44077)
Click to expand commit body
Release Notes:
- N/A
Co-authored-by: Agus Zubiaga <agus@zed.dev>
Finn Evers
and
Agus Zubiaga
created
95a553e
Do not report rejected sweep predictions to cloud (#44075)
Uses the latest version of the SDK + schema crate. A bit painful because
we needed to move to `#[non_exhaustive]` on all of these structs/enums,
but will be much easier going forward.
Also, since we depend on unstable features, I am pinning the version so
we don't accidentally introduce compilation errors from other update
cycles.
Release Notes:
- N/A
Ben Brandt
created
fe6fa1b
Revert "acp: Add a timeout when initializing an ACP agent so the user isn't waiting forever" (#44066)
Click to expand commit body
Reverts zed-industries/zed#43663
Ben Brandt
created
50d0f29
languages: Fix python run module task failing on windows (#44064)
Click to expand commit body
Fixes #40155
Release Notes:
- Fixed python's run module task not working on windows platforms
Co-authored by: Smit Barmase <smit@zed.dev>
Lukas Wirth
created
9857fd2
Make highlighting of C preprocessing directive same as C++ (#44043)
Click to expand commit body
Small fix for consistency between C and C++ highlighting. Related to
https://github.com/zed-industries/zed/issues/9461
Release Notes:
- Change syntax highlighting for preprocessing directive in C so it can
be configured with `keyword.directive` instead of being treated as other
`keyword`. The behavior should be like the C++ one now.
<img width="953" height="343" alt="圖片"
src="https://github.com/user-attachments/assets/6b45d2cc-323d-44ba-995f-d77996757669"
/>
lipcut
created
ad51017
Properly filter out the greedy bracket pairs (#44022)
Click to expand commit body
Follow-up of https://github.com/zed-industries/zed/pull/43607
Release Notes:
- N/A
Kirill Bulatov
created
2bf4787
Hide "File History" for untracked files in Git Panel context menu (#44035)
Joseph T. Lyons
created
65b4e9b
extensions_ui: Add upsell banners for integrated extensions (#43872)
Click to expand commit body
Add informational banners for extensions that have been integrated into
Zed core:
- Basedpyright (Python language server)
- Ruff (Python linter)
- Ty (Python language server)
These banners appear when users search for these extensions, informing
them that the functionality is now built-in and linking to relevant
documentation.
The banners trigger when:
- Users search by extension ID (e.g., 'id:ruff')
- Users search using relevant keywords (e.g., 'basedpyright', 'pyright',
'ruff', 'ty')
Supersedes #43844
Closes #43837
Release Notes:
- Added banners to the extensions page when searching for Basedpyright,
Ruff, or Ty, indicating that these features are now built-in.
---------
Co-authored-by: Marshall Bowers <git@maxdeviant.com>
Rani Malach
and
Marshall Bowers
created
98dec92
zed: Promote comment to a doc comment (#44031)
Click to expand commit body
This PR promotes a line comment above a variant member to a doc comment,
so that the docs show up on hover.
Release Notes:
- N/A
Marshall Bowers
created
39536ca
docs: Add Conda package to Linux community-maintained packages list (#44029)
Click to expand commit body
Release Notes:
- N/A
Joseph T. Lyons
created
b4e1d86
git: Use UI font in commit and blame popovers (#43975)
Click to expand commit body
Closes #30353
Release Notes:
- Fixed: Hover tooltips in git commit and blame popovers now
consistently use the UI font
Mikhail Pertsev
created
8a12ecf
commit view: Display message within editor (#44024)
Click to expand commit body
#42441 moved the commit message out of the multi-buffer editor into its
own header element which looks nicer, but unfortunately can make the
view become unusable when the commit message is too long since it
doesn't scroll with the diff.
This PR maintains the metadata in its own element, but moves the commit
message back to the editor so the user can scroll past it. This does
mean that we lose markdown rendering for now, but we think this is a
good solution for the moment.
https://github.com/user-attachments/assets/d67cf22e-1a79-451a-932a-cdc8a65e43de
Release Notes:
- N/A
---------
Co-authored-by: cameron <cameron.studdstreet@gmail.com>
Agus Zubiaga
and
cameron
created
22bf449
settings_ui: Fix some non-title case settings items (#44026)
Click to expand commit body
Release Notes:
- N/A
Danilo Leal
created
bcf9142
Update tree-sitter-bash to 0.25.1 (#44009)
Click to expand commit body
With the merging and publishing of
https://github.com/tree-sitter/tree-sitter-bash/pull/311 , we can now go
ahead and update the version of `tree-sitter-bash` that Zed relies on to
the latest version.
Closes #42091
Release Notes:
- Improved grammar for "Shell Script"
Dino
created
a2d57fc
zed_extension_api: Fork new version of extension API (#44025)
Click to expand commit body
This PR forks a new version of the `zed_extension_api` in preparation
for new changes.
We're jumping from v0.6.0 to v0.8.0 for the WIT because we released
v0.7.0 of the `zed_extension_api` without any WIT changes (it probably
should have been v0.6.1, instead).
Release Notes:
- N/A
Marshall Bowers
created
96a9170
Apply `show_completions_on_input: false` to word & snippet completions (#44021)
Click to expand commit body
Closes #43408
Previously, we checked the setting inside `is_completion_trigger()`,
which only affects LSP completions. This was ok because user-defined
snippets were tacked onto LSP completions. Then #42122 and #42398 made
snippet completions their own thing, similar to word completions,
surfacing #43408. This PR moves the settings check into
`open_or_update_completions_menu()` so it applies to all completions.
Release Notes:
- Fixed setting `show_completions_on_input: false` so that it affects
word and user-defined snippet completions as well as LSP completions
Andrew Farkas
created
a2ddb0f
Fix "busy" cursor appearing on startup (#44019)
23e5477
vim: Move to opening html tag from / in closing tag (#42513)
Click to expand commit body
Closes #41582
Release Notes:
- Improves the '%' vim motion for html by moving the cursor to the
opening tag when its positioned on the `/` ( slash ) of the closing tag
Pranav Joglekar
created
4e043cd
Add git team to git in REVIEWERS.conl (#41841)
Click to expand commit body
Release Notes:
- N/A
David Kleingeld
created
d283338
Add "File History" option to Git Panel entry context menu (#44016)
cargo-about@0.8.3 doesn't seem to like our license identifiers. Pinning
to 0.8.2 for now.
Release Notes:
- N/A
Agus Zubiaga
created
7bea1ba
Run commands if completion items require so (#44008)
Click to expand commit body
Abide the LSP better and actually run commands if completion items
request those:
https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#completionItem
```
/**
* An optional command that is executed *after* inserting this completion.
* *Note* that additional modifications to the current document should be
* described with the additionalTextEdits-property.
*/
command?: [Command](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#command);
```
Release Notes:
- N/A
Kirill Bulatov
created
7c95834
languages: Add injections to highlight script blocks of `actions/github-script` as JavaScript (#43771)
Click to expand commit body
Hello, this is my first time contributing here! The issue creation
button noted that "feature request"-esque items should go to
discussions, so with this PR, I'm closing that discussion and not an
issue. I hope that's ok :)
---
Closes https://github.com/zed-industries/zed/discussions/43769
Preview:
<img width="500" alt="image"
src="https://github.com/user-attachments/assets/00b8d475-d452-42e9-934b-ee5dbe48586e"
/><p/>
Release Notes:
- Added JavaScript highlighting via YAML `injections.scm` for script
blocks of `actions/github-script`
Novus Nota
created
3d58738
collab: Add action to copy room id (#44004)
Click to expand commit body
Adds a `collab: copy room id` action which copies the live kit room name
and session ID to the clipboard.
Release Notes:
- N/A
Agus Zubiaga
created
2db237a
Limit edit prediction reject batches to max (#43965)
Click to expand commit body
We currently attempt to flush all rejected predictions at once even if
we have accumulated more than
`MAX_EDIT_PREDICTION_REJECTIONS_PER_REQUEST`. Instead, we will now flush
as many as possible, and then keep the rest for the next batch.
Release Notes:
- N/A
Agus Zubiaga
created
305e73e
gpui(windows): Move interior mutability down into fields (#44002)
Click to expand commit body
Windows applications tend to be fairly re-entrant which does not work
well with our current top-level `RefCell` approach. We have worked
around a bunch of panics in the past due to this, but ultimately this
will re-occur (and still does according to sentry) in the future. So
this PR moves all interior mutability down to the fields.
Fixes ZED-1HM
Fixes ZED-3SH
Fixes ZED-1YV
Fixes ZED-29S
Fixes ZED-29X
Fixes ZED-369
Fixes ZED-20W
Release Notes:
- Fixed panics on windows caused by unexpected re-entrancy for interior
mutability
Lukas Wirth
created
ec6e7b8
gpui(windows): Fix top resize edge being only 1px tall (#43995)
Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/41693
Release Notes:
- Fixed an issue on windows where the resize area on the title bar is
only 1px tall
Lukas Wirth
created
4f5cc0a
lsp: Send client process ID in LSP initialize request (#43988)
Click to expand commit body
Per the [LSP
specification](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#initializeParams),
the client should send its process ID to the language server so the
server can monitor the client process and shut itself down if the client
exits unexpectedly.
Release Notes:
- N/A
Closes https://github.com/zed-industries/zed/issues/43328
Instead of trying to guess whether we can `--exec`, this now
restructures things to only attempt to use that flag where its
necessary. We only need to `--exec` when we are interested in the shell
output after all.
Release Notes:
- Fixed wsl remoting not working with some nixOS setups
Lukas Wirth
created
6a09729
terminal_view: Fix close tab button tooltip showing wrong keybinding on windows (#43981)
Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/43882
Release Notes:
- Fixed wrong button tooltips being shown for terminal pane on windows
Lukas Wirth
created
0df86e4
windows: Fix more vscode keybindings (#43983)
Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/43151 Closes
https://github.com/zed-industries/zed/issues/42022
Looking at other mappings, it seems like this should've been an alt
keybind after all
Release Notes:
- Fixed toggling focus to project panel via keybinding on windows not
always working