4e33aaa
markdown_preview: Fix preview not rendering bullet points beginning with HTML (#27018)
Click to expand commit body
Closes #26631
Release Notes:
- Fixed markdown preview not rendering bullet points beginning with HTML
Before:
<img width="822" alt="before"
src="https://github.com/user-attachments/assets/102a7eac-fcc2-457b-9587-4a021800841d"
/>
After:
<img width="822" alt="after"
src="https://github.com/user-attachments/assets/8544b318-0efa-46c3-bd9b-c6c21444fab7"
/>
Note: I thought it would make sense to return `true` in `is_text_like`
for `Event::InlineMath` and `Event::DisplayMath` as well, but it looks
like rendering inline math is not supported at all at the moment:
https://github.com/zed-industries/zed/blob/4402e033a47db8ab6bf05623a9f111dc7b44cbd5/crates/markdown/src/parser.rs#L108
Nils Koch
created
d253d46
Make python's file, line output clickable in terminal (#26903)
Click to expand commit body
Closes #16004.

Python formats file and line number references in the form `File
"file.py", line 8"`
I'm not a CPython expert, but from a quick look, they appear to come
from:
-
https://github.com/python/cpython/blob/80e00ecc399db8aeaa9f3a1c87a2cfb34517d7be/Python/traceback.c#L613
-
https://github.com/python/cpython/blob/80e00ecc399db8aeaa9f3a1c87a2cfb34517d7be/Python/traceback.c#L927
I am not aware of the possiblity to also encode the column information.
Release Notes:
- File, line references from Python, like 'File "file.py", line 8' are
now clickable in the terminal
---------
Co-authored-by: Kirill Bulatov <kirill@zed.dev>
08e8109
docs: Add Erlang language server documentation (#27346)
Click to expand commit body
This PR updates the Erlang docs to list the two language servers the
extension offers support for, as well as how to switch from `erlang_ls`
to `erlang-language-platform`.
Release Notes:
- N/A
AltCode
created
f19e1e3
docs: Document how to use project-specific settings for Ruby LSP (#27310)
Click to expand commit body
I think it's helpful to illustrate how some settings can be added to the
project settings file rather than being global.
Release Notes:
- N/A
---------
Co-authored-by: Peter Tripp <peter@zed.dev>
Andy Waite
and
Peter Tripp
created
8294b9f
docs: Add tip for viewing LSP logs when configuring Ruby (#27318)
Click to expand commit body
Ruby LSP displays important information in its logs upon startup, such
as which formatter is detected. Being able to see this helps a lot when
configuring or troubleshooting.
cc @vitallium
Release Notes:
- N/A
Andy Waite
created
352c71f
docs: Update Minitest example to clarify it only works with Rails (#27311)
Click to expand commit body
The example in the docs works with Rails but not plain minitest.
There are workarounds such as the [`m`](https://github.com/qrush/m) gem,
or adding ActiveSupport to a non-Rails project, but I feel they are
beyond the scope of the docs here.
Release Notes:
- N/A
Andy Waite
created
9f0b090
Rename LSP function and simplify tests (#27313)
Click to expand commit body
While working on a fix I found opportunities to improve readability, but
it's a big rename diff, so I'm landing separately.
Release Notes:
- N/A
This PR adds scrollbar to extensions page.
For now haven't added setting to hide or configure this scrollbar, can
be handled later.
<img width="1258" alt="image"
src="https://github.com/user-attachments/assets/0d260051-5e4a-4e3f-9738-b5c5a988419e"
/>
Release Notes:
- Added scrollbar to extensions page.
Smit Barmase
created
b5e5959
terminal: Make `alternate_scroll` on by default (#27302)
Click to expand commit body
Most terminal emulators, like macOS Terminal, Alacritty, and Ghostty,
have alternate scroll turned on by default. I think it makes sense for
the Zed terminal to do the same and make it more of an opt-out feature.
Release Notes:
- N/A
Smit Barmase
created
9918b6c
Scroll to follow expanding part of `editor::SelectLargerSyntaxNode` (#27295)
Click to expand commit body
When the selection grows both ways, the new code prioritizes the top
part instead of bottom one, this is usually more helpful considering
that most programming language grammars tend to define tokens right
before large delimited blocks, and rarely after (because humans and
parsers read from top to bottom).
Also, revert selection when convenient, so you have more control over
what you're selecting, looking at the selection `head` is commonly more
convenient than at the `tail`.
Release Notes:
- Improve scrolling of `editor::SelectLargerSyntaxNode` for better
visibility.
Closes #22398
Release Notes:
- vim: Adds `'` and `"` marks (last location jumped from in the current
buffer, and location when last exiting a buffer)
---------
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Closes #26884
Release Notes:
- vim: Added `:marks` which brings up list of current marks
- confirming on selected mark in the view jumps to that mark
---------
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Also includes some fixes for how the Lua tool was being generated.
<img width="644" alt="Screenshot 2025-03-21 at 6 26 18 PM"
src="https://github.com/user-attachments/assets/51bd1685-5b3f-4ed3-b11e-6fa8017847d4"
/>
Release Notes:
- N/A
---------
Co-authored-by: Ben <ben@zed.dev>
Co-authored-by: Agus Zubiaga <agus@zed.dev>
Co-authored-by: Joseph T. Lyons <JosephTLyons@gmail.com>
Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
Co-authored-by: Ben Kunkle <ben.kunkle@gmail.com>
Richard Feldman
,
Ben
,
Agus Zubiaga
,
Joseph T. Lyons
,
Danilo Leal
, and
Ben Kunkle
created
90649fb
Automatically expand context for inline assistant to nearest block (#27282)
Click to expand commit body
Release Notes:
- Inline assistant will now expand empty selections to the block under
the cursor.
Co-authored-by: andrew j <andjones100@gmail.com>
Adds the `--system-specs` flag to the Zed binary, so that users who wish
to report issues can retrieve their system specs, even if Zed is failing
to launch
Still TODO:
- [x] Test and do best effort GPU info detection on Linux
- [ ] Modify GitHub issue templates to tell users that the flag is
available if they are unable to launch Zed
Release Notes:
- Added the `--system-specs` flag to the Zed binary (not the cli!), to
retrieve the system specs we ask for in GitHub issues without needing to
open Zed
Ben Kunkle
created
85a761c
markdown_preview: Fix rendering image not at all or too often (#25592)
Click to expand commit body
Before MarkdownParagraphChunk::Image was pushed for every Text event if
we're currently inside an image. This was wrong since pulldown-cmark
parses `` as:
Start(Image { link_type: Inline, dest_url: "foo", title: "", id: "" })
End(Image)
If there is no alt text, no Text event is emitted. Which caused images
without any alt text not to be rendered at all.
For alt texts containing inline formatting this was even more obviously
broken since e.g. `` gets parsed as:
Start(Image { link_type: Inline, dest_url: "foo", title: "", id: "" })
Text(Borrowed("foo "))
Start(Emphasis)
Text(Borrowed("bar"))
End(Emphasis)
Text(Borrowed(" baz"))
End(Image)
which for this example caused the image to appear 3 times in the
preview.
This commit fixes these two bugs which have existed since the
introduction of the image previews in
96854c68eadd1dd72aa379368fde3cea791498a4.
Release Notes:
- Fixed images in the markdown preview appearing not at all or too
often.
This PR adds an action that clears all breakpoints and notifies any
active DAPs.
todo
- [x] Implement clear functionality
- [x] Write an integration test for this
Release Notes:
- N/A *or* Added/Fixed/Improved ...
---------
Co-authored-by: Piotr Osiewicz <peterosiewicz@gmail.com>
Scaffolding for a revised way of logging in Zed. Very WIP, but the idea
is to allow maintainers to tell users to paste
```json
{
"log": {
"project.format": "trace"
}
}
```
into their settings so that even trace logs are emitted for the log
statements emitted from a logger under the `project.format` scope.
The plan is to eventually implement the `Log` trait from the `log` crate
instead of just wrapping the `log` crate, which will simplify the
implementation greatly, and remove our need for both the `env_logger`
and `simplelog` crates.
Additionally, work will be done to transition to using the scoped
logging APIs throughout the app, focusing on bug hotspots to start
(currently, scoped logging is only used in the format codepath).
Release Notes:
- N/A
Ben Kunkle
created
b32c792
assistant2: Polish spacing and alignment (#27264)
1db621d
Refactor TextLayout to use Rc<RefCell> instead of Arc<Mutex> for improved performance (#27177)
Click to expand commit body
Since `TextLayout` is not shared by multiple threads, changing it to
`Rc<RefCell<T>>` should improve performance.
I also found several codes with the same problem. If you think this
change is beneficial, I will continue to improve it in the subsequent
PR. 🙂
Release Notes:
- N/A
Sunli
created
6143da9
editor: Fix regression in git label colors due to status color changes (#27272)
Click to expand commit body
This PR fixes the new awkward-looking git status labels due to the
change in version control colors. We want to enable styling version
control colors distinctly from other statuses, but these colors aren't
great for labels as they are meant to be quite high contrast.
We may need to split version control colors into a primary color and a
text color if we want to improve theming this overall.
| Before | After |
|--------|-------|
| 
| 
|
Release Notes:
- Fixes a regression in git status colors in the project panel
Nate Butler
created
7ced1b7
Fix strikethrough and underline in Linux (#27267)
Click to expand commit body
Follow up to #26827 and #24721, which introduced a bug in Linux.
|before|now|
|---|---|
||!|
Release Notes:
- N/A
Co-authored-by: Jason Lee <huacnlee@gmail.com>
This PR adjust the size of the fold button on the multibuffer header.
Had to make the `height` method public on the Button Like to pull that
off without other major changes.
| Before | After |
|--------|--------|
| 
| 
|
Release Notes:
- N/A
Danilo Leal
created
1cca2e3
keymap: Remove backspace/delete as shortcuts for `git::RestoreFile` (#27257)
Click to expand commit body
- See also: https://github.com/zed-industries/zed/pull/27004
Release Notes:
- N/A
Peter Tripp
created
0de5c2e
assistant2: Order agent profiles in the order they are defined in settings (#27255)
Click to expand commit body
This PR updates the ordering of the agent profiles in the tool selector
to respect the order they are defined in in the settings instead of
sorting them alphabetically.
This gives the user more control, and allows them to order the profiles
as they desire.
Release Notes:
- N/A
Marshall Bowers
created
6397872
Persist editor folds between restarts (#27252)
Click to expand commit body
Part of https://github.com/zed-industries/zed/issues/11626
https://github.com/user-attachments/assets/276cca5f-dd87-4496-b1b8-40b211f65aa7
Folds restoration between editor reopens will follow later
Release Notes:
- Started to persist editor folds between restarts
Kirill Bulatov
created
93bd32b
Fix toggling breakpoints not working when text anchor isn't at start (#27249)
Click to expand commit body
This fixes a bug where breakpoint's were unable to be toggled if the
text::Anchor representing the breakpoint position was not at the
beginning of a line.
Release Notes:
- N/A *or* Added/Fixed/Improved ...
Anthony Eid
created
f119550
assistant2: Define built-in agent profiles in the default settings (#27251)
Click to expand commit body
This PR moves the definitions of the built-in agent profiles into the
default `settings.json`.
It also changes the behavior of how this setting is treated when merging
settings such that the set of profiles will be merged. This is so users
don't clobber the built-in profiles when adding profiles of their own.
Release Notes:
- N/A
Marshall Bowers
created
4e93e38
assistant2: Sort tools in the tool selector by ID (#27247)
Click to expand commit body
This PR makes it so the tools in the tool selector are sorted by ID so
that they have a deterministic order.
Release Notes:
- N/A
Marshall Bowers
created
05aa888
project: Track manifest locations per unique manifest locator (#27194)
Click to expand commit body
This pull request paves way for exposing manifest tracking to
extensions.
- Project tree was renamed to manifest tree to better reflect it's
intent (and avoid confusion).
- Language server adapters now provide a name of their *manifest
locator*. If multiple language servers refer to the same locator, the
locating code will run just once for a given path.
Release Notes:
- N/A *or* Added/Fixed/Improved ...
---------
Co-authored-by: Anthony <anthony@zed.dev>
This PR fixes an issue where the scripting tool wasn't being disabled
when switching to a profile that did not have it enabled.
Release Notes:
- N/A
Marshall Bowers
created
e14ebcf
Show "Restore Checkpoint" only when there were changes (#27243)
Click to expand commit body
Release Notes:
- N/A
---------
Co-authored-by: Agus Zubiaga <hi@aguz.me>
Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
Antonio Scandurra
,
Agus Zubiaga
,
Bennet Bo Fenner
, and
Danilo Leal
created
9d965bc
Change default Markdown `soft_wrap` to "bounded" (#27205)
Click to expand commit body
- Follow-up to: https://github.com/zed-industries/zed/pull/26247
Previously with defaults meant that Markdown would softwrap even if you
had available window space (soft_wrap occurred at default
`preferred_line_length` of 80).
Release Notes:
- Changed Markdown default to soft_wrap at window width instead of
preferred_line_length
Peter Tripp
created
5798681
lsp: Fix workspace folders being cleared when new set is the same as the old one (#27242)
Click to expand commit body
Release Notes:
- N/A
Piotr Osiewicz
created
a709d4c
assistant: Add support for `claude-3-7-sonnet-thinking` (#27085)
Click to expand commit body
Closes #25671
Release Notes:
- Added support for `claude-3-7-sonnet-thinking` in the assistant panel
---------
Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
Co-authored-by: Antonio Scandurra <me@as-cii.com>
Co-authored-by: Agus Zubiaga <hi@aguz.me>
Bennet Bo Fenner
,
Danilo Leal
,
Antonio Scandurra
, and
Agus Zubiaga
created
33fc1f4
languages: Fix JS/TS imports not showing correct suggestions after using period (#27235)
Click to expand commit body
Closes #21728
This PR improves autocomplete for imports for all kinds of javascript
and typescript files.
Adds `.` as `completion_query_characters` which will make it act like
word for auto completion context. This allows capturing compete
`format.` as query.
Before:
<img width="500" alt="image"
src="https://github.com/user-attachments/assets/849fb342-db73-48e7-a9d8-93f0e5a14b58"
/>
After:
<img width="500" alt="image"
src="https://github.com/user-attachments/assets/e3ac3272-3217-4bcd-857f-4a83afc5980e"
/>
Release Notes:
- Improved autocomplete suggestions for JavaScript and TypeScript
imports.
Smit Barmase
created
7ade7d8
lsp-config: Allow setting a server's environment variables (#27213)
Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/14334, allowing
users to set environment variables for a language server binary like:
```json
"lsp": {
"rust-analyzer": {
"binary": {
"path": "/Users/dbarsky/.cargo/bin/rust-analyzer",
"env": {
"RA_PROFILE": "*>100"
}
},
}
}
```
The newly introduced environment variables are merged with the shell
environment. Perhaps more controversially, I've _also_ removed the
trimming/`stderr:`-prefixing of language server logs. This because
rust-analyzer has some nice, tree-shaped profiling built-in, and it
prevents us from printing profiles like this:
<details>
<img width="1147" alt="Screenshot 2025-03-20 at 12 09 14 PM"
src="https://github.com/user-attachments/assets/b7066651-6394-492b-b745-906c66d3c7b2"
/>
</details>
Release Notes:
- Added the ability to set a language server's environment variables.
- Removed the `stderr`-prefix of a language server's stderr logs.
Release Notes:
- N/A
---------
Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
Co-authored-by: Antonio Scandurra <me@as-cii.com>
Co-authored-by: Agus Zubiaga <hi@aguz.me>
Danilo Leal
,
Bennet Bo Fenner
,
Antonio Scandurra
, and
Agus Zubiaga
created
962709f
docs: Change `render` function's return type (#27229)
迷渡
created
cf7d639
Migrate most callers of git-related worktree APIs to use the GitStore (#27225)
Click to expand commit body
This is a pure refactoring PR that goes through all the git-related APIs
exposed by the worktree crate and minimizes their use outside that
crate, migrating callers of those APIs to read from the GitStore
instead. This is to prepare for evacuating git repository state from
worktrees and making the GitStore the new source of truth.
Other drive-by changes:
- `project::git` is now `project::git_store`, for consistency with the
other project stores
- the project panel's test module has been split into its own file
Release Notes:
- N/A
---------
Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Cole Miller
and
Max Brunsfeld
created
9134630
extensions: Add copy author info button in context menu (#27221)
Click to expand commit body
Closes #26108
Add "Copy Author Info" button to extension context menu.
Release Notes:
- Added option to copy extension author's name and email from extension
context menu.
Smit Barmase
created
bc1c0a2
Separate repository state synchronization from worktree synchronization (#27140)
Click to expand commit body
This PR updates our DB schemas and wire protocol to separate the
synchronization of git statuses and other repository state from the
synchronization of worktrees. This paves the way for moving the code
that executes git status updates out of the `worktree` crate and onto
the new `GitStore`. That end goal is motivated by two (related) points:
- Disentangling git status updates from the worktree's
`BackgroundScanner` will allow us to implement a simpler concurrency
story for those updates, hopefully fixing some known but elusive bugs
(upstream state not updating after push; statuses getting out of sync in
remote projects).
- By moving git repository state to the project-scoped `GitStore`, we
can get rid of the duplication that currently happens when two worktrees
are associated with the same git repository.
Co-authored-by: Max <max@zed.dev>
Release Notes:
- N/A
---------
Co-authored-by: Max <max@zed.dev>
Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Cole Miller
,
Max
, and
Max Brunsfeld
created
700af63
assistant2: Watch settings for changes to profiles (#27219)
Click to expand commit body
This PR makes it so we watch the settings and update when the profiles
change.
Release Notes:
- N/A