Part of https://github.com/zed-industries/zed/issues/15324

Repeats the approach used in the project panel.
Release Notes:
- Added scrollbars to outline panel
---------
Co-authored-by: Nate Butler <nate@zed.dev>
Kirill Bulatov
and
Nate Butler
created
7bc4cb9
Update Rust crate hyper to v0.14.31 (#19323)
Click to expand commit body
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [hyper](https://hyper.rs)
([source](https://redirect.github.com/hyperium/hyper)) |
workspace.dependencies | patch | `0.14.30` -> `0.14.31` |
---
### Release Notes
<details>
<summary>hyperium/hyper (hyper)</summary>
###
[`v0.14.31`](https://redirect.github.com/hyperium/hyper/releases/tag/v0.14.31)
[Compare
Source](https://redirect.github.com/hyperium/hyper/compare/v0.14.30...v0.14.31)
#### Bug Fixes
- **http1:** improve performance of parsing sequentially partial
messages
([97b595e](https://redirect.github.com/hyperium/hyper/commit/97b595e5892c239a195b199f9e7910f582351c44))
</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:eyJjcmVhdGVkSW5WZXIiOiIzOC4xMjAuMSIsInVwZGF0ZWRJblZlciI6IjM4LjEyMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate[bot]
and
renovate[bot]
created
f84f3ff
docs: Add `linkedProjects` section to Rust docs (#19954)
Click to expand commit body
Related to #19897
Adds a section about multi-project workspaces and how to configure
rust-analyzer to diagnose them even if the cargo workspace does not list
them
Release Notes:
- N/A
---------
Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
Gherman
and
Marshall Bowers
created
c564a4a
Require /file or /tab when using Suggest Edits (#19960)
Click to expand commit body
Now if you try to do Suggest Edits without a file context, you see this
(and it doesn't run the query).
<img width="635" alt="Screenshot 2024-10-30 at 10 51 24 AM"
src="https://github.com/user-attachments/assets/a3997ba6-98a9-4bfa-81b6-1d8579c26fd7">
Release Notes:
- N/A
---------
Co-authored-by: Antonio <antonio@zed.dev>
Richard Feldman
and
Antonio
created
515fd7b
git_hosting_providers: Fix support for GitLab remotes containing subgroups (#19962)
Click to expand commit body
This PR fixes the support for GitLab remote URLs containing subgroups.
Reported in
https://github.com/zed-industries/zed/issues/18012#issuecomment-2446206256.
Release Notes:
- N/A
5dee43b
dart: Extract to zed-extensions/dart repository (#19959)
Click to expand commit body
This PR extracts the Dart extension to the
[zed-extensions/dart](https://github.com/zed-extensions/dart)
repository.
Release Notes:
- N/A
Marshall Bowers
created
c8003c0
Take a mutable context when resolving selections (#19948)
Click to expand commit body
This is a behavior-preserving change, but lays the groundwork for
expanding selections when the cursor lands inside of a "replace" block.
Release Notes:
- N/A
Antonio Scandurra
created
83e2889
Fix notebook cell-height when soft-wrapping lines (#19933)
Closes https://github.com/zed-industries/zed/issues/11987
Release Notes:
- Fixed prettier not reporting failures in the status panel on
formatting and installation errors
Kirill Bulatov
created
0ba40bd
remote dev: Always upload binary in development mode (#19953)
Click to expand commit body
Release Notes:
- N/A
Thorsten Ball
created
f6cd97f
remote dev: Allow canceling language server work in editor (#19946)
Click to expand commit body
Release Notes:
- Added ability to cancel language server work in remote development.
Demo:
https://github.com/user-attachments/assets/c9ca91a5-617f-4886-a458-87c563c5a247
Thorsten Ball
created
774a8bf
inline blame: Fix default setting for inline blame (#19943)
Click to expand commit body
Follow-up to #19759. Fixes the default value. cc @pjtatlow 😄
Release Notes:
- N/A
Thorsten Ball
created
4431ef1
Speed up point translation in the Rope (#19913)
Click to expand commit body
This pull request introduces an index of Unicode codepoints, newlines
and UTF-16 codepoints.
Benchmarks worth a thousand words:
```
push/4096 time: [467.06 µs 470.07 µs 473.24 µs]
thrpt: [8.2543 MiB/s 8.3100 MiB/s 8.3635 MiB/s]
change:
time: [-4.1462% -3.0990% -2.0527%] (p = 0.00 < 0.05)
thrpt: [+2.0957% +3.1981% +4.3255%]
Performance has improved.
Found 3 outliers among 100 measurements (3.00%)
1 (1.00%) low mild
2 (2.00%) high mild
push/65536 time: [1.4650 ms 1.4796 ms 1.4922 ms]
thrpt: [41.885 MiB/s 42.242 MiB/s 42.664 MiB/s]
change:
time: [-3.2871% -2.3489% -1.4555%] (p = 0.00 < 0.05)
thrpt: [+1.4770% +2.4054% +3.3988%]
Performance has improved.
Found 6 outliers among 100 measurements (6.00%)
3 (3.00%) low severe
3 (3.00%) low mild
append/4096 time: [729.00 ns 730.57 ns 732.14 ns]
thrpt: [5.2103 GiB/s 5.2215 GiB/s 5.2327 GiB/s]
change:
time: [-81.884% -81.836% -81.790%] (p = 0.00 < 0.05)
thrpt: [+449.16% +450.53% +452.01%]
Performance has improved.
Found 11 outliers among 100 measurements (11.00%)
3 (3.00%) low mild
6 (6.00%) high mild
2 (2.00%) high severe
append/65536 time: [504.44 ns 505.58 ns 506.77 ns]
thrpt: [120.44 GiB/s 120.72 GiB/s 121.00 GiB/s]
change:
time: [-94.833% -94.807% -94.782%] (p = 0.00 < 0.05)
thrpt: [+1816.3% +1825.8% +1835.5%]
Performance has improved.
Found 4 outliers among 100 measurements (4.00%)
3 (3.00%) high mild
1 (1.00%) high severe
slice/4096 time: [29.661 µs 29.733 µs 29.816 µs]
thrpt: [131.01 MiB/s 131.38 MiB/s 131.70 MiB/s]
change:
time: [-48.833% -48.533% -48.230%] (p = 0.00 < 0.05)
thrpt: [+93.161% +94.298% +95.440%]
Performance has improved.
slice/65536 time: [588.00 µs 590.22 µs 592.17 µs]
thrpt: [105.54 MiB/s 105.89 MiB/s 106.29 MiB/s]
change:
time: [-45.599% -45.347% -45.099%] (p = 0.00 < 0.05)
thrpt: [+82.147% +82.971% +83.821%]
Performance has improved.
Found 2 outliers among 100 measurements (2.00%)
1 (1.00%) low severe
1 (1.00%) high mild
bytes_in_range/4096 time: [3.8630 µs 3.8811 µs 3.8994 µs]
thrpt: [1001.8 MiB/s 1006.5 MiB/s 1011.2 MiB/s]
change:
time: [+0.0600% +0.6000% +1.1833%] (p = 0.03 < 0.05)
thrpt: [-1.1695% -0.5964% -0.0600%]
Change within noise threshold.
bytes_in_range/65536 time: [98.178 µs 98.545 µs 98.931 µs]
thrpt: [631.75 MiB/s 634.23 MiB/s 636.60 MiB/s]
change:
time: [-0.6513% +0.7537% +2.2265%] (p = 0.30 > 0.05)
thrpt: [-2.1780% -0.7481% +0.6555%]
No change in performance detected.
Found 11 outliers among 100 measurements (11.00%)
8 (8.00%) high mild
3 (3.00%) high severe
chars/4096 time: [878.91 ns 879.45 ns 880.06 ns]
thrpt: [4.3346 GiB/s 4.3376 GiB/s 4.3403 GiB/s]
change:
time: [+9.1679% +9.4000% +9.6304%] (p = 0.00 < 0.05)
thrpt: [-8.7844% -8.5923% -8.3979%]
Performance has regressed.
Found 8 outliers among 100 measurements (8.00%)
1 (1.00%) low severe
1 (1.00%) low mild
3 (3.00%) high mild
3 (3.00%) high severe
chars/65536 time: [15.615 µs 15.691 µs 15.757 µs]
thrpt: [3.8735 GiB/s 3.8899 GiB/s 3.9087 GiB/s]
change:
time: [+5.4902% +5.9345% +6.4044%] (p = 0.00 < 0.05)
thrpt: [-6.0190% -5.6021% -5.2045%]
Performance has regressed.
Found 2 outliers among 100 measurements (2.00%)
2 (2.00%) low mild
clip_point/4096 time: [29.677 µs 29.835 µs 30.019 µs]
thrpt: [130.13 MiB/s 130.93 MiB/s 131.63 MiB/s]
change:
time: [-46.306% -45.866% -45.436%] (p = 0.00 < 0.05)
thrpt: [+83.272% +84.728% +86.240%]
Performance has improved.
Found 11 outliers among 100 measurements (11.00%)
3 (3.00%) high mild
8 (8.00%) high severe
clip_point/65536 time: [1.5933 ms 1.6116 ms 1.6311 ms]
thrpt: [38.318 MiB/s 38.782 MiB/s 39.226 MiB/s]
change:
time: [-30.388% -29.598% -28.717%] (p = 0.00 < 0.05)
thrpt: [+40.286% +42.040% +43.653%]
Performance has improved.
Found 3 outliers among 100 measurements (3.00%)
3 (3.00%) high mild
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 7 filtered out; finished in 0.00s
point_to_offset/4096 time: [14.493 µs 14.591 µs 14.707 µs]
thrpt: [265.61 MiB/s 267.72 MiB/s 269.52 MiB/s]
change:
time: [-71.990% -71.787% -71.588%] (p = 0.00 < 0.05)
thrpt: [+251.96% +254.45% +257.01%]
Performance has improved.
Found 9 outliers among 100 measurements (9.00%)
5 (5.00%) high mild
4 (4.00%) high severe
point_to_offset/65536 time: [700.72 µs 713.75 µs 727.26 µs]
thrpt: [85.939 MiB/s 87.566 MiB/s 89.194 MiB/s]
change:
time: [-61.778% -61.015% -60.256%] (p = 0.00 < 0.05)
thrpt: [+151.61% +156.51% +161.63%]
Performance has improved.
```
Calling `Rope::chars` got slightly slower but I don't think it's a big
issue (we don't really call `chars` for an entire `Rope`).
In a future pull request, I want to use the tab index (which we're not
yet using) and the char index to make `TabMap` a lot faster.
Release Notes:
- N/A
Antonio Scandurra
created
b3f0ba1
Implement panic reporting saving and uploads (#19932)
Click to expand commit body
TODO:
- [x] check that the app version is well formatted for zed.dev
Release Notes:
- N/A
---------
Co-authored-by: Trace <violet.white.batt@gmail.com>
Mikayla Maki
and
Trace
created
a5f52f0
Use theme families to refine user themes (#19936)
Click to expand commit body
This PR changes the way we load user themes into the ThemeRegistry.
Rather than directly pass a theme family's themes to
`insert_user_themes`, instead we use the new `refine_theme_family ` and
`ThemeFamily::refine_theme`.
This PR should have net zero change to themes today, but sets up
enabling theme variables. We need to do it this way so each theme has
access to it's family when it is refined.
Release Notes:
- N/A
Nate Butler
created
63524a2
Add missing full-size styles for panes (#19935)
Click to expand commit body
As we don't use scrolling flex layouts directly in panes that often, the
methods that would normally be applied to containers that should fill
the space weren't applied here.
Should help un-stuck #19872's layout issue, but I'm merging this change
separately in case it creates some other layout issue in panes.
Release Notes:
- N/A
Nate Butler
created
90edb71
git_hosting_providers: Clean up tests (#19927)
Click to expand commit body
This PR cleans up the tests for the various Git hosting providers.
These tests had rotted a bit over time, to the point that some of them
weren't even testing what they claimed anymore.
Release Notes:
- N/A
Marshall Bowers
created
518f6b5
Fix missing diagnostic and text highlights after blocks (#19920)
Click to expand commit body
Release Notes:
- Fixed an issue where diagnostic underlines and certain text highlights
were not rendered correctly below block decorations such as the inline
assistant prompt.
Co-authored-by: Antonio <antonio@zed.dev>
Co-authored-by: Richard <richard@zed.dev>
Max Brunsfeld
,
Antonio
, and
Richard
created
fb97e46
Better handle interrupted connections for shared SSH (#19925)
Click to expand commit body
Co-Authored-By: Mikayla <mikayla@zed.dev>
Conrad Irwin
and
Mikayla
created
5b7fa05
Make Git remote URL parsing more robust (#19924)
Click to expand commit body
This PR improves the parsing of Git remote URLs in order to make
features that depend on them more robust.
Previously we were just treating these as plain strings and doing
one-off shotgun parsing to massage them into the right format. This
meant that we weren't accounting for edge cases in URL structure.
One of these cases was HTTPS Git URLs containing a username, which can
arise when using GitHub Enterprise (see
https://github.com/zed-industries/zed/issues/11160).
We now have a `RemoteUrl` typed to represent a parsed Git remote URL and
use the `Url` parser to parse it.
Release Notes:
- Improved the parsing of Git remote URLs to support additional
scenarios.
This is the start of a notebook UI for Zed.
`🔔 Note: This won't be useable yet when it is merged! Read below. 🔔`
This is going to be behind a feature flag so that we can merge this
initial PR and then make follow up PRs. Release notes will be produced
in a future PR.
Minimum checklist for merging this:
* [x] All functionality behind the `notebooks` feature flag (with env
var opt out)
* [x] Open notebook files in the workspace
* [x] Remove the "Open Notebook" button from title bar
* [x] Incorporate text style refinements for cell editors
* [x] Rely on `nbformat` crate for parsing the notebook into our
in-memory format
* [x] Move notebook to a `gpui::List`
* [x] Hook up output rendering
Release Notes:
- N/A
---------
Co-authored-by: Nate Butler <iamnbutler@gmail.com>
Co-authored-by: Thorsten Ball <mrnugget@gmail.com>
Kyle Kelley
,
Nate Butler
, and
Thorsten Ball
created
This a separate PR from https://github.com/zed-industries/zed/pull/19705
so we can revert it more easily if we want it back later.
Release Notes:
- Added "Suggest Edit" button to the assistant panel if
`"enable_experimental_live_diffs": true` is set in the `"assistant"`
section of `settings.json`. This button takes the place of the previous
`/workflow` command, but it is experimental and may change!
---------
Co-authored-by: Nathan Sobo <nathan@zed.dev>
Co-authored-by: Danilo Leal <67129314+danilo-leal@users.noreply.github.com>
Richard Feldman
,
Nathan Sobo
, and
Danilo Leal
created
273cb19
Fix wrong UpdateWorktree chunk size being used in release mode (#19912)
Click to expand commit body
Release Notes:
- Fixed slowness when collaborating
Co-authored-by: Thorsten <thorsten@zed.dev>
Add an edit button to the assistant. This is totally hacked in for now,
just to see how this would feel rendered simply in the UI.

cc @as-cii @danilo-leal
Release Notes:
- N/A
---------
Co-authored-by: Danilo Leal <67129314+danilo-leal@users.noreply.github.com>
Co-authored-by: Richard Feldman <oss@rtfeldman.com>
Nathan Sobo
,
Danilo Leal
, and
Richard Feldman
created
322aa41
Add support for self-hosted GitLab instances for Git permalinks (#19909)
Click to expand commit body
This PR adds support for self-hosted GitLab instances when generating
Git permalinks.
If the `origin` Git remote contains `gitlab` in the URL hostname we will
then attempt to register it as a self-hosted GitLab instance.
A note on this: I don't think relying on specific keywords is going to
be a suitable long-term solution to detection. In reality the
self-hosted instance could be hosted anywhere (e.g.,
`vcs.my-company.com`), so we will ultimately need a way to have the user
indicate which Git provider they are using (perhaps via a setting).
Closes https://github.com/zed-industries/zed/issues/18012.
Release Notes:
- Added support for self-hosted GitLab instances when generating Git
permalinks.
- The instance URL must have `gitlab` somewhere in the host in order to
be recognized.
Previously, when scrolling the diagnostics view with the mouse, we'd get
a spurious horizontal scroll (even if the content was not overflowing
horizontally) due to an error in the widths of the diagnostic blocks.
Release Notes:
- Fixed an issue where the project diagnostics view spuriously allowed
horizontal scrolling by a small amount.
Max Brunsfeld
created
3fed738
Use same logic for skipping single instance check on Linux as on Mac/Win (#19446)
Click to expand commit body
Release Notes:
- Linux: Now skips check which exits with "zed is already running" when
in development mode or when run with `zed-local`, matching the behavior
on Mac and Windows
Co-authored-by: Nathan Sobo <nathan@zed.dev>
Michael Sloan
and
Nathan Sobo
created
5893e85
Ensure shared ssh project propagates buffer changes to all participants (#19907)
Click to expand commit body
Fixed the bug when shared ssh project did not account for client
changing things in their buffers.
Also ensures Prettier formatting workflow works for both ssh project
owner and ssh project clients.
Release Notes:
- N/A
---------
Co-authored-by: Conrad Irwin <conrad@zed.dev>
I took a shot at creating an icon version of the Gleam logo in response
to https://github.com/zed-industries/zed/pull/19529
Release Notes:
- Added an icon for Gleam files.

<img width="231" alt="Screenshot 2024-10-29 at 9 46 33 AM"
src="https://github.com/user-attachments/assets/c957c98f-3da0-4b92-bc21-2a5adca1daa3">
---------
Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
Jen Stehlik
and
Marshall Bowers
created
249c8a4
Remove community content from docs and point to zed.dev (#19895)
Click to expand commit body
The community content now lives on zed.dev, discoverable via the navbar
`resources` menu.
See:
- https://github.com/zed-industries/zed.dev/pull/783
Release Notes:
- N/A
Joseph T. Lyons
created
f919fa9
remote servers: Fix title from alpha to beta (#19889)
Click to expand commit body
Discussed this in Slack yesterday. We use `beta` because that's what we
use in the docs as well.
Release Notes:
- N/A
Thorsten Ball
created
21b5864
vsc menu: Fix issue when switching branch while non-visible worktree is open (#19888)
Click to expand commit body
Fixes a regression introduced in #19755
<img width="935" alt="Screenshot 2024-10-29 at 12 13 04"
src="https://github.com/user-attachments/assets/7699b8da-631d-4932-89a8-bc5d7f2546f1">
Co-Authored-by: Thorsten <thorsten@zed.dev>
Release Notes:
- Fixed an issue where the branch switcher would show an error, when
opening a file outside of the project
Co-authored-by: Thorsten <thorsten@zed.dev>
Bennet Bo Fenner
and
Thorsten
created
6a0bcca
ssh remoting: Hide share button while connecting to project (#19885)
84328c3
Include commit summary in inline Git blame (#19759)
Click to expand commit body
Closes #19758
Release Notes:
- Added feature to show commit summary as part of the inline Git blame
---------
Co-authored-by: Thorsten Ball <mrnugget@gmail.com>
PJ Tatlow
and
Thorsten Ball
created
f7b2b41
ssh remoting: Check nightly version correctly by comparing commit SHA (#19884)
Click to expand commit body
This ensures that we detect if a new nightly version of the remote
server is available.
Previously we would always mark a version as matching if they had the
same semantic version.
However, for nightly versions we also need to check if they have the
same commit SHA.
Co-Authored-by: Thorsten <thorsten@zed.dev>
Release Notes:
- N/A
---------
Co-authored-by: Thorsten <thorsten@zed.dev>
Bennet Bo Fenner
and
Thorsten
created
7a6b643
languages: Enable grammar loading when compiling with test feature (#19881)
Click to expand commit body
This ensures that `cargo tests -p languages` will not fail with a
confusing error message.
Follow up to #19821
We opted to check the `test` feature flag instead of defining a runtime
flag, because we only want to include the `tree-sitter-*` dependencies
in some cases, which is not possible with a runtime flag.
Co-Authored-by: Thorsten <thorsten@zed.dev>
Release Notes:
- N/A
Co-authored-by: Thorsten <thorsten@zed.dev>
Bennet Bo Fenner
and
Thorsten
created
bdb54de
ssh remoting: Show the host's GitHub name in the titlebar when sharing an SSH project (#19844)
Click to expand commit body
The name (GitHub name) of the host was not displayed when sharing an ssh
project.
Previously we assumed that the a collaborator is a host if the
`replica_id` of the collaborator was `0`,
but for ssh project the `replica_id` is actually `1`.
<img width="329" alt="Screenshot 2024-10-28 at 18 16 30"
src="https://github.com/user-attachments/assets/c0151e12-a96f-4f38-aec1-4ed5475a9eaf">
Co-Authored-by: Thorsten <thorsten@zed.dev>
Release Notes:
- N/A
---------
Co-authored-by: Thorsten <thorsten@zed.dev>
Bennet Bo Fenner
and
Thorsten
created
b5c41ee
Future-proof indent guides settings for panels (#19878)
Click to expand commit body
This PR ensures that we do not have to break the indent guides settings
for the project/outline panel. In the future we might want to have a
more granular way to control when to show indent guides, or control
other indent guide properties, like its width.
Release Notes:
- N/A
Release Notes:
- Show invisibles in the editor
Relands #19298
Trying to quantify a performance impact, it doesn't seem to impact much
visible in Instruments or in a micro-benchmark of Editor#layout_lines.
We're still taking a few hundred micro-seconds (+/- a lot) every time.
The ascii file has just ascii, where as the cc file has one control
character per line.
<img width="1055" alt="Screenshot 2024-10-28 at 12 14 53"
src="https://github.com/user-attachments/assets/1c382063-bb19-4e92-bbba-ed5e7c02309f">
<img width="1020" alt="Screenshot 2024-10-28 at 12 15 07"
src="https://github.com/user-attachments/assets/1789f65e-5f83-4c32-be47-7748c62c3703">