Commit log

f9beb25 v0.158.x preview

Joseph T. Lyons created

474e670 Increase monthly free tier spend from 5 dollars to 10 dollars (#19291)

Click to expand commit body
Release Notes:

- N/A

Co-authored-by: Marshall <marshall@zed.dev>
Co-authored-by: Richard <richard@zed.dev>

Antonio Scandurra , Marshall , and Richard created

fe0bcc0 collab: Add Stripe API key to Kubernetes template (#19292)

Click to expand commit body
This PR adds the Stripe API key to the Kubernetes template.

It's optional right now, so we can set the API key when we're ready.

Release Notes:

- N/A

Marshall Bowers created

69abe71 ssh remoting: Treat closed stderr as error (#19289)

Click to expand commit body
Before this change we had a race condition bug: if stderr was closed
before the other two sockets, we wouldn't properly detect when the
server died, and not report or retry anything.

That's because we treated a closed stderr as a non-error.

Technically, it isn't an error (closing a connection is okay!), but
until we have a proper shutdown ceremony between all three processes, we
can treat it as an error, because that lets us to detect when the server
is gone.

On the client-side, we also always react to these errors by
reconnecting. Except when we shutdown: there we do a proper shutdown and
won't error on the proxy exit code.

So, this works, even if I wish there was a better way for the server to
communicate to the proxy that it shutdown properly. But I don't want a
fourth socket.

Release Notes:

- N/A

Thorsten Ball created

9c3d80d collab: Fetch more meters and prices when initializing `StripeBilling` (#19288)

Click to expand commit body
This PR makes it so we fetch more meters and prices when initializing
`StripeBilling`, as we have more than 10 meters defined.

Release Notes:

- N/A

Marshall Bowers created

834d50f Properly open worktrees when cmd-clicking in terminal or on inlay hints (#19280)

Click to expand commit body
* uses the state that's synced, to fetch the language server name
* uses proper, canonicalized path when creating a remote ssh worktree,
otherwise `~/foo/something` stays unexpanded

Release Notes:

- N/A

Kirill Bulatov created

bcdb10b Do not attempt to install prettier if the language change is unrelated (#19283)

Click to expand commit body
Release Notes:

- Fix prettier install being attempted too much

Kirill Bulatov created

598939d collab: Refresh the user's LLM token when their subscription changes (#19281)

Click to expand commit body
This PR makes it so collab will trigger a refresh for a user's LLM token
whenever their subscription changes.

This allows us to proactively push down changes to their subscription.

In order to facilitate this, the Stripe event processing has been moved
from the `api` service to the `collab` service in order to access the
RPC server.

Release Notes:

- N/A

Marshall Bowers created

9d944d0 ssh remote: Restore ControlPersist=no (#19277)

Click to expand commit body
This restores the change from #19193 that I erroneously reverted in
#19234.

I think the bug in #19275 got in my way when testing.

With that bug fixed, the changes in here also work fine.


Release Notes:

- N/A

Thorsten Ball created

7d2628e Make the divider rule color more muted (#19255)

Click to expand commit body
I've been a bit annoyed by the hover divider rule being extremely bright
compared to other divider rules in the UI. This PR updates their color
to use the regular border color from the current theme instead of the
muted (but still pretty bright) text color.

Apologies for the unsolicited PR (and please feel free to close if it
goes against some other plans / designs you already have in place :).

#### Example screenshot before:
<img width="302" alt="Screenshot 2024-10-15 at 23 29 18"
src="https://github.com/user-attachments/assets/7ea22808-8135-4a46-9457-e670225aebaa">

#### Example screenshot after:
<img width="312" alt="Screenshot 2024-10-15 at 23 28 16"
src="https://github.com/user-attachments/assets/63ac0d02-ae6d-4962-84a2-1fdb95519b15">

***

Release Notes:

- Make the divider rule in LSP hovers more muted

Tilman Roeder created

84df3a0 Allow formatting selections via LSP (#18752)

Click to expand commit body
Release Notes:

- Added a new `editor: format selections` action that allows formatting
only the currently selected text via the primary language server.

---------

Co-authored-by: Thorsten Ball <mrnugget@gmail.com>

Ihnat Aŭtuška and Thorsten Ball created

eb76065 ssh remoting: Fix hang when activity channel gets dropped (#19275)

Click to expand commit body
When the SSH command dies or the server, the channel gets dropped and
the heartbeat method went into an infinite loop causing a hang.

Oversight from yesterday. Fixed now.

Release Notes:

- N/A

Thorsten Ball created

84018d7 zig: Bump to v0.3.1 (#19252)

Click to expand commit body
Includes:
- https://github.com/zed-industries/zed/pull/18323
- https://github.com/zed-industries/zed/pull/17488

Peter Tripp created

57c55b3 html: Bump to v0.1.3 (#19251)

Click to expand commit body
Includes:
- https://github.com/zed-industries/zed/pull/18024

Peter Tripp created

a4357c4 elixir: Bump to v0.1.0 (#19250)

Click to expand commit body
Includes:
- https://github.com/zed-industries/zed/pull/18024
- https://github.com/zed-industries/zed/pull/17488
- https://github.com/zed-industries/zed/pull/16985

Peter Tripp created

103665e astro: Bump to v0.1.1 (#19249)

Click to expand commit body
Includes:
- https://github.com/zed-industries/zed/pull/18024

Peter Tripp created

2f960c4 project environment: Log when which env is used (#19270)

Click to expand commit body
This adds more logging for debugging purposes.

Release Notes:

- N/A

Thorsten Ball created

109ebc5 ui: Add Scrollbar component (#18927)

Click to expand commit body
Closes #ISSUE

Release Notes:

- N/A

Piotr Osiewicz created

eddf70b Revert "lsp: Do not notify all language servers on file save" (#19183)

Click to expand commit body
Reverts zed-industries/zed#17756. According to the existing
implementations of the LSP specification, namely
[Helix](https://github.com/helix-editor/helix/blob/a7651f5bf027ec98645d571ab05a685d97e1b772/helix-view/src/document.rs#L1038)
and, if I'm not wrong,
[VSCode](https://github.com/microsoft/vscode-languageserver-node/blob/main/client/src/common/textSynchronization.ts#L580),
`textDocument/didSave` has nothing to do with the watched files and
should be sent to the language servers connected to the buffers even if
the files are not watched by those. As the LSP spec doesn't say anything
about `didSave` being related to the watched files, and the reference
implementation in VSCode seemingly does not filter the notifications
according to those, it seems like this is an incorrect interpretation of
the specification

This also causes issues with language servers. See [Metals
issue](https://github.com/scalameta/metals-zed/issues/28#issuecomment-2410393150)
for example

Closes #18636

Release Notes:

- N/A

Stanislav Alekseev created

1286198 Environment loading fixes (#19144)

Click to expand commit body
Closes #19040
Addresses the problem with annoying error messages on windows (see
comment from SomeoneToIgnore on #18567)

Release Notes:

- Fixed the bug where language servers from PATH would sometimes be
prioritised over the ones from `direnv`
- Stopped running environment loading on windows as it didn't work
anyways due to `SHELL` not being set

Stanislav Alekseev created

a77ec94 vim: Add support for insert button (#19245)

Click to expand commit body
This commit adds support for using the physical insert-button. First
click toggles insert mode and subsequent clicks toggle back and forth
between replace and insert mode.

Closes #19224

Release Notes:

- Added support for using the insert button for vim_mode.

Axel Carlsson created

a56f946 Force astro-language-server to be the primary one for Astro (#19266)

Click to expand commit body
Part of https://github.com/zed-industries/zed/issues/19239

Overall, this hardcoding approach has to stop and Zed better show some
notification/modal that proposes to select a primary language server,
when launching with the language that has no such settings.

Release Notes:

- Fixed Astro LSP interactions

Kirill Bulatov created

f944ebc Add settings to remote servers, use XDG paths on remote, and enable node LSPs (#19176)

Click to expand commit body
Supersedes https://github.com/zed-industries/zed/pull/19166

TODO:
- [x] Update basic zed paths
- [x] update create_state_directory
- [x] Use this with `NodeRuntime`
- [x] Add server settings
- [x] Add an 'open server settings command'
- [x] Make sure it all works


Release Notes:

- Updated the actions `zed::OpenLocalSettings` and `zed::OpenLocalTasks`
to `zed::OpenProjectSettings` and `zed::OpenProjectTasks`.

---------

Co-authored-by: Conrad <conrad@zed.dev>
Co-authored-by: Richard <richard@zed.dev>

Mikayla Maki , Conrad , and Richard created

1dda039 remote_server: local build also need feature `debug-embed` (#19265)

Click to expand commit body
it's waste me one more hour. IMO, this also need for `build_local`

Release Notes:

- N/A

CharlesChen0823 created

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