Commit log

f417893 Avoid unwrap of Worktree::root_entry in resolve_path_in_worktrees (#16917)

Click to expand commit body
It looks like this unwrap was introduced in
https://github.com/zed-industries/zed/pull/16534.

I think a worktree's `root_entry` can be null if it represents a
non-existent file that has not yet been saved. I hit a panic due to the
`unwrap` a couple of times on nightly.

Release Notes:

- N/A

Max Brunsfeld created

ef22372 SSH remote search (#16915)

Click to expand commit body
Co-Authored-By: Max <max@zed.dev>

Release Notes:

- ssh remoting: add project search

---------

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

Conrad Irwin and Max created

0332eaf Remove reference to Copilot plugin (#16916)

Peter Tripp created

c2835df Improve buffers used by Zed for discoverability/visibility (#16906)

Click to expand commit body
- Fixed Telemetry log being marked dirty.
- Fixed asset buffers (default settings and default keymap) showing 'untitled' in breadcrumbs

Peter Tripp created

93a7682 collab: Count active users based on the tokens per minute measure (#16911)

Click to expand commit body
This PR fixes an issue where active user counts were being computed
across _all_ measures instead of the per-minute measures.

We now compute them using the tokens per minute measure, as we're
concerned with usage in recent minutes.

Release Notes:

- N/A

Marshall Bowers created

3ddec48 Remove block step from delete comments workflow (#16910)

Click to expand commit body
The block step wasn't working, and it also appears that most of these
spam comments are coming from compromised accounts, so I think just
deleting the comments is okay for now.

Release Notes:

- N/A

jvmncs created

e2635a6 Add command to copy current file:line for working with external tools (#14793)

Click to expand commit body
Closes #14787.

I made a quick draft implementation of this feature request:
https://github.com/zed-industries/zed/issues/14787

I know how to use use gdb well, so lacking a built-in debugger is OK.
BUT... Speaking personally, setting breakpoints is 50% of what I want an
IDE to do for me when debugging. Having a feature where I can click,
copy, "b [paste]", is a huge step up from typing the whole thing in
manually. I figure this must be useful for other external tools, or even
just regular-human-communication too.

Open Questions:
* Does this belong in the right click menu? (I put it next to "Copy
Permalink" which is similar.)
* Probably not useful enough to get a default keymap?
* Relative vs absolute path?
* Does this need tests?

Release Notes:

- Added `editor: copy file location` command to copy the current file
location (FILE:LINE) to the clipboard
([#14787](https://github.com/zed-industries/zed/issues/14787)).

---------

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

Scott Lembcke and Marshall Bowers created

14d0f4f ruby: Upgrade `zed_extension_api` to v0.1.0 (#16907)

Click to expand commit body
This pull request upgrades the Ruby extension to use v0.1.0 of the Zed
extension API.

Release Notes:

- N/A

Vitaly Slobodin created

eb0a01e Relax comment restrictions in delete_comments action (#16899)

Click to expand commit body
The script no longer triggers on harmless words like "Download".

Release Notes:

- N/A

jvmncs created

635e7f6 docs: Remove reference to nonexistent vim key binding (#16884)

Click to expand commit body
That line was accidentally introduced in
https://github.com/zed-industries/zed/pull/12789.

Release Notes:

- N/A

ShikChen created

e8c6c53 Fix delete comments workflow (#16896)

Click to expand commit body
Release Notes:

- N/A

jvmncs created

d50cb17 docs: Install `libxkbcommon` (#16897)

Click to expand commit body
This PR installs the development packages for `xkbcommon` and
`xkbcommon-x11` that are needed for building the `docs_preprocessor`.

Release Notes:

- N/A

Marshall Bowers created

4c7c8b0 ruby: Update tree-sitter grammar for the Ruby language (#16892)

Click to expand commit body
Closes [#7776](https://github.com/zed-industries/zed/issues/7776)

Hi, this pull request updates the tree-sitter grammar for the Ruby
language.

The changes between two version do not have any breaking change:
https://github.com/tree-sitter/tree-sitter-ruby/compare/dc2d7d6b50f9975bc3c35bbec0ba11b2617b736b..7dbc1e2d0e2d752577655881f73b4573f3fe85d4

Release Notes:

- N/A

Vitaly Slobodin created

5f6726a ruby: Rename "rbs" language to "RBS" (#16893)

Click to expand commit body
Rename rbs to RBS. This is primarily a UX change, as the proper name for
the Ruby Type Signature language is RBS, not rbs.

Screenshots:

Before:
![CleanShot 2024-08-26 at 18 28
45@2x](https://github.com/user-attachments/assets/c6773fe5-f071-47c7-91b3-27f448ce3b2a)

After:

![CleanShot 2024-08-26 at 18 29
44@2x](https://github.com/user-attachments/assets/ddd8859e-6cbc-4a6f-8485-2b663a76420f)


Release Notes:

- N/A

Vitaly Slobodin created

2f08a0a Fix fifo files hanging the project wide search (#16039)

Click to expand commit body
Release Notes:

- Fixed the issue related to the project wide search being stuck when
project contains .fifo files
- Might potentially solve the following issue
https://github.com/zed-industries/zed/issues/7360

TheCub3 created

aaddb73 assistant: Refesh message headers only for dirty messages (#16881)

Click to expand commit body
We've noticed performance issues in long conversations with assistants;
the profiles pointed to slowiness in WrapMap (and indeed there were some
low hanging fruits that we picked up in
https://github.com/zed-industries/zed/pull/16761). That however did not
fully resolve the issue, as WrapMap still cracked through in profiles;
basically, the speedup I've landed has just moved the post elsewhere.

The higher level issue is that we were trying to refresh message headers
for all messages, irrespective of whether they've actually needed to be
updated. This PR fixes that by using `replace_blocks` API where
possible.

Release Notes:

- Improved performance of Assistant Panel with long conversations.

Piotr Osiewicz created

2c541ae docs: Override `.cargo/config.toml` (#16889)

Click to expand commit body
Still trying to work through issues building the docs.

Trying to see if using a simpler Cargo config (that doesn't use `mold`
flags) helps.

Release Notes:

- N/A

Marshall Bowers created

afe4d8c yaml: Add single quotes to list of brackets (#16859)

Click to expand commit body
Closes #16854

Release Notes:

- Single quotes are now auto-closable in YAML files

Thorsten Ball created

73bde39 docs: Set up mold for `docs_preprocessor` (#16888)

Click to expand commit body
This PR sets up `mold` in the GitHub Action for deploying the docs,
since we need it to build `docs_preprocessor` due to the flags we use on
Linux.

Release Notes:

- N/A

Marshall Bowers created

3b0eb60 Flatten `General` and `Assistant` navigation in docs (#16885)

Click to expand commit body
This PR flattens out the docs nav, so sections like General and
Assistant have a single level of navigation items.

Also renames the `Assistant` page -> `Overview` to be more consistent
with other sections.

| Before | After |
|--------|-------|
| ![CleanShot 2024-08-26 at 11 23
28@2x](https://github.com/user-attachments/assets/06fb9e46-8667-457e-b187-3c2ce2b60369)
| ![CleanShot 2024-08-26 at 11 23
01@2x](https://github.com/user-attachments/assets/1173d75a-53d1-435b-8d1a-c37f28a363d4)
|


Release Notes:

- N/A

Nate Butler created

7a964ff Don't rely on relative path for docs preprocessor (#16883)

Click to expand commit body
Reapplies #16700 with a corrected command. Now it no longer relies on a
relative path.

Thanks @maxdeviant for the quick help 🙏 

Release Notes:

- N/A

Nate Butler created

a87076e Add GH action to delete and block malware comments (#16886)

Click to expand commit body
Adds a GitHub action to detect, delete, and block comments linking to
mediafire malware campaign.

Release Notes:

- N/A

jvmncs created

d67d44f extension: Add more logging when building extensions (#16794)

Click to expand commit body
This helps debug what steps are taken and where
the compiled extension ended up.

Also remove duplicate "compiling Rust extension" / "compiling rust
extension" text - it's confusing.

Release Notes:

- N/A

---------

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

Berkus Decker and Marshall Bowers created

093f131 Add `zed-editor` package and overlay to flake (#16783)

Click to expand commit body
Adds a `zed-editor` package to the flake, along with exported overlay.
Uses [`crane`](https://crane.dev) to avoid issues with updating
git-sourced dependencies' hashes. Crane will also be useful if we want
to export separate packages for `stable`, `preview`, and `nightly` in
the future.

Release Notes:

- Added a default package + overlay to Zed's Nix flake. This is useful
for users wanting to pilot nightly builds of Zed on NixOS.

jvmncs created

7936fe4 ollama: Support model context_size (num_ctx) >2048 (#16877)

Peter Tripp created

2a03dde Revert "Add `docs_preprocessor` crate to support Zed Docs" (#16880)

Click to expand commit body
Temporarily revert #16700 to deal with this error:

`error: manifest path `../crates/docs_preprocessor/Cargo.toml` does not
exist` as it was causing the docs-preprocessor not to run, meaning
unexpanded templates were showing up in the public docs.

Reverts zed-industries/zed#16700

Release Notes:

- N/A

Nate Butler created

c658ad8 elixir: Bump to v0.0.9 (#16879)

Click to expand commit body
This PR bumps the Elixir extension to v0.0.9.

Changes:

- https://github.com/zed-industries/zed/pull/16819

Release Notes:

- N/A

Marshall Bowers created

46bb04a Add `docs_preprocessor` crate to support Zed Docs (#16700)

Click to expand commit body
This PR adds a mdbook preprocessor for supporting Zed's docs.

This initial version adds the following custom commands:

**Keybinding** 

`{#kb prefix::action_name}` (e.g. `{#kb zed::OpenSettings}`)

Outputs a keybinding template like `<kbd
class="keybinding">{macos_keybinding}|{linux_keybinding}</kbd>`. This
template is processed on the client side through `mdbook` to show the
correct keybinding for the user's platform.

**Action** 

`{#action prefix::action_name}` (e.g. `{#action zed::OpenSettings}`)

For now, simply outputs the action name in a readable manner. (e.g.
zed::OpenSettings -> zed: open settings)

In the future we'll add additional modes for this template, like create
a standard way to render `{action} ({keybinding})`.

## Example Usage

```
To open the assistant panel, toggle the right dock by using the {#action workspace::ToggleRightDock} action in the command palette or by using the
{#kb workspace::ToggleRightDock} shortcut.
```

Release Notes:

- N/A

Nate Butler created

5ee4c03 assistant: Normalize line endings for prompts loaded from templates (#16808)

Click to expand commit body
Closes #16804

Similar to #15708, when reading prompts from a template, both Windows
and Linux might end up with `CRLF (\r\n)` line endings, which can result
in a panic.

Release Notes:

- N/A

张小白 created

a28700a theme: Fallback to opaque color for `title_bar.inactive_background` (#16833)

Click to expand commit body
Fixes https://github.com/zed-industries/zed/issues/16699, fixes
https://github.com/zed-industries/zed/issues/15112, fixes
https://github.com/zed-industries/zed/issues/14955

| Before | After |
|--------|--------|
|
![image](https://github.com/user-attachments/assets/3c93dc02-3421-4fd8-b34e-c54644202caa)
|
![image](https://github.com/user-attachments/assets/f938d77f-7e9b-4c1f-9beb-38ff77a5fa93)
|

Release Notes:

- Linux: Fixed title bar becoming transparent when the window lost
focus.

apricotbucket28 created

55dda0e A set of small fixes (#16849)

Click to expand commit body
* Linux Clippy lints fixed
* Zed local tasks are now simpler to rerun
* Zed's `release-fast` build profile keeps the debug info so it's
possible to properly debug things without altering the sources

Release Notes:

- N/A

Kirill Bulatov created

1a2a538 Improve Linux terminal keymap and context menu (#16845)

Click to expand commit body
Follow-up https://github.com/zed-industries/zed/pull/16085 that fixes
the search deploy to be actually a part of the terminal-related
bindings.

Part of https://github.com/zed-industries/zed/issues/16839

Also 

* fixes few other bindings to use `shift` and avoid conflicts with the
existing key bindings.
* adds terminal inline assist to the context menu and makes both the
menu and the button to dynamically adjust to `assist.enabled` settings
change

It is still unclear to me, why certain labels for certain bindings are
wrong (it's still showing `ctrl-w` for closing the terminal tab, and
`shift-insert` instead of `ctrl-shift-v` for Paste, while Insert is near
and has a `ctrl-shift-c` binding shown) but at least the keys work now.

Release notes: 
- Improved Linux terminal keymap and context menu

Kirill Bulatov created

28271a9 Display buffer/project search entries in the outline panel (#16589)

Click to expand commit body
Prototypes a way to display new entities in the outline panel, making it
less outline.
The design is not final and might be adjusted, but the workflow seems to
be solid enough to keep and iron it out.

* Now, when any project search buffer is activated (multi buffer mode),
or buffer search is open (singleton buffer mode, but is available for
search usages multi buffer too — in that case buffer search overrides
multi buffer's contents display), outline panel displays all search
matches instead of the outline items.

Outline items are not displayed at all during those cases, unless the
buffer search is closed, or a new buffer gets opened, of an active
buffer search matches zero items.


https://github.com/user-attachments/assets/4a3e4faa-7f75-4522-96bb-3761872c753a


* For the multi buffer mode, search matches are grouped under
directories and files, same as outline items

![Screenshot 2024-08-21 at 14 55
01](https://github.com/user-attachments/assets/6dac75e4-be4e-4338-917b-37a32c285b71)


* For buffer search , search matches are displayed one under another


![image](https://github.com/user-attachments/assets/9efcff85-d4c7-4462-9ef5-f76b08e59f20)


For both cases, the entire match line is taken and rendered, with the
hover tooltip showing the line number.
So far it does not look very bad, but I am certain there are bad cases
with long lines and bad indents where it looks not optimal — this part
most probably will be redesigned after some trial.
Or, maybe, it's ok to leave the current state if the horizontal
scrollbar is added?

Clicking the item navigates to the item's position in the editor.
Search item lines are also possible to filter with the outline panel's
filter input.

* Inline panel is now possible to "pin" to track a currently active
editor, to display outlines/search results for that editor even if
another item is activated afterwards:


![image](https://github.com/user-attachments/assets/75fb78c3-0e5f-47b4-ba3a-485c71d7e342)

This is useful in combination with project search results display: now
it's possible to leave the search results pinned in the outline panel
and jump to every search result and back.

If the item the panel was pinned to gets closed, the panel gets back to
its regular state, showing outlines/search results for a currently
active editor.


Release Notes:

- Added a way to display buffer/project search entries in the outline
panel

Kirill Bulatov created

dd8d52f elixir: Make files required by elixir-ls executable (#16819)

Click to expand commit body
Closes:

- #15802

This PR fixes an issue in the `elixir-ls` language server installation
where some of the required scripts was not being made executable when
installed from GitHub.

Release Notes:

- Fixed elixir-rs files not being executable ([#15802](https://github.com/zed-industries/zed/issues/15802))

Kai created

5e55d55 language: Do not fetch diagnostics when iterating over text without language awareness (#16824)

Click to expand commit body
This PR fixes a regression from
https://github.com/zed-industries/zed/pull/15646 where we've started
fetching diagnostic spans unconditionally (whereas previously that
wasn't done when iterating over raw text).

Closes #16764

Release Notes:

- Fixed performance regression in handling buffers with large quantities
of diagnostics.

Piotr Osiewicz created

14f8d3a gpui: Send correct kill signal on Linux (#16797)

Click to expand commit body
should be kill -0 (zero) instead

Related to #14291 and #14310

Release Notes:

- N/A

Walter de Jong created

29f97e2 docs: update broken link (#16788)

Click to expand commit body
Release Notes:

- N/A

Junseong Park created

340662e collab: Add lifetime spending limit for LLM usage (#16780)

Click to expand commit body
This PR adds a lifetime spending limit on LLM usage.

Exceeding this limit will prevent further use of the Zed LLM provider.

Currently the cap is $1,000.

Release Notes:

- N/A

Marshall Bowers created

77bb60f Add default terminal binding for buffer search on Linux (#16085)

Click to expand commit body
Release Notes:

- N/A

Vitor Ramos created

352c95c Add injections for GraphQL template literals and function calls (#16368)

Click to expand commit body
This PR adds syntax highlighting support for `gql` and `graphql` tagged
literals. It also adds highlighting for `graphql()` and `gql()` function
calls, which are another common way to define queries.

Note: I am using the
[`graphql`](https://github.com/11bit/zed-extension-graphql) extension to
provide syntax highlighting

Before:
<img width="413" alt="image"
src="https://github.com/user-attachments/assets/114a98be-9790-4cdf-ba98-553f777ff08a">

After:
<img width="418" alt="image"
src="https://github.com/user-attachments/assets/98fc5dfd-d1a3-45c4-be8e-063cf68b6e6e">

Release Notes:

- Added syntax highlighting for `graphql` tagged template literals and
function calls in javascript, typescript and tsx languages.

Affan Shahid created

938d93a gpui: Add `truncate` and `text_ellipsis` to TextStyle (#14850)

Click to expand commit body
Release Notes:

- N/A

Ref issue #4996

## Demo

```
cargo run -p gpui --example text_wrapper 
```



https://github.com/user-attachments/assets/a7fcebf7-f287-4517-960d-76b12722a2d7

---------

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

Jason Lee and Marshall Bowers created

12dda5f Add `Format Buffer` action to mouse context menu (#16080)

Click to expand commit body
Closes #15891 

Release Notes:

- Added "Format Buffer" action to the right-click menu within a buffer.

---------

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

Ihnat and Marshall Bowers created

783cccf WIP: Improve performance of Wrap Map (#16761)

Click to expand commit body
We've ran into performance issues when reinserting new blocks into the
assistant panel; in profiles WrapMap showed up, as we try to query wrap
boundaries over and over, which is a hidden O(n^2) - for each block, we
may potentially look at all of the Wraps. This PR alleviates this issue
by storing away previously resolved wrap range; consecutive iterations
can often reuse it.
This should help with performance of Assistant Panel with long
conversations.

Release Notes:

- Improved performance of assistant panel with large # of text.

Piotr Osiewicz created

30a677e theme: Change autocomplete value for `*_font_fallbacks` (#16759)

Click to expand commit body
This PR follows up #16466, changes the default value used when
autocompleting the `ui_font_fallbacks` and `ui_font_fallbacks` settings
from `null` to `[]`.

Special thanks to @maxdeviant for the guidance on writing better code!


Release Notes:

- N/A

张小白 created

a2dee8c Add some permalinks to linux packaging docs (#16756)

Click to expand commit body
Release Notes:

- N/A

jvmncs created

935cf54 Fix impersonation in local development (#16755)

Click to expand commit body
This PR fixes impersonation in local development by fetching the user
from the GitHub API so we can get their `github_user_id`.

The `github_user_id` is now required after #16704.

Since this is just a development flow, we're fetching the user on the
client as opposed to making changes on the server.

This request uses the `GITHUB_TOKEN` environment variable for
authentication, if it exists, or will make an unauthenticated GitHub API
request.

Release Notes:

- N/A

Marshall Bowers created

5e869da Fix ctrl-d/u issues with scroll_beyond_last_line off (#15395)

Click to expand commit body
Closes #15356

Release Notes:

- vim: Fixed issues with `ctrl-d`/`ctrl-u` when
`scroll_beyond_last_line` is set to `off`
([#15356](https://github.com/zed-industries/zed/issues/15356)).


https://github.com/user-attachments/assets/d3166393-4a4e-4195-9db6-3ff1d4aeec78

---------

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

Kevin Sweet and Marshall Bowers created

518dd3e activity indicator: Do not show indicators background when there's no state (#16737)

Click to expand commit body
Found by @SomeoneToIgnore :

![image](https://github.com/user-attachments/assets/3c8fd3f6-3411-4ca9-88b7-56a7d0d407d3)



Release Notes:

- N/A

Piotr Osiewicz created

7647644 zed ai: Show ToS form in Configuration View (#16736)

Click to expand commit body
Related #16618

Release Notes:

- N/A

Thorsten Ball created

119e337 activity indicator: fix popover menu appearing for empty lists (#16734)

Click to expand commit body
Release Notes:

- N/A

---------

Co-authored-by: Kirill Bulatov <kirill@zed.dev>

Piotr Osiewicz and Kirill Bulatov created