Commit log

2291137 v0.146.x preview

Joseph T Lyons created

846fc67 repl: Show executing status at the bottom of the outputs while waiting for execution to finish (#15096)

Click to expand commit body
![image](https://github.com/user-attachments/assets/3b43f9d9-6456-42e2-a76a-43887d63309e)

Release Notes:

- N/A

Kyle Kelley created

0843da0 repl: Incorporate moving down to next cell in jupytext mode (#15094)

Click to expand commit body
`jupytext_snippets` now returns back both the jupytext snippets and the
`Point` of the next jupytext snippet.

Release Notes:

- N/A

Kyle Kelley created

9e528db repl: Simplify error output formatting (#15088)

Click to expand commit body
Release Notes:

- N/A

Kyle Kelley created

c6d6c44 Revert "Try blade#144 (#15036)" (#15095)

Click to expand commit body
This reverts commit d034d73af9d335f2a97dbc784999d2b94af58a03.

Release Notes:

- N/A

Conrad Irwin created

9de6d31 feature_flags: Add support for flags that aren't auto-enabled for staff (#15093)

Click to expand commit body
This PR adds support for defining feature flags that aren't auto-enabled
for Zed staff.

This will be useful in situations where we want to land a feature behind
a feature flag, but only want to ship it to certain staff members (e.g.,
the members currently working on it) initially.

Release Notes:

- N/A

Marshall Bowers created

d540c95 settings_ui: Add prototype for settings controls (#15090)

Click to expand commit body
This PR adds a prototype for controlling settings via the settings UI.

Still staff-shipped.

Release Notes:

- N/A

Marshall Bowers created

f7d6818 Sublime swap lines (#15089)

Click to expand commit body
Improved SublimeText keymap (Mac & Linux).

- Add bind for MoveLineUp/Down (`ctrl-shift-up` on linux and `cmd-ctrl-up` on MacOS).

Co-authored-by: unixtensor <brandon@rhpidfyre.io>

Peter Tripp and unixtensor created

06d3dc0 Fix rendering issue with vtsls (#15087)

Click to expand commit body
Before:
<img width="697" alt="Screenshot_2024-07-20_at_20 47 41"
src="https://github.com/user-attachments/assets/bc6db18e-77b9-400b-a917-2545269b7d1b">
After:
<img width="707" alt="Screenshot_2024-07-23_at_22 09 27"
src="https://github.com/user-attachments/assets/a0f6ebe5-fba0-4cc1-8d8b-b1982e2adf95">

Release Notes:

- Fixed multiline details provided by vtsls breaking rendering in
autocompletions

Stanislav Alekseev created

64b15d3 Display blocks over the git hunks (#15083)

Click to expand commit body
Before:

![before](https://github.com/user-attachments/assets/614bbafd-f344-4c86-bd62-fff5f1ab143a)

After:

![after](https://github.com/user-attachments/assets/40a72a46-9fc4-4f94-9090-fb389f824a8d)


Release Notes:

- N/A

Kirill Bulatov created

23c5fc1 chore: Use explicit if let instead of for .. in option (#15086)

Click to expand commit body
Fixes one clippy violation from 1.80 (that's due for release tomorrow).

Release Notes:

- N/A

Piotr Osiewicz created

c43eafb Update the test code to newer realities (#15084)

Click to expand commit body
Follow-up of https://github.com/zed-industries/zed/pull/14886

We do not require the branch to be up-to-date with `main` before
merging, and in 4 days some related test code got reworked so that there
were no conflicts and it slipped.

Release Notes:

- N/A

Kirill Bulatov created

62a890f Increase size of icon buttons within the inline editor (#15051)

Click to expand commit body
This PR increases the size of the the icon buttons within the inline
editors, both within the buffer and on the terminal. I also added
properties to make sure they always render as a square, as well as
tweaking the stop icon SVG, adding an alternative sparkle icon that fit
the same grid as the close (14x14) icon, and adding a bit more right
padding on the buffer's case so it doesn't collide with the scrollbar.
End result is that they have a bit of an easier target space area and
normalized sizes.

---

Release Notes:

- N/A

Danilo Leal created

5ad3c6b inline_assistant: Respect tabs when selection first row is not indented (#14886)

Click to expand commit body
When using the inline assistant with a language such as Go that uses
tabs, if the user selects a block of text that is correctly formatted
and where the first line has no indentation, the `suggested_line_indent`
variable ends up with `IndentSize { len: 0, kind: Space }`. That's
because `suggested_line_indent` current relies on
`BufferSnapshot::suggested_indents` suggestion for the first line on the
selection, but since it is already correctly indented, there are no
suggestions and `MultiBufferSnapshot::indent_size_for_line` is used
instead.


https://github.com/zed-industries/zed/blob/2d96bba61fd9e60951ecfcf697707a974475c1b2/crates/assistant/src/inline_assistant.rs#L2124-L2128

In this patch, we also take a look at the rest of the selection and
detect tabs. If one is encountered, we assume that tabs should always be
used. I suppose this isn't perfect, especially if the original file had
a mix of spaces and tabs, however it seems better than the status quo.

I considered using `BufferSnapshot::language_indent_size_at`, but I
imagine tabs should be preserved even when a specific language isn't
being used.

See screenshot below of the original prompt with this patch.

Tests:

* New unit test
* I've also manually tested with a few other cases: selection where all
lines are indented and file that only use spaces.

Release Notes:

- Fixed 'inline_assistant: tabs are overwritten with space characters
when first line in selection has no indentation'
([#14885](https://github.com/zed-industries/zed/issues/14885)).

<img width="942" alt="image"
src="https://github.com/user-attachments/assets/f2c5d7e9-e8bc-400b-bd6f-09e4a89d22c1">

Artur Rodrigues created

e004a57 Improve project panel settings documentation (#15075)

Click to expand commit body
Improved Project Panel Settings Documentation: The documentation for the
project panel settings has been enhanced for clarity and
comprehensiveness, providing better guidance and examples for users.
Default values have been aligned with project_panel_settings.rs.

Release Notes:

- N/A

schdaniel20 created

babf892 Do not show signature help when editor is not focused (#15080)

Click to expand commit body
Show the help again, if it was not dismissed and the editor regains
focus.

Release Notes:

- N/A

Kirill Bulatov created

faf5ab7 Fix a typo in the remote development docs (#15078)

Click to expand commit body
Uses https://github.com/zed-industries/zed/pull/15015 

Release Notes:

- N/A

Kirill Bulatov created

912b396 Adjust model selector popover design (#15056)

Click to expand commit body
This PR mostly refines the model selector popover design by formatting
the models names' and adjusting spacing/alignment in the list-related
items. The list component changes could've been made in a separate PR
but it was also very practical to do it here as I was already
in-context. Either way, I'm happy to separate if that's better!

One thing I couldn't necessarily figure out, though, is why the order
changed (e.g., Anthropic at last ). I wonder if that was because of the
separator logic somehow? I'd love guidance here—new to Rust!

| Before | After |
|--------|--------|
| <img width="228" alt="Screenshot 2024-07-23 at 21 02 33"
src="https://github.com/user-attachments/assets/3372c6c9-08dc-4d71-9265-26f015e2dbc2">
| <img width="228" alt="Screenshot 2024-07-23 at 21 01 45"
src="https://github.com/user-attachments/assets/624cc7db-a3d9-48e3-99d7-c29829501130">
|

---

Release Notes:

- N/A

---------

Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
Co-authored-by: Bennet Bo Fenner <bennet@zed.dev>
Co-authored-by: Antonio <antonio@zed.dev>
Co-authored-by: Antonio Scandurra <me@as-cii.com>

Danilo Leal , Marshall Bowers , Bennet Bo Fenner , Antonio , and Antonio Scandurra created

87d9303 Support Jupytext-style line comments for REPL evaluation ranges (#15073)

Click to expand commit body
This adds support for detecting line comments in the
[Jupytext](https://jupytext.readthedocs.io/) format. When line comments
such as `# %%` is present, invoking `repl: run` will evaluate the code
between these line comments as a unit.

/cc @rgbkrk 

```py
# %%
# This is my first block
print(1)
print(2)

# %%
# This is my second block
print(3)
```

Release Notes:

- N/A

---------

Co-authored-by: Antonio Scandurra <me@as-cii.com>
Co-authored-by: Antonio <antonio@zed.dev>
Co-authored-by: Thorsten <thorsten@zed.dev>
Co-authored-by: Thorsten Ball <mrnugget@gmail.com>

Nathan Sobo , Antonio Scandurra , Antonio , Thorsten , and Thorsten Ball created

af4b980 assistant: Fix issues when configuring different providers (#15072)

Click to expand commit body
Release Notes:

- N/A

---------

Co-authored-by: Antonio Scandurra <me@as-cii.com>

Bennet Bo Fenner and Antonio Scandurra created

ba6c36f repl: Fix repl-over-selection not being Vim-line-wise aware (#15068)

Click to expand commit body
Release Notes:

- N/A

Thorsten Ball created

7644605 docs: Fix default binding for REPL (#15065)

Click to expand commit body
Release Notes:

- N/A

Thorsten Ball created

b4a8f14 linux: Detect shift better (#15013)

Click to expand commit body
Release Notes:

- linux: Fixed typing shortcuts like ctrl-/ on some systems

Conrad Irwin created

c84da37 rpc: Add support for OAEP-based encryption format (#15058)

Click to expand commit body
This PR adds support for a new encryption format for exchanging access
tokens during the authentication flow.

The new format uses Optimal Asymmetric Encryption Padding (OAEP) instead
of PKCS#1 v1.5, which is known to be vulnerable to side-channel attacks.

**Note: We are not yet encrypting access tokens using the new format, as
this is a breaking change between the client and the server. This PR
only adds support for it, and makes it so the client and server can
decrypt either format moving forward.**

This required bumping the RSA key size from 1024 bits to 2048 bits. This
is necessary to be able to encode the access token into the ciphertext
when using OAEP.

This also follows OWASP recommendations:

> If ECC is not available and RSA must be used, then ensure that the key
is at least 2048 bits.
>
> —
[source](https://cheatsheetseries.owasp.org/cheatsheets/Cryptographic_Storage_Cheat_Sheet.html#algorithms)

Release Notes:

- N/A

Marshall Bowers created

edf7f6d Upgrade `rsa` to v0.9.6 (#15055)

Click to expand commit body
This PR upgrades the `rsa` crate to v0.9.6.

The version we were using was rather old, and for something
security-sensitive we should be using a recent version.

No behavioral changes have been made, just updates to account for
changes in the crate's API.

Release Notes:

- N/A

Marshall Bowers created

1307a80 rpc: Add regression tests for encoding/decoding public keys (#15054)

Click to expand commit body
This PR adds some tests to ensure we don't regress in our public key
encoding/decoding capabilities when making changes in this area.

Release Notes:

- N/A

Marshall Bowers created

9d11a6f repl: Detect Conda and Python environments with their own kernel specs (#15047)

Click to expand commit body
Detect kernels in conda and python environments.

Release Notes:

- N/A

Kyle Kelley created

6769e55 Revert "chore: Bump async-tungstenite to 0.23 (and tungstenite to 0.20.1) (#15039)" (#15048)

Click to expand commit body
This reverts commit 4d65f7eea39beeaf9b1952264fe713c0379a0739.

Reverting because it causes auth with collab to break.

Release Notes:

- N/A

Marshall Bowers created

8550480 Update http crate name (#15041)

Click to expand commit body
Release Notes:

- N/A

Mikayla Maki created

d36ebc8 Add global `Fs` instance (#15044)

Click to expand commit body
This PR adds a global `Fs` instance to the app context.

This will make it easier to access the filesystem in some cases instead
of having to thread it around.

Release Notes:

- N/A

Marshall Bowers created

5062bf0 repl: Pad the table rows with a fraction of the line height (#15042)

Click to expand commit body
Compute the final height using the number of rows and the constant
fraction.

Ensures we don't accidentally overlap lines below table output.

<img width="663" alt="image"
src="https://github.com/user-attachments/assets/fe24b08d-2271-4dcc-88c7-8702ba4c68b0">


Release Notes:

- N/A

Kyle Kelley created

4d65f7e chore: Bump async-tungstenite to 0.23 (and tungstenite to 0.20.1) (#15039)

Click to expand commit body
Release Notes:

- N/A

Piotr Osiewicz created

7ae305a Make vim::test_remap less flaky on linux (#15040)

Click to expand commit body
Release Notes:

- N/A

Conrad Irwin created

ba4ff1d chore: Remove clap3 dependency by disabling default features of cbindgen (#15037)

Click to expand commit body
cbindgen pulled that in, but we don't really need it (Plus it pulls in a
dep with an advisory)

Release Notes:

- N/A

---------

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

Piotr Osiewicz and Marshall Bowers created

d034d73 Try blade#144 (#15036)

Click to expand commit body
This pulls in https://github.com/kvark/blade#144 to see if it results in
fewer bad GPU configurations selected

Release Notes:

- linux: Improved graphics card detection

Conrad Irwin created

5f7881f Improve ssh remote error handling and logging (#15035)

Click to expand commit body
Release Notes:

- N/A

Max Brunsfeld created

b0c525a inotify alert (#15027)

Click to expand commit body
Release Notes:

- linux: Show an error and troubleshooting steps for inotify limits
(#10310)

Conrad Irwin created

41a3e78 Don't try to connect to X11/Wayland when headless (#15028)

Click to expand commit body
Release Notes:

- remote development: Stopped logging every 16ms when connected to a
remote server with a badly configured X server.

Conrad Irwin created

5021397 Fix diagnostic popups flickering when moving cursor in the boundaries of the symbol (#14870)

Click to expand commit body
This PR just uses ranges returned by an LSP to work, the subsequent PR
would focus on trying to fall back onto tree-sitter in case of info
hovers. I'm also unsure if I'm supposed to use `local_diagnostic` or
`primary_diagnostic` when both are available
Release Notes:

- Fix diagnostic popups flickering when moving cursor in the boundaries
of the symbol

Before:


https://github.com/user-attachments/assets/4905a7e5-c333-453b-b204-264b3ef79586

After:


https://github.com/user-attachments/assets/c742c424-fb20-450d-8848-baaf1937dd47

Stanislav Alekseev created

b2b9d4c Extend task templates with `shell` and `hide` fields to use custom shells and custom close behavior (#15031)

Kirill Bulatov created

4a43084 Bump `wasmtime` and `wasmtime-wasi` to v19.0.2 (#15033)

Click to expand commit body
This PR bumps `wasmtime` and `wasmtime-wasi` to v19.0.2 for some bug
fixes.

https://github.com/bytecodealliance/wasmtime/releases/tag/v19.0.2

Release Notes:

- N/A

Marshall Bowers created

fa76d8e chore: Bump dependencies (#15029)

Click to expand commit body
Release Notes:


- N/A

Piotr Osiewicz created

5f8e799 repl: Fix a small typo in a variable name (#15030)

Click to expand commit body
This PR fixes a small typo in a variable name.

Release Notes:

- N/A

Marshall Bowers created

38e3182 Handle buffer diff base updates and file renames properly for SSH projects (#14989)

Click to expand commit body
Release Notes:

- N/A

---------

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

Max Brunsfeld and Conrad created

ec093c3 repl: Change keybinding to ctrl-shift-enter for repl::Run (#15026)

Click to expand commit body
... on all platforms.

`ctrl-shift-enter` for the repl, `cmd-enter` for the assistant. People
can override this behavior as they desire in their own keymaps.

Release Notes:

- N/A

Kyle Kelley created

3d1bf09 Allow user to use multiple formatters (#14846)

Click to expand commit body
Fixes #4822
- [x] Release note
- [ ] Surface formatting errors via a toast
- [x] Doc updates
- [x] Have "language-server" accept an optional name of the server.

Release Notes:

- `format` and `format_on_save` now accept an array of formatting
actions to run.
- `language_server` formatter option now accepts the name of a language
server to use (e.g. `{"language_server": {"name: "ruff"}}`); when not
specified, a primary language server is used.

---------

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

Piotr Osiewicz and Thorsten created

53b711c repl: Make the terminal background transparent (#15022)

Click to expand commit body
Keeps the background the same as the output area background by making
the terminal background be `Hsla::transparent_black()`.

Release Notes:

- N/A

---------

Co-authored-by: Nathan Sobo <nathan@zed.dev>
Co-authored-by: Antonio Scandurra <me@as-cii.com>

Kyle Kelley , Nathan Sobo , and Antonio Scandurra created

d0f52e9 assistant: Overhaul provider infrastructure (#14929)

Click to expand commit body
<img width="624" alt="image"
src="https://github.com/user-attachments/assets/f492b0bd-14c3-49e2-b2ff-dc78e52b0815">

- [x] Correctly set custom model token count
- [x] How to count tokens for Gemini models?
- [x] Feature flag zed.dev provider
- [x] Figure out how to configure custom models
- [ ] Update docs

Release Notes:

- Added support for quickly switching between multiple language model
providers in the assistant panel

---------

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

Bennet Bo Fenner and Antonio created

17ef9a3 zed: Add ability to restore last session w/ multiple windows (#14965)

Click to expand commit body
This adds the ability for Zed to restore multiple windows after
restarting. It's now the default behavior.

Release Notes:

- Added ability to restore all windows that were open when Zed was quit.
Previously only the last used workspace was restored. This is now the
default behavior. To get back the old behavior, add the following to
your settings: `{"restore_on_startup": "last_workspace"}` (Part of
[#4985](https://github.com/zed-industries/zed/issues/4985) and
[#4683](https://github.com/zed-industries/zed/issues/4683))

Demo:



https://github.com/user-attachments/assets/57a375ec-0c6a-4724-97c4-3fea8f18bc2d

---------

Co-authored-by: Nathan <nathan@zed.dev>

Thorsten Ball and Nathan created

53f828d Avoid inserting extra newlines when evaluating code (#15018)

Click to expand commit body
When the evaluation range ends at the start of a line, back it up to the
end of the previous line. This avoids inserting extra newlines below the
evaluation range when they already exist.

Release Notes:

- N/A

Co-authored-by: Nathan <nathan@zed.dev>

Antonio Scandurra and Nathan created