Commit log

0c74f4e v0.151.x stable

Joseph T Lyons created

7c0ad81 Improve outline panel performance (#17183)

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

* moved search results highlight calculation into the background thread,
with highlight-less representation as a fallback
* show only a part of the line per search result, stop uniting them into
a single line if possible, always trim left trailing whitespaces
* highlight results in batches
* better cache all search result data, related to rendering
* add test infra and fix folding-related issues
* improve entry displays when multi buffer has a buffer search (find
references one has)
* fix cloud notes not showing search matches

Release Notes:

- Improved outline panel performance

Kirill Bulatov created

cd0841c zed 0.151.1

Peter Tripp created

f44f5c5 Ollama max_tokens settings (#17025)

Click to expand commit body
- Support `available_models` for Ollama
- Clamp default max tokens (context length) to 16384.
- Add documentation for ollama context configuration.

Peter Tripp created

670b3b9 file_finder: Fix crash in new_path_prompt (#16991)

Click to expand commit body
Closes #16919 

repro step:
  - add two worktree
  - modify settings `"use_system_path_prompts" : false`
  - `ctrl-n` create new file, typing any chars.
  - `ctrl-s` save file
  - typing any char, crashed.

Release Notes:

- Fixed crashed when setting `"use_system_path_prompts": false` or in
remote project with two or more worktree.

CharlesChen0823 created

75da9af v0.151.x preview

Joseph T Lyons created

c5f43ee Forbid signature popovers when completion menu is open (#17009)

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

Release Notes:

- Fixed signature info popovers appearing when completion menu is open

Kirill Bulatov created

98d74f9 Use a proper settings location for yaml (#17006)

Click to expand commit body
Release Notes:

- N/A

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

Kirill Bulatov and Marshall Bowers created

7e1eac6 docs: Update correct button for accessing context history (#17008)

Click to expand commit body
The button in the top-left corner of the Assistant panel is the history
button, not the hamburger button.

Bin Wang created

950e698 extensions_ui: Truncate long text with an ellipsis (#17007)

Click to expand commit body
This PR updates the extensions UI to truncate long text with an
ellipsis.

| Before | After |
|
--------------------------------------------------------------------------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------------------------------------------------------------------------
|
| <img width="538" alt="Screenshot 2024-08-28 at 10 25 29 AM"
src="https://github.com/user-attachments/assets/98fda7b9-aac0-4c1b-903b-0d72070a166b">
| <img width="538" alt="Screenshot 2024-08-28 at 10 21 42 AM"
src="https://github.com/user-attachments/assets/948b1e66-3822-4c52-8483-522c28f393c7">
|

Release Notes:

- Improved the truncation of long author lists and descriptions in the
extensions view.

Marshall Bowers created

ace8734 Revert "extension: Define capabilities in the extension manifest (#16953)" (#17003)

Click to expand commit body
This PR reverts the addition of extension capabilities from #16953.

While these may end up being useful at some point, after some discussion
they don't seem like the exact fit for what we're looking to do right
now.

This reverts commit 8ec36f1e2bdea337236048170a356ec034eaa046.

Release Notes:

- N/A

Marshall Bowers created

7bf8d73 docs: Add section on updating extensions (#17000)

Click to expand commit body
This PR adds a section to the extension docs on how to update an
extension.

Moving this over from the docs that used to live in the extensions repo
so that we can have them all in one place.

Release Notes:

- N/A

Marshall Bowers created

4e67d33 project search: Fix filtering when buffers are open (#16997)

Click to expand commit body
This fixes a little bug that has snuck in #16923

Release Notes:

- N/A

Thorsten Ball created

a5b82b2 project_panel: Add support for copy/paste between different worktrees (#15396)

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

Release Notes:

- Added a way to copy/cut-paste between different worktrees ([#5362](https://github.com/zed-industries/zed/issues/5362))

CharlesChen0823 created

81eb594 elixir: Add support for `property` macro in runnables (#16985)

Click to expand commit body
Closes #16984 

Release Notes:

- Added support for `property` tests in runnables for Elixir ([#16984](https://github.com/zed-industries/zed/issues/16984))

Christoph Schmatzler created

4ec1f29 chore: Make some of the deps of gpui optional (#16986)

Click to expand commit body
Minor bookkeeping, that takes down dep count of gpui from 454 to 430 for
me.

Release Notes:

- N/A

Piotr Osiewicz created

22a791d Bump collab min version to 0.134 (#16918)

Click to expand commit body
0.05% of requests use a version less than this today; and it lets us get
  rid of a bunch of versioning we no longer need.

Release Notes:

- N/A

Conrad Irwin created

cfc3b7d vim: Retain search direction upon search submit (#16754)

Click to expand commit body
Before, when using `?` and `#` for backwards search it would initially
search for the previous match, but upon subsequent inputs to `n` and
`N`, `n` is always treated as "forward" and `N` is always treated as
"backward", instead of continuing the search direction.

now, if i use `?` or `#` for backward search, `n` will go to the
previous selection, and `N` will go to the next. Functionality stays the
same for `/` and `*`.

Release Notes:

- vim: Fixed `n` direction after searching backwards

---------

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>

fletcher gornick and Conrad Irwin created

bef575e Simplify project syncing (#16976)

Click to expand commit body
As part of allowing LSPs to run remotely, we need to move LSP stuff
out of project. To do that we'd like to simplify the concurrency story
on project syncing.

Co-Authored-By: Max <max@zed.dev>

Release Notes:

- N/A

Co-authored-by: Max <max@zed.dev>

Conrad Irwin and Max created

7571b1d docs: Fix how Tailwind CSS is spelled (#16975)

Click to expand commit body
Super pedantic (😬) but just a tiny PR to fix it: not "TailWind" or
"TailwindCSS" (without spaces).

---

Release Notes:

- N/A

Danilo Leal created

f39805d docs: Add redirect from `/developing-zed` to `/development` (#16974)

Click to expand commit body
This PR adds a redirect from the old `/docs/developing-zed` page to the
new `/docs/development` page.

Fixes https://github.com/zed-industries/zed/issues/16785.

Release Notes:

- N/A

Marshall Bowers created

98a3bda docs: Fix link to prompting guide (#16973)

Click to expand commit body
This PR fixes the link to the prompting guide, since it was broken in
048be73b22922af8633cf68cd6a12cd46893ea0d and
4e0124010dcedcade05b1a82a62cda4400a11294.

Release Notes:

- N/A

Marshall Bowers created

4e01240 Fix link (again)

Joseph T Lyons created

048be73 Fix bad link

Joseph T Lyons created

8643b11 Fix search sorting (#16970)

Click to expand commit body
Ensures we sort paths in search the same as we do in panels.

Ideally we'd store things like this in the worktree, but the sort order
depends
on file vs directory, and callers generally don't know which they're
asking for.

Release Notes:

- N/A

Conrad Irwin created

442ff94 Further document repl outputs (#16962)

Click to expand commit body
Adding more docs to the repl outputs modules.

Release Notes:

- N/A

Kyle Kelley created

37c7c99 Add pane activation bindings for Sublime Text keymap (#16930)

Click to expand commit body
- Improved Sublime keymap: Support for switching to individual tabs with `cmd-1` thru `cmd-9` (MacOS) and `alt-1` thru `alt-9` (Linux) matching Sublime behavior.

Junwoo created

f633b12 Fix git commit popup message bracket (#16279)

dovakin0007 created

98e09f2 Use JSONC for pyrightconfig.json (#16967)

Peter Tripp created

1d868e1 project search: Render results in batches (#16960)

Click to expand commit body
This improves performance, because we don't render after every single
match/range that was added to the results.

I think for my example search it's twice as fast?

## Numbers

Recorded in debug mode (because it's 6:30pm and my poor computer has
spun its fan enough for today and also because you can see the change of
the effect more in debug mode), rendering `<` searched in `zed.dev`
repo:

- Before: `14.59558225s`
- After: `2.604320875s`




## Videos
Before (recorded in release mode):



https://github.com/user-attachments/assets/909260fa-3e69-49ab-8786-dd384e2a27ee

After (recorded in release mode):



https://github.com/user-attachments/assets/fc8a85d3-e575-470f-b59c-16a6df8b3f80
## Release Notes

Release Notes:

- Improved performance of rendering project-search results in the
multi-buffer after finding them.

Thorsten Ball created

ff26abd nix: Fix gpu-lib/wayland binary patching on nix package (#16958)

Click to expand commit body
Also, includes some cleanup -- adds missing flake-compat input and
aligns the nix build module with how nixpkgs does it.

Release Notes:

- Fixed an issue on NixOS package where the wrong binaries were being
patched, leading to missing Wayland libs when launching Zed

jvmncs created

1f0b7d4 extensions: Upgrade `zed_extension_api` to v0.1.0 (#16955)

Click to expand commit body
This PR updates the `zed_extension_api` to v0.1.0 for the extensions
that live in this repo.

The changes in that version of additive, so none of the extensions need
to change their usage in order to upgrade.

Release Notes:

- N/A

Marshall Bowers created

b2f3f76 project search: Stream search results to improve TTFB (#16923)

Click to expand commit body
This is a prototype change to improve latency of local project searches.
It refactors the matcher to keep paths "in-order" so that we don't need
to wait for all matching files to display the first result.

On a test (searching for `<` in zed.dev) it changes the time until first
result from about 2s to about 50ms. The tail latency seems to increase
slightly (from 5s to 7s) so we may want to do more tuning before hitting
merge.

Release Notes:

- reduces latency for first project search result

---------

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

Conrad Irwin , Thorsten Ball , Antonio , and Thorsten created

dc889ca docs: Reference latest version of `zed_extension_api` (#16954)

Click to expand commit body
This PR updates the extension docs to reference the latest version of
the `zed_extension_api`.

Release Notes:

- N/A

Marshall Bowers created

8ec36f1 extension: Define capabilities in the extension manifest (#16953)

Click to expand commit body
This PR adds an initial notion of extension capabilities.

Capabilities are used to express the operations an extension is capable
of doing. This will provide further insights into what an extension can
do, as well as provide the ability to grant or deny the set of
capabilities.

Capabilities are defined in the `capabilities` field in the extension
manifest. This field contains an array of capabilities.

Each capability has a `kind` to denote the known capability it
corresponds to. Individual capabilities may have additional fields,
based on the `kind`.

Here's an example of some capabilities:

```toml
capabilities = [
    { kind = "download-file", host = "github.com", path_prefix = "owner/repo" },
    { kind = "npm:install", package = "@vue/language-server" },
]
```

In order to avoid a breaking change, the `capabilities` field is
currently optional and defaults to an empty array. This will allow us to
add support for extensions to define capabilities before we start
enforcing them.

Release Notes:

- N/A

Marshall Bowers created

ad43bbb inline completions: Add action to toggle inline completions (#16947)

Click to expand commit body
This adds a new action: `editor: toggle inline completions`.

It allows users to toggle inline completions on/off for the current
buffer.

That toggling is not persistent and when the editor is closed, it's
gone.

That makes it easy to disable inline completions for a single text
buffer, for example, even if you want them on for other buffers.

When toggling on/off, the toggling also overwrites any language
settings. So if you have inline completions disabled for Go buffers,
toggling them on takes precedence over those settings.


Release Notes:

- Added a new editor action to allow toggling inline completions
(Copilot, Supermaven) on and off for the current buffer, taking
precedence over any settings.

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

Thorsten Ball and Antonio created

5586397 Preserve selected entry in file_finder (#13452)

Click to expand commit body
Closes #11737

If the query has not changed and entry is still in the matches list keep
it selected


Release Notes:

- Fixes file finder jumping during background updates ([#11737](https://github.com/zed-industries/zed/issues/11737))

kshokhin created

60af9dd Add `.SystemUIFont` to font list (#15340)

Click to expand commit body
As discussed in #15326, this font name should be included in the font
list since `settings.json` indicates that one can set the font to
`.SystemUIFont`.

Release Notes:

- N/A

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

张小白 and Marshall Bowers created

d3d0c04 Support extended keys on Mac (insert, f13-f19) (#16921)

Click to expand commit body
- Improved support for extended keyboards on Mac (F13-F19, Insert)

Peter Tripp created

2b08e2a docs: Fix broken links (#16943)

Click to expand commit body
This PR fixes some broken links in the docs.

All internal links within the docs should be relative links so that
mdBook can resolve them to another page and generate the appropriate
URL.

Release Notes:

- N/A

Marshall Bowers created

226ec9d gpui: Fix performance of app menu opening with large # of windows (#16939)

Click to expand commit body
This is officially my weirdest performance fix to date; With large # of
windows opening app menu could take a lot of time (we're talking few
seconds with 9 windows, a minute with 10 windows). The fix is to make
one method pub(crate).. What?

<img width="981" alt="image"
src="https://github.com/user-attachments/assets/83b26154-0acd-43ef-84b3-4b85cde36120">

We were spending most of the time on clear_pending_keystrokes, which -
funnily enough - called itself recursively. It turned out we have two
methods; `AppContext::clear_pending_keystrokes` and
WindowContext::clear_pending_keystrokes. The former calls the latter,
but - due to the fact that `WindowContext::clear_pending_keystrokes` is
private and `WindowContext` derefs to `AppContext` - `AppContext` one
ended up actually calling itself! The fix is plain and simple - marking
WindowContext one as pub(crate), so that it gets picked up as a method
to call over `AppContext::clear_pending_keystrokes`.

Closes #16895



Release Notes:

- Fixed app menu performance slowdowns when there are multiple windows
open.

Piotr Osiewicz created

8ec680c project search: Increase perf up to 10x by batching `git status` calls (#16936)

Click to expand commit body
***Update**: after rebasing on top of
https://github.com/zed-industries/zed/pull/16915/ (that also changed how
search worked), the results are still good, but not 10x. Instead of
going from 10s to 500ms, it goes from 10s to 3s.*

This improves the performance of project-wide search by an order of
magnitude.

After digging in, @as-cii and I found that opening buffers was the
bottleneck for project-wide search (since Zed opens, parses, ... buffers
when finding them, which is something VS Code doesn't do, for example).
So this PR improves the performance of opening multiple buffers at once.

It does this by doing two things:

- It batches scan-requests in the worktree. When we search, we search
files in chunks of 64. Previously we'd handle all 64 scan requests
separately. The new code checks if the scan requests can be batched and
if so it, it does that.
- It batches `git status` calls when reloading the project entries for
the opened buffers. Instead of calling `git status` for each file, it
calls `git status` for a batch of files, and then extracts the status
for each file.

(It has to be said that I think the slow performance on `main` has been
a regression introduced over the last few months with the changes made
to project/worktree/git. I don't think it was this slow ~5 months ago.
But I also don't think it was this fast ~5 months ago.)

## Benchmarks

| Search | Before | After (without
https://github.com/zed-industries/zed/pull/16915) | After (with
https://github.com/zed-industries/zed/pull/16915)
|--------|--------|-------|------|
| `zed.dev` at `2b2a501192e78e`, searching for `<` (`4484` results) |
3.0s<br>2.9s<br>2.89s | 489ms<br>517ms<br>476ms | n/a |
| `zed.dev` at `2b2a501192e78e`, searching for `:` (`25886+` results) |
3.9s<br>3.9s<br>3.8s | 70ms<br>66ms<br>72ms | n/a |
| `zed` at `55dda0e6af`, searching for `<` (`10937+` results) |
10s<br>11s<br>12s | 500m<br>499ms<br>543ms | 3.4s<br>3.1s<br> |

(All results recorded after doing a warm-up run that would start
language servers etc.)

Release Notes:

- Performance of project-wide search has been improved by up to 10x.

---------

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

Thorsten Ball and Antonio created

d1dceef blade: Update blade to b37a9a9 to fix leaking memory (#16935)

Click to expand commit body
Bumps blade to `b37a9a994709d256f4634efd29281c78ba89071a` which
importantly includes a fix for leaking memory from Vulkan objects when
creating and destroying the context.
https://github.com/kvark/blade/pull/162

This improves https://github.com/zed-industries/zed/issues/13346, but I
think there are still some improvements to be made.
 
Release Notes:

- N/A

Matin Aniss created

88d36d8 Restore missing fifo check (#16931)

Click to expand commit body
Fixes a merge conflict between #16915 and #16039

Release Notes:

- N/A

Conrad Irwin created

9662829 vim: Add Smart Relative Line Number (#16567)

Click to expand commit body
Closes #16514

Release Notes:

- Added Vim: absolute numbering in any mode except `insert` mode

---------

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>

0x2CA and Conrad Irwin created

26d9432 REPL: Refactor output (#16927)

Click to expand commit body
Shuffle `outputs.rs` into individual `outputs/*.rs` files and start
documenting them more.

Release Notes:

- N/A

Kyle Kelley created

bea6786 Fix git repository state corruption when work dir's metadata is updated (#16926)

Click to expand commit body
Fixes https://github.com/zed-industries/zed/issues/13176

Release Notes:

- Fixed an issue where git state would stop updating if the root
directory of a git repository was updated in certain ways

Max Brunsfeld created

2de420a assistant: Fix model selector check icon overflow (#16716)

Click to expand commit body
Release Notes:

- Fixed assistant model selector check icon overflow for long model
names

moshyfawn created

f64f85e Do not hold any tasks by default and no other terminals (#16847)

Kirill Bulatov created

29745ae blade: Align rasterized path bounds to whole pixels (#16784)

Click to expand commit body
Related: https://github.com/zed-industries/zed/pull/15822

| Before | After |
| --- | --- |
|
![image](https://github.com/user-attachments/assets/4c4ed1e7-b639-44ce-b318-8cdaaee809ee)|
![image](https://github.com/user-attachments/assets/c2757528-eef3-4d21-9522-39b2597a96b7)
|
|
![image](https://github.com/user-attachments/assets/b70ee108-bea6-4e5e-9583-392d1163d236)
|
![image](https://github.com/user-attachments/assets/aefc1f0c-7bba-4287-a3f9-bbb9befb6a4c)
|

Release Notes:

- N/A

apricotbucket28 created