Commit log

182230a Fix C++ configuration documentation (#19258)

Click to expand commit body
- Update the binary JSON object
- Add .clangd configuration file summary


![image](https://github.com/user-attachments/assets/5c4cfd26-3cd8-4d12-96fc-483596c74287)

Release Notes:

- N/A

Alvaro Gaona created

b64919a ssh: Refine the modal UI (#19256)

Click to expand commit body
This PR refines the SSH modal UI, adjusting spacing and alignment. Via
these changes, I'm also introducing the ability for the `empty_message`
on the `List` component to receive not just a string but any element.
The custom way in which the SSH modal was designed made it feel like
this was needed for proper spacing.

<img width="700" alt="Screenshot 2024-10-16 at 1 20 54 AM"
src="https://github.com/user-attachments/assets/f2e0586b-4c9f-4497-b4cb-e90c8157512b">


Release Notes:

- N/A

Danilo Leal created

b752548 storybook: Load GPUI with default features (#19253)

Click to expand commit body
This PR makes it so the Storybook loads GPUI with the default features
enabled.

This fixes a panic that would occur when trying to run any of the
stories.

Release Notes:

- N/A

Marshall Bowers created

d63a496 Glob documentation (#18789)

Click to expand commit body
Leaving this unlinked for now because I'm not sure where it belongs.
Plan to write up something for regexes too.

Peter Tripp created

c00f2d8 Add Diff language (#19129)

Peter Tripp created

973143f Fix variable name typo (#19244)

Click to expand commit body
Release Notes:

- N/A

Joseph T. Lyons created

d806df9 Ensure issues without core labels have triage labels (#19243)

Click to expand commit body
Sometimes, issues are created outside of issue templates (which we don't
prefer, but we can't prevent). This updates our top-ranking issues
script such that it will add `triage` and `admin read` labels to any
issue that is missing a core label, so that we don't miss the issues
when doing the next triage.

Release Notes:

- N/A

Joseph T. Lyons created

b682fc6 Use multi-line regex for '\s' (#19241)

Peter Tripp created

5445f89 ruby: Move Ruby extension to zed-extensions/ruby repo (#19098)

Peter Tripp created

56163b1 Add ability to reload a file (#18395)

Click to expand commit body
Closes #13212

Release Notes:

- Added reload command
- vim: Added `:e[dit]`, `:e[dit]!` which calls reload

Peter Schilling created

6951768 project_search: Fix message displayed when no results are found (#19108)

Click to expand commit body
when no result found, always display `Search all files`, which is
confused.

Release Notes:

- Fixed an issue where the project search would sometimes show "Search
all files" when there were no results.

---------

Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>

CharlesChen0823 and Marshall Bowers created

e3c6ba4 ssh remote: Revert #19193 and treat killed proxy as non-zero (#19234)

Click to expand commit body
This does two things.

Important one: it reverts #19193, which lead to our whole process
handling breaking. When the `proxy` process was killed, it apparently
didn't close the stdout/stderr anymore, which meant we would not detect
when it died. (Watching its `status()` in the io loop also didn't work!)

We should figure out how to keep our process handling working before we
make this change in #19193, which sounds reasonable.

Second, less important thing: I think we should treat the process being
killed from a signal as non-zero, as an error.

Release Notes:

- N/A

Thorsten Ball created

8924b3f Fix block cursor obscuring placeholder text and editor text in some cases (#18114)

thataboy created

1732441 Use python 3.13 (#19225)

Click to expand commit body
Release Notes:

- N/A

Joseph T. Lyons created

096d37a Remove outdated requirements.txt (#19223)

Click to expand commit body
Release Notes:

- N/A

Joseph T. Lyons created

ba69f48 docs: Add Helm extension docs (#19095)

Click to expand commit body
Merge after this:
- https://github.com/zed-industries/extensions/pull/746

Release Notes:

- N/A

---------

Co-authored-by: Peter Tripp <peter@zed.dev>
Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>

cabrinha , Peter Tripp , and Marshall Bowers created

0eb6bfd ssh remoting: Treat other message as heartbeat (#19219)

Click to expand commit body
This improves the heartbeat detection logic. We now treat any other
incoming message from the ssh remote server
as a heartbeat message, meaning that we can detect re-connects earlier.

It also changes the connection handling to await futures detached.

Co-Authored-by: Thorsten <thorsten@zed.dev>

Release Notes:

- N/A

---------

Co-authored-by: Thorsten <thorsten@zed.dev>
Co-authored-by: Antonio <antonio@zed.dev>

Bennet Bo Fenner , Thorsten , and Antonio created

4fa75a7 gpui: Improve performance of laying out long lines (#19215)

Click to expand commit body
TL;DR: Another O(n^2) strikes.

In #19194 we received a report about a 7Mb JSON file that Zed struggles
with. Naturally this file showcased a O(n^2) in line layout; this file
has one long line.

During line layout for Mac we have to convert between UTF-16 and UTF-8
indices in the string, as CoreText works with UTF-16 and Rust strings
are UTF-8. The problem stemmed from the fact that we were re-seeking our
string converter on each glyph, which boils down to: we were reparsing
[0..curr_string_position] bytes up to full length of the string, which
is the O(n^2) in question. This PR changes this behaviour to reuse the
Index Converter if the position we're seeking to is not yet reached.
Basically, we're treating the converter as forward iterator and we try
to seek with the same iterator, if possible.

Where previously you could not even open the file in OP (within
reasonable time frame, I waited for 40 seconds before giving up), now
you can do it in.. slightly over a second. The best part is: the
experience is still not ideal. Typing in the buffer is sluggish. Still,
this is a start.


Release Notes:

- Mac: Improved performance with very long lines

Piotr Osiewicz created

397e4be ssh remoting: Forward LSP logs to client (#19212)

Click to expand commit body
Release Notes:

- N/A

---------

Co-authored-by: Bennet Bo Fenner <bennet@zed.dev>

Thorsten Ball and Bennet Bo Fenner created

db7417f Rework file picker for SSH modal (#19020)

Click to expand commit body
This PR changes the SSH modal design so its more keyboard
navigation-friendly and adds the server nickname feature.

Release Notes:

- N/A

---------

Co-authored-by: Danilo <danilo@zed.dev>
Co-authored-by: Danilo Leal <67129314+danilo-leal@users.noreply.github.com>

Piotr Osiewicz , Danilo , and Danilo Leal created

be7b24f ssh remote: Shutdown SSH & server process correctly on app quit (#19210)

Click to expand commit body
Release Notes:

- N/A

Co-authored-by: Bennet <bennet@zed.dev>

Thorsten Ball and Bennet created

62de03f tab: Fix copy wrong relative path for tab (#19206)

Click to expand commit body
Closes #19204 

Release Notes:

- Fixed relative paths copied incorrectly from tabs
([#19204](https://github.com/zed-industries/zed/issues/19204))

CharlesChen0823 created

41ba417 gpui: Fix crash caused by ownership leak (#19185)

Click to expand commit body
- Closes #18811

Release Notes:

- N/A

wannacu created

6e2869a Prevent deadlock when create a new meter/price on Stripe (#19196)

Click to expand commit body
This also puts the entire state of `StripeBilling` behind a `RwLock`.
When fetching the existing prices and meters, or when inserting new
ones, we acquire a write lock and hold it until the Stripe request
completes. This prevents two concurrent calls to `get_or_insert_price`
from inserting the same data twice.

Creating a new meter/price is unusual, so in practice we'll acquire a
read lock most of the time.

/cc @rtfeldman @maxdeviant 

Release Notes:

- N/A

Antonio Scandurra created

6986f08 supermaven: Fix crash when editing non-ASCII text (#19153)

Click to expand commit body
Closes #19051
Closes #19182


#### How to reproduce this crash:
1. Open any file and input some ASCII characters.
2. Replace these characters with `你好`.
3. Press `backspace`.
4. Crash.



https://github.com/user-attachments/assets/ea5c5340-29a5-42c8-98c5-6e60770445a4



The issue lies with the `prefix_offset` introduced in #18858. After the
buffer is modified, this value is not always valid and may fall within a
`char boundary`, which results in a crash.



Release Notes:

- Fixed Supermaven crashing on deleting non-ASCII text

张小白 created

3ff52a8 windows: Fix opening wrong path when clicking path in the terminal view (#18726)

Click to expand commit body
Closes #18550

This PR removes the prefix `\\?\`.

https://github.com/user-attachments/assets/f4f4333c-5d87-4f0f-b12c-fb2108703b6a


Release Notes:

- N/A

张小白 created

7d5fe66 remote: Disable ControlPersist for master ssh connection (#19193)

Click to expand commit body
remote: Disable ControlPersist for master ssh connection

`ControlPersist=yes` combined with `ControlMaster=yes` silently forces
`ForkAfterAuthentication=yes` (even when the user has explicitly set it
to `no` - reported upstream in [0]) - and the latter makes the ssh
subprocess disappear, which makes us think that the connection died

(This is only an issue for people who have `ControlPersist=yes` in their
`ssh_config`, and perhaps the answer is "if that option breaks things,
don't use that option?" - but it's an option that makes sense _most_ of
the time, it's just in this edge-case of "creating an ssh connection
with -N and expecting the process to stay in the foreground" where it
_must_ be set to no)

I think the alternative approach is to tell people "if you want to use
persistent connections, have a separate ~/.ssh/config entry for
servername (to ssh into) and servername-no-persist (to zed into)", which
is possible, but ugh. Kind of a messy situation >.<


Tests:

- Before: Connections to my server result in "Failed to connect: ." (The
error message is attempting to show stderr, but stderr is empty)

- After: Connections to my server work reliably


[0] https://bugzilla.mindrot.org/show_bug.cgi?id=3743


Release Notes:

- N/A

Shish created

792f583 Revert "chore: Bump taffy to 0.5.2 (#18729)" (#19189)

Click to expand commit body
This reverts commit a99750fd35ef4f44409f474228285b1842c1b7d3.

@huacnlee found that commit to have a bad impact on perf and triaged it
for us in
https://github.com/zed-industries/zed/pull/18729#issuecomment-2410445980
Closes #ISSUE

Release Notes:

- N/A

Piotr Osiewicz created

6ec00cd ssh remoting: Restore SSH projects when reopening Zed (#19188)

Click to expand commit body
Release Notes:

- N/A

---------

Co-authored-by: Bennet <bennet@zed.dev>

Thorsten Ball and Bennet created

71a878a remote ssh: Fix asset embedding in cross-compilation (#19180)

Click to expand commit body
This fixes the panic from the settings file not being embedded.


Release Notes:

- N/A

---------

Co-authored-by: Bennet <bennet@zed.dev>

Thorsten Ball and Bennet created

f2337bb Redirect to checkout page when payment is required (#19179)

Click to expand commit body
Previously, we were redirecting to a non-existant page.

Release Notes:

- N/A

Antonio Scandurra created

fcf9e54 project: Fix content not displaying when selecting a folder in Windows (#18946)

Click to expand commit body
- Closes #16998

This PR resolves issues with the /file and /diagnostics commands in the
assistant panel, which previously failed to display the contents of a
directory when searching for a folder instead of using the arrow button.

- Changed the format in `project.rs` (located at
`crates/project/src/project.rs`) to use `std::path::MAIN_SEPARATOR` for
cross-platform compatibility, which resolves errors encountered on
Windows that originally used the format `format!("{}/", ...)`.


Release Notes:

- N/A

Lilith Iris created

7dc0691 Improve macOS build guide (#19172)

Click to expand commit body
- `mold` moved to `sold` long time ago.
  And https://github.com/bluewhalesystems/sold/issues/43...
- And add a step for accepting xcodebuild license

Signed-off-by: Xavier Lau <x@acg.box>

Xavier Lau created

5b207ba vim: Add some "z" keybindings for scrolling (#18928)

Click to expand commit body
Release Notes:

- vim: Added a few "z" keybindings for scrolling

Frank Sheiness created

325f106 Add vim::Search command option for non-regex search (#19177)

Click to expand commit body
Similar to e2647025ac833856961a1234ed2bd0202f9c4746, this adds a `regex`
option to `vim::Search` command to allow disabling regex search.

Release Notes:

- Added `regex` option to `vim::Search` command to allow disabling regex
search by default in the keymap. Example usage:
  ```yaml
  {
    "context": "VimControl && !menu",
    "bindings": {
      "/": ["vim::Search", { "regex": false }],
    }
  }
  ```

Ömer Sinan Ağacan created

ec5d6e9 Make `danger` to output less false-positives (#19151)

Kirill Bulatov created

54683ff docs: Fix typo in environment documentation (#19164)

Click to expand commit body
Update incorrect spelling of Raycast in environment.md

Bolaji Olajide created

cdead57 docs: Formatter arguments, document `{buffer_path}` usage (#19156)

Peter Tripp created

39468de Return back to history-based tabs activation on close (#19150)

Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/19036

Alters https://github.com/zed-industries/zed/pull/18168 and moves its
change behind a settings flag, restoring the previous behavior.

Release Notes:

- Fixed tab closing not respecting history. Use `tabs.activate_on_close
= neighbour` settings to activate near tabs instead.

Kirill Bulatov created

6491148 Fail on warnings during CI builds (#19149)

Click to expand commit body
Forbid things like
https://github.com/zed-industries/zed/pull/19144#issuecomment-2408871788

Release Notes:

- N/A

Kirill Bulatov created

0b10fd5 cpp: Better icon support (#19146)

Peter Tripp created

74cc908 ci: Give names to all github actions (#19080)

Shish created

875c0cb Bytes 1.7.2 merge fix (#19145)

Peter Tripp created

aefc559 Improve auto-detection via shebang of TypeScript, JavaScript and Shell Script (#19114)

Peter Tripp created

bebe24e Add remote server cross compilation (#19136)

Click to expand commit body
This will allow us to compile debug builds of the remote-server for a
different architecture than the one we are developing on.

This also adds a CI step for building our remote server with minimal
dependencies.

Release Notes:

- N/A

Mikayla Maki created

f73a076 Update Rust crate bytes to v1.7.2 (#18656)

Click to expand commit body
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [bytes](https://redirect.github.com/tokio-rs/bytes) |
workspace.dependencies | patch | `1.7.1` -> `1.7.2` |

---

### Release Notes

<details>
<summary>tokio-rs/bytes (bytes)</summary>

###
[`v1.7.2`](https://redirect.github.com/tokio-rs/bytes/blob/HEAD/CHANGELOG.md#172-September-17-2024)

[Compare
Source](https://redirect.github.com/tokio-rs/bytes/compare/v1.7.1...v1.7.2)

##### Fixed

- Fix default impl of `Buf::{get_int, get_int_le}`
([#&#8203;732](https://redirect.github.com/tokio-rs/bytes/issues/732))

##### Documented

- Fix double spaces in comments and doc comments
([#&#8203;731](https://redirect.github.com/tokio-rs/bytes/issues/731))

##### Internal changes

- Ensure BytesMut::advance reduces capacity
([#&#8203;728](https://redirect.github.com/tokio-rs/bytes/issues/728))

</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:eyJjcmVhdGVkSW5WZXIiOiIzOC45Ny4wIiwidXBkYXRlZEluVmVyIjoiMzguMTE1LjEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

renovate[bot] and renovate[bot] created

b2e844f Fix an issue with using non-reusable body types with redirects (#19134)

Click to expand commit body
Closes #19131
Closes #19039

fixes the broken auto-updater.

I had the bright idea of using streams as the most common unit of data
transfer. Unfortunately, streams are not re-usable. So HTTP redirects
that have a stream body (like our remote server and auto update
downloads), don't redirect, as they can't reuse the stream. This PR
fixes the problem and simplifies the AsyncBody implementation now that
we're not using Isahc.

Release Notes:

- N/A

Mikayla Maki created

9e14fd9 docs: Fix missing parenthesis in the Terminal: Detect Virtual Environments section of configuring-zed.md (#19127)

Click to expand commit body
Release Notes:

- N/A

Lorenzo Cinque created

c85a3cc Switch from OpenSSL to Rustls (#19104)

Click to expand commit body
This PR also includes a downgrade of our async_tungstenite version to
0.24

Release Notes:

- N/A

Mikayla Maki created

22ac178 Restore HTTP client transition, but use reqwest everywhere (#19055)

Click to expand commit body
Release Notes:

- N/A

Mikayla Maki created