Commit log

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.


![image](https://github.com/user-attachments/assets/73cfe9da-5575-4616-9ed0-99fcb3ab61f5)

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>

Thorben Kröger and Kirill Bulatov created

07727f9 Update docs for some settings (#27293)

Click to expand commit body
- update tooltips of `auto_install_extensions` , `active_pane_modifiers`
- update docs of `auto_install_extensions`, `active_pane_modifiers`,
`buffer_line_height`

Release Notes:

- N/A

---------

Co-authored-by: Kirill Bulatov <mail4score@gmail.com>

Junseong Park and Kirill Bulatov created

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

João Marcos created

f4d1e79 Improve Regex syntax highlighting (#25332)

Click to expand commit body
Release Notes:

  - Improved Regex syntax highlighting

| Zed 0.174.6 | With this PR |
| --- | --- |
|
![Image](https://github.com/user-attachments/assets/2a0bb1d9-cbba-490c-b2be-08c94bc79517)
|
![Image](https://github.com/user-attachments/assets/b19f3871-ee83-4165-a026-207bdbbcad44)
|

- `(?P=`, `<`: `punctuation.bracket`
- `group_name`: `property` -> `label`
- `^`, `$`: `string.escape` -> `operator`
- `\b`, `\B`, `\k`: `string.escape` -> `keyword.operator`
- added `regex` scope to target regex tokens specifically

```js
regex = /^(?<group>[!\.\?])\b[a-z]+word\k<group>$/g
```

---------

Co-authored-by: João Marcos <marcospb19@hotmail.com>

chbk and João Marcos created

044eb7b extensions_ui : Scroll to top on filter change (#27305)

Click to expand commit body
Closes #27100


https://github.com/user-attachments/assets/0fc1409d-01c1-4caa-a2ed-762c8951930f

Release Notes:

- N/A

Smit Barmase created

d96a50b extensions_ui: Add scrollbar (#27303)

Click to expand commit body
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.

João Marcos created

fa677bd vim: Single quote mark (#27231)

Click to expand commit body
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>

AidanV and Conrad Irwin created

d82b547 vim: View Marks (#26885)

Click to expand commit body
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>

AidanV and Conrad Irwin created

4c86cda Prompt before running some tools (#27284)

Click to expand commit body
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>

Conrad Irwin and andrew j created

c783fd0 zed: Add `--system-specs` arg (#27285)

Click to expand commit body
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 `![](foo)` 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. `![foo *bar* baz](foo)` 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.

Martin Fischer created

739f45e Clear breakpoints action (#27254)

Click to expand commit body
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>

Anthony Eid and Piotr Osiewicz created

16ad742 zlog: Init (#27273)

Click to expand commit body
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)

Click to expand commit body
Release Notes:

- N/A

---------

Co-authored-by: Nathan Sobo <1789+nathansobo@users.noreply.github.com>

Danilo Leal and Nathan Sobo created

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 |
|--------|-------|
| ![CleanShot 2025-03-21 at 14 12
22@2x](https://github.com/user-attachments/assets/fadb93b1-06b6-44cc-bf16-7e1279166ed0)
| ![CleanShot 2025-03-21 at 14 12
49@2x](https://github.com/user-attachments/assets/262ffc23-60b9-4cee-8a2b-9e864130912f)
|

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|
|---|---|

|![image](https://github.com/user-attachments/assets/6471502d-bf92-4808-ad42-9e0c66569d4f)|!![image](https://github.com/user-attachments/assets/ae45510a-8bc9-4f89-90a0-7496842fecb6)|


Release Notes:

- N/A

Co-authored-by: Jason Lee <huacnlee@gmail.com>

João Marcos and Jason Lee created

0e9e2d7 Delete unused checkpoints (#27260)

Click to expand commit body
Release Notes:

- N/A

Antonio Scandurra created

a52e2f9 Show claude-3-7-sonnet-thinking model for all users (#27256)

Click to expand commit body
Release Notes:

- N/A

Bennet Bo Fenner created

a551a61 Bump up default timeout (#27250)

Click to expand commit body
Release Notes:

- Extended timeout used when connecting to remote instances

Conrad Irwin created

c394a3a Adjust multibuffer header fold button size (#27253)

Click to expand commit body
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 |
|--------|--------|
| ![CleanShot 2025-03-21 at 12  11
40@2x](https://github.com/user-attachments/assets/003b2965-b1cc-43ad-8528-2bd11cf0f9cc)
| ![CleanShot 2025-03-21 at 12  11
28@2x](https://github.com/user-attachments/assets/d4927b72-3f41-4c4b-9813-49e676170419)
|

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>

Piotr Osiewicz and Anthony created

6bced3a assistant2: Ensure scripting tool gets disabled when switching profiles (#27244)

Click to expand commit body
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

2ffce4f Add non-blob columns to SQLite (#27236)

Kirill Bulatov 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.

David Barsky created

8f86cd7 assistant2: Add design refinements (#27160)

Click to expand commit body
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

Marshall Bowers created