Commit log

fb4d77c Pin a specific version of `typos` in CI (#15128)

Click to expand commit body
This PR makes it so we pin a specific version of `typos` in CI, rather
than just relying on whatever is already installed or what the latest
version is.

Release Notes:

- N/A

Marshall Bowers created

b14bb6b Make git blame for SSH remote projects (#15106)

Click to expand commit body
This also refactors the BufferStore + WorktreeStore interfaces to make
them cleaner, more fully encapsulating the RPC aspects of their
functionality.

Release Notes:

- N/A

Max Brunsfeld created

8501ae6 Make context and dropdown menus scrollable (#15127)

Click to expand commit body
This PR makes context and dropdown menus scrollable, so that they don't
become totally unusable when they overflow the window.

Release Notes:

- N/A

Marshall Bowers created

4e88a08 chore: Some more dependency bumps (#15125)

Click to expand commit body
Release Notes:

- N/A

Piotr Osiewicz created

659f34b settings_ui: Add UI and buffer font family controls (#15124)

Click to expand commit body
This PR adds settings controls for changing the UI and buffer font
families.

Release Notes:

- N/A

Marshall Bowers created

001376f cpp: Improve syntax highlighting (#13922)

Click to expand commit body
* Added some missing operators, delimeters and keywords
* Highlight destructor, and operator overload as `@function`
* Moved `(field_identifier)` to the top, as it was highlighting methods
as `@property`

There are still some problems with something like `n1::n2::foo(...)`,
`foo` is not properly highlighted as a function

Release Notes:

- Improved C++ syntax highlighting

Fernando Tagawa created

298ca5f Prefer `.map` for conditionals with `else` conditions (#15118)

Click to expand commit body
This PR updates instances where we were using `.when_else` and
`.when_else_some` to use `.map` with a conditional inside.

This allows us to avoid reinventing Rust's syntax for conditionals and
(IMO) makes the code easier to read.

Release Notes:

- N/A

Marshall Bowers created

596ee58 Bump tree-sitter and related core language parser libraries (#14986)

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

To fix issues with code blocks' parsing in Markdown, a
tree-sitter-markdown library update is needed.
But `tree_sitter::language` is used in many places within core Zed,
which forced more library updates.

Release Notes:

- Updated tree-sitter parsers for core languages

---------

Co-authored-by: Max Brunsfeld <max@zed.dev>
Co-authored-by: Piotr Osiewicz <piotr@zed.dev>

Kirill Bulatov , Max Brunsfeld , and Piotr Osiewicz created

fd4a412 Use proper names for sorting path entries (#15116)

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

Release Notes:

- Fixed project panel not showing properly file entries for directories
with dots in their names
([#12470](https://github.com/zed-industries/zed/issues/12470))

Kirill Bulatov created

0297a42 Use US English spelling of "behavior" and "customize" (#15117)

Click to expand commit body
This PR fixes some instances that weren't using US English spellings of
"behavior" and "customize".

Release Notes:

- N/A

Marshall Bowers created

9c9a0bd lsp: Check if "Goto Definition" supported before request (#15111)

Click to expand commit body
This is related to #15023 where we have the running Rubocop LSP that
provides diagnostics and formatting capabilities. Rubocop LSP sends its
capabilities
back to Zed without support for "textDocument/definition" request, Zed
actually does not check that and sends a request to Rubocop that results
in the server error "Unsupported method: textDocument/definition".

The fix here is related to
https://github.com/zed-industries/zed/pull/14666

Release Notes:

- N/A

Vitaly Slobodin created

740c444 settings_ui: Add theme settings controls (#15115)

Click to expand commit body
This PR adds settings controls for the theme settings.

Release Notes:

- N/A

Marshall Bowers created

325e6b9 editor: Improve performance of buffer/project search (#15109)

Click to expand commit body
Fixes #15102
Release Notes:

- Improved performance of project and buffer search when there are many
matches.

Piotr Osiewicz created

65c63de Ensure quick action bar icon buttons are a square (#15092)

Click to expand commit body
As the title says! Also decreased a bit the gap between them so that's
consistent with other similar icon button stacks. I wish they could be
bigger buttons but the icons would need to be refined further for that,
as each has been drawn with a different dimension/bounding-box. Maybe in
the near future :)

---

Release Notes:

- N/A

Danilo Leal created

274e56b settings_ui: Add UI and buffer font weight controls (#15104)

Click to expand commit body
This PR adds settings controls for the UI and buffer font weight
settings.

It also does some work around grouping the settings into related
sections.

Release Notes:

- N/A

Marshall Bowers created

7fb906d vim: Prevent overflowing integer when pushing count digit (#15079)

Click to expand commit body
Minor bug where the command count overflows when enough digits are
entered. This swaps out simple multiplication/addition for their checked
counter parts, falling back to the previous value in case of overflow.

Release Notes:

- N/A

Tom Anderson created

d107d22 Fix cmd-alt-g b for git blame (#15103)

Click to expand commit body
Broken by #14942 as the matching Pane binding for toggle regex now takes
precedence. cmd-alt-x still works for that.

Release Notes:

- N/A

Conrad Irwin created

23dac9c docs: Show how to use the `percent` format to denote cells for the Zed REPL (#15099)

Click to expand commit body
Release Notes:

- N/A

Kyle Kelley created

777ddef Fix contributor-scraping code

Joseph T Lyons created

77a2f24 v0.147.x dev

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