Commit log

5f6ae23 Delete unused types for Mistral non-streaming requests (#38758)

Click to expand commit body
Confusing to have these interspersed with the streaming request types

Release Notes:

- N/A

Michael Sloan created

5d89b2e Revert "Add setting to show/hide title bar (#37428)" (#38756)

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

Release Notes:

- Reverted the ability to show/hide the titlebar. This caused rendering
bugs on
macOS, and we're preparing for the redesign which requires the toolbar
being present.

---------

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

Conrad Irwin and Kirill Bulatov created

0f7dbf5 editor: Fix APCA contrast split text runs offset (#38751)

Click to expand commit body
Closes #38576

In case of inline element rendering, we can have multiple text runs on
the same display row. There was a bug in
https://github.com/zed-industries/zed/pull/37165 which doesn't consider
this multiple text runs case. This PR fixes that and adds a test for it.

Before:

<img width="600" alt="image"
src="https://github.com/user-attachments/assets/3bdf5f14-988b-45dc-bc8e-c5d61ab35a93"
/>

After:

<img width="600" alt="image"
src="https://github.com/user-attachments/assets/0e1a45ff-c521-4994-b259-3a054d89c4df"
/>

Release Notes:

- Fixed an issue where text could be incorrectly highlighted during
search when a line contained an inline color preview.

Smit Barmase created

b60f19f agent: Allow to see the whole command before running it (#38747)

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

In the agent panel's `thread_view.rs` file, we have a `render_tool_call`
function that controls what we show in the UI for most types of tools.
However, for some of them—for example, terminal/execute and edit
tools—we have a special rendering so we can tailor the UI for their
specific needs. But... before the specific rendering function is called,
all tools still go through the `render_tool_call`.

Problem is that, in the case of the terminal tool, you couldn't see the
full command the agent wants to run when the tool is still in its
`render_tool_call` state. That's mostly because of the treatment we give
to labels while in that state. A particularly bad scenario because
well... seeing the _full_ command _before_ you choose to accept or
reject is rather important.

This PR fixes that by essentially special-casing the terminal tool
display when in the `render_tool_call` rendering state, so to speak.
There's still a slight UI misalignment I want to fix but it shouldn't
block this fix to go out.

Here's our final result:

<img width="400" height="1172" alt="Screenshot 2025-09-23 at 6  19@2x"
src="https://github.com/user-attachments/assets/71c79e45-ab66-4102-b046-950f137fa3ea"
/>

Release Notes:

- agent: Fixed terminal command not being fully displayed while in the
"waiting for confirmation" state.

Danilo Leal created

0a261ad Implement regex_select action for Helix (#38736)

Click to expand commit body
Closes #31561

Release Notes:

- Implemented the select_regex Helix keymap

Prior: The keymap `s` defaulted to `vim::Substitute`

After:
<img width="1387" height="376" alt="image"
src="https://github.com/user-attachments/assets/4d3181d9-9d3f-40d2-890f-022655c77577"
/>

Thank you to @ConradIrwin for pairing to work on this

Jonathan Hart created

28ed083 Remove experimental jj UI, for now (#38743)

Click to expand commit body
This PR removes the experimental jj bookmark picker that was added in
#30883.

This was just an exploratory prototype and while I would like to have
native jj UI at some point, I don't know when we'll get back to it.

Release Notes:

- N/A

Marshall Bowers created

74fe3b1 Delete `edit_prediction_tools.rs` (was moved to `zeta2_tools.rs`) (#38745)

Click to expand commit body
Move happened in #38718

Release Notes:

- N/A

Michael Sloan created

9112554 Clear buffer colors on empty LSP response (#38742)

Click to expand commit body
Follow-up of https://github.com/zed-industries/zed/pull/32816
Closes https://github.com/zed-industries/zed/issues/38602


https://github.com/user-attachments/assets/26058c91-4ffd-4c6f-a41d-17da0c3d7220

Release Notes:

- Fixed buffer colors not cleared on empty LSP responses

Kirill Bulatov created

3b79490 Bump Zed to v0.207 (#38741)

Click to expand commit body
Release Notes:

- N/A

Joseph T. Lyons created

52c467e Document task filtering based on variables (#38642)

Click to expand commit body
Closes: https://github.com/zed-industries/zed/issues/38525
Documentation follow up for #38614

Task filtering behavior is currently undocumented.

Release Notes:

- N/A

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Kirill Bulatov <mail4score@gmail.com>

Chris Ewald , Copilot , and Kirill Bulatov created

831de8e zeta2: Include edits in prompt and add `max_prompt_bytes` param (#38737)

Click to expand commit body
Release Notes:

- N/A

Co-authored-by: Michael Sloan <mgsloan@gmail.com>

Agus Zubiaga and Michael Sloan created

bc52841 Preserve trailing newline in `TerminalOutput::full_text` (#38061)

Click to expand commit body
Closes #30678

This is caused by `TerminalOutput::full_text` triming trailing newline
when creating the "REPL Output" buffer.

Release Notes:

- fix: Preserve trailing newline in `TerminalOutput::full_text`

ImFeH2 created

9ac511e zeta2: Collect nearby diagnostics (#38732)

Click to expand commit body
Release Notes:

- N/A

Co-authored-by: Bennet <bennet@zed.dev>

Michael Sloan and Bennet created

afaed3a Windows: Fix keybinds for onboarding dialog (#38730)

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

- Previously fixed by: https://github.com/zed-industries/zed/pull/36712
- Regressed in: https://github.com/zed-industries/zed/pull/36572

Release Notes:

- N/A

Peter Tripp created

f78699e Update plan text (#38731)

Click to expand commit body
Release Notes:

- N/A

---------

Co-authored-by: David Kleingeld <davidsk@zed.dev>

Marshall Bowers and David Kleingeld created

3646aa6 language_models: Actually override Ollama model from settings (#38628)

Click to expand commit body
The current problem is that if I specify model parameters, like
`max_tokens`, in `settings.json` for an Ollama model, they do not
override the values coming from the Ollama API. Instead, the parameters
from the API are used. For example, in the settings below, even though I
have overridden `max_tokens`, Zed will still use the API's default
`context_length` of 4k.

```
  "language_models": {
    "ollama": {
      "available_models": [
        {
          "name": "qwen3-coder:latest",
          "display_name": "Qwen 3 Coder",
          "max_tokens": 64000,
          "supports_tools": true,
          "keep_alive": "15m",
          "supports_thinking": false,
          "supports_images": false
        }
      ]
    }
  },
```

Release Notes:

- Fixed an issue where Ollama model parameters were not being correctly
overridden by user settings.

Umesh Yadav created

dc20a41 windows: Encrypt SSH passwords stored in memory (#38427)

Click to expand commit body
Release Notes:

- N/A

---------

Co-authored-by: Julia <julia@zed.dev>

Piotr Osiewicz and Julia created

6a24ad7 Fix the markdown table (#38729)

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

Release Notes:

- N/A

Kirill Bulatov created

8fefd79 zeta2: Include edit events in cloud request (#38724)

Click to expand commit body
Release Notes:

- N/A

Co-authored-by: Agus Zubiaga <agus@zed.dev>
Co-authored-by: Michael Sloan <mgsloan@gmail.com>

Bennet Bo Fenner , Agus Zubiaga , and Michael Sloan created

f6e2a2a docs: Tweak the toolchains page (#38728)

Click to expand commit body
Mostly just breaking a massive wall of text in small paragraphs for ease
of reading/parsing.

Release Notes:

- N/A

Danilo Leal created

3cf6fa8 agent: Make the panel's textarea font size be controlled by `buffer_font_size` (#38726)

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

Previously, every piece of text in the agent panel was controlled by
`agent_font_size`. Although it is nice to only have one setting to tweak
that, it could be a bit misleading particularly because we use
monospaced and sans-serif fonts for different elements in the panel. Any
editor/textarea in the panel, whehter it is the main message editor or
the previous message editor, uses the buffer font. Therefore, I think it
is reasonable to expect that tweaking `buffer_font_size` would also
change the agent panel's usage of buffer fonts.

With this change, regular buffers and the agent panel's message editor
will always have the same size.

Release Notes:

- agent: Made the agent panel's textarea font size follow the font size
of regular buffers. They're now both controlled by the
`buffer_font_size` setting.

Danilo Leal created

2759f54 vim: Fix cursor position being set to end of line in normal mode (#38161)

Click to expand commit body
Address an issue where, in Vim mode, clicking past the end of a line
after selecting the entire line would place the cursor on the newline
character instead of the last character of the line, which is
inconsistent with Vim's normal mode expectations.

I believe the root cause was that the cursor’s position was updated to
the end of the line before the mode switch from Visual to Normal, at
which point `DisplayMap.clip_at_line_ends` was still set to `false`. As
a result, the cursor could end up in an invalid position for Normal
mode. The fix ensures that when switching between these two modes, and
if the selection is empty, the selection point is properly clipped,
preventing the cursor from being placed past the end of the line.

Related #38049 

Release Notes:

- Fixed issue in Vim mode where switching from any mode to normal mode
could end up with the cursor in the newline character

---------

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

Dino and Conrad Irwin created

809d3bf acp: Include only path to @mentioned directory in user message (#37942)

Click to expand commit body
Nowadays, people don't expect @-mentioning a directory to include the
contents of all files within it. Doing so makes it very likely to
consume an undesirable amount of tokens.

By default, we'll now only include the path of the directory and let the
model decide how much to read via tools. We'll still include the
contents if no tools are available (e.g. "Minimal" profile is selected).

Release Notes:

- Agent Panel: Do not include the content of @-mentioned directories
when tools are available

Agus Zubiaga created

0aad474 zeta2: Use global zeta in Inspector (#38718)

Click to expand commit body
The edit prediction debug tools has been renamed to zeta2 inspector
because it's now zeta specific. It will now always display the last
prediction request context, prompt, and model response.

Release Notes:

- N/A

---------

Co-authored-by: Bennet <bennet@zed.dev>
Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>

Agus Zubiaga , Bennet , and Bennet Bo Fenner created

271d67f git: Fix git amend on panel (#38681)

Click to expand commit body
Closes #38651 

`git_panel.set_amend_pending(false, cx);` was being called before
`git_panel.commit_changes(...)` which was causing the commit buffer to
be cleared/reset before actually sending the commit request to git.

Introduced by #35268 which added clear buffer functionality to the
`set_amend_pending` function.

Release Notes:

- Fix git amend on panel sending "Update ..." instead of the original
commit message
- FIx git amend button not working

Alvaro Parker created

2e87387 Change emulated GPU message on Windows (#38710)

Click to expand commit body
Release Notes:

- N/A

localcc created

15e75bd Add show_summary & show_command to the initial_tasks.json (#38660)

Click to expand commit body
Release Notes:

- Added "show_summary" & "show_command" settings to the initial
tasks.json file.


This makes the initial task template match the docs here:
https://zed.dev/docs/tasks

Lex Berezhny created

3ac14e1 agent: Fix Gemini refusing all requests with file-based tool calls (#38705)

Click to expand commit body
Solves an issue where Google APIs refuse all requests with file-based
tool calls attached.
This seems to get triggered in the case where:

- copy_path + another file-based tool call is enabled
- default terminal is `/bin/bash` or something similar

It is unclear why this is happening, but removing the terminal commands
in those tool calls seems to have solved the issue.

Closes #37180 and #37414

Release Notes:

- agent: Fix Gemini refusing requests with certain profiles/systems.

Ben Brandt created

9e73025 Fix UTF-8 character boundary panic in DirectWrite text layout (#37767)

Click to expand commit body
## Problem

Zed was crashing with a UTF-8 character boundary error when rendering
text containing multi-byte characters (like emojis or CJK characters):

```
Thread "main" panicked with "byte index 49 is not a char boundary; it is inside '…' (bytes 48..51)"
```

## Root Cause Analysis

The PR reviewer correctly identified that the issue was not in the
DirectWrite boundary handling, but rather in the text run length
calculation in the text system. When text runs are split across lines in
`text_system.rs:426`, the calculation:

```rust
let run_len_within_line = cmp::min(line_end, run_start + run.len) - run_start;
```

This could result in `run_len_within_line` values that don't respect
UTF-8 character boundaries, especially when multi-byte characters (like
'…' which is 3 bytes) get split across lines. The resulting `FontRun`
objects would have lengths that don't align with character boundaries,
causing the panic when DirectWrite tries to slice the string.

## Solution

Fixed the issue by adding UTF-8 character boundary validation in the
text system where run lengths are calculated. The fix ensures that when
text runs are split across lines, the split always occurs at valid UTF-8
character boundaries:

```rust
// Ensure the run length respects UTF-8 character boundaries
if run_len_within_line > 0 {
    let text_slice = &line_text[run_start - line_start..];
    if run_len_within_line < text_slice.len() && !text_slice.is_char_boundary(run_len_within_line) {
        // Find the previous character boundary using efficient bit-level checking
        // UTF-8 characters are at most 4 bytes, so we only need to check up to 3 bytes back
        let lower_bound = run_len_within_line.saturating_sub(3);
        let search_range = &text_slice.as_bytes()[lower_bound..=run_len_within_line];
        
        // SAFETY: A valid character boundary must exist in this range because:
        // 1. run_len_within_line is a valid position in the string slice
        // 2. UTF-8 characters are at most 4 bytes, so some boundary exists in [run_len_within_line-3..=run_len_within_line]
        let pos_from_lower = unsafe {
            search_range
                .iter()
                .rposition(|&b| (b as i8) >= -0x40)
                .unwrap_unchecked()
        };
        
        run_len_within_line = lower_bound + pos_from_lower;
    }
}
```

## Testing

- ✅ Builds successfully on all platforms
- ✅ Eliminates UTF-8 character boundary panics
- ✅ Maintains existing functionality for all text types
- ✅ Handles edge cases like very long multi-byte characters

## Benefits

1. **Root cause fix**: Addresses the issue at the source rather than
treating symptoms
2. **Performance optimal**: Uses the same efficient algorithm as the
standard library
3. **Minimal changes**: Only modifies the specific problematic code path
4. **Future compatible**: Can be easily replaced with
`str::floor_char_boundary()` when stabilized

## Alternative Approaches Considered

1. **DirectWrite boundary fixing**: Initially tried to fix in
DirectWrite, but this was treating symptoms rather than the root cause
2. **Helper function approach**: Considered extracting to a helper
function, but inlined implementation is more appropriate for this
specific use case
3. **Standard library methods**: `floor_char_boundary()` is not yet
stable, so implemented equivalent logic

The chosen approach provides the best balance of performance, safety,
and code maintainability.
---
Release Notes:

- N/A

邻二氮杂菲 created

1bf8332 editor: Deduplicate locations in `navigate_to_hover_links` (#38707)

Click to expand commit body
Closes
https://github.com/zed-industries/zed/issues/6730#issuecomment-3320933701

That way if multiple servers are running while reporting the same
results we prevent opening multi buffers for single entries.

Release Notes:

- N/A *or* Added/Fixed/Improved ...

Lukas Wirth created

d8048f4 Test task shell commands (#38706)

Click to expand commit body
Add tests on task commands, to ensure things like
https://github.com/zed-industries/zed/issues/38343 do not come so easily
unnoticed and to provide a base to create more tests in the future, if
needed.

Release Notes:

- N/A

---------

Co-authored-by: Lukas Wirth <lukas@zed.dev>

Kirill Bulatov and Lukas Wirth created

edb804d go: Stop running ghost tests, fix broken `go test -run` for suites (#38167)

Click to expand commit body
Closed #33759
Closed #38166

### Summary

This PR fixes the way `go test` commands are generated for **testify
suite test methods**.
Previously, only the method name was included in the `-run` flag, which
caused Go’s test runner to fail to find suite test cases.

---

### Problem


https://github.com/user-attachments/assets/e6f80a77-bcf3-457c-8bfb-a7286d44ff71

1. **Incorrect command** was generated for suite tests:

   ```bash
   go test -run TestSomething_Success
   ```

   This results in:

   ```
   testing: warning: no tests to run
   ```

2. The correct format requires the **suite name + method name**:

   ```bash
   go test -run ^TestFooSuite$/TestSomething_Success$
   ```

Without the suite prefix (`TestFooSuite`), Go cannot locate test methods
defined on a suite struct.

---

### Changes Made

* **Updated `runnables.scm`**:

  * Added a new query rule for suite methods (`.*Suite` receiver types).
* Ensures only methods on suite structs (e.g., `FooSuite`) are matched.
  * Tagged these with `go-testify-suite` in addition to `go-test`.

* **Extended task template generation**:

  * Introduced `GO_SUITE_NAME_TASK_VARIABLE` to capture the suite name.
  * Create a `TaskTemplate` for the testify suite.

* **Improved labeling**:

* Labels now show the full path (`go test ./pkg -v -run
TestFooSuite/TestSomething_Success`) for clarity.

* **Added a test** `test_testify_suite_detection`:

* Covered testify suite cases to ensure correct detection and command
generation.

---

### Impact


https://github.com/user-attachments/assets/ef509183-534a-4aa4-9dc7-01402ac32260

* **Before**: Running a suite test method produced “no tests to run.”
* **After**: Suite test methods are runnable individually with the
correct `-run` command, and full suites can still be executed as before.

### Release Notes

* Fixed generation of `go test` commands for **testify suite test
methods**.
Suite methods now include both the suite name and the method name in the
`-run` flag (e.g., `^TestFooSuite$/TestSomething_Success$`), ensuring
they are properly detected and runnable individually.

Kaikai created

691bfe7 search: Remove noisy buffer search logs (#38679)

Click to expand commit body
Buffer search initiates a new search every time a key is pressed in the
buffer search bar. This would cancel the task associated with any
pending searches. Whenever one of these searches was canceled Zed would
log `[search]: oneshot canceled`. This log would trigger almost on every
keypress when typing moderately fast. This PR silences these logs by not
treating canceled searches as errors.

Release Notes:

- N/A

tidely created

1d5da68 windows: Show `alt-=` for `pane::GoForward` (#38696)

Click to expand commit body
Reorder the shortcuts for `pane::GoForward` so the menu now shows
`Alt-=` instead of `forward`

Release Notes:

- N/A

张小白 created

f07bc12 helix: Further cleanups to helix paste in line mode (#38694)

Click to expand commit body
I noticed that after we paste in line mode, the cursor position is
positioned at the beginning of the next logical line which is somewhat
undesirable since then inserting/appending will position the cursor
after the selection. This does not match helix behaviour which we should
further investigate.

Follow-up to https://github.com/zed-industries/zed/pull/38663

Release Notes:

- N/A

Jakub Konka created

4532765 zeta2: Add prompt planner and provide access via zeta_cli (#38691)

Click to expand commit body
Release Notes:

- N/A

Michael Sloan created

25a1827 Ensure we have the targets needed for bundling (#38688)

Click to expand commit body
Closes #ISSUE

Release Notes:

- N/A

Conrad Irwin created

98865a3 Fix invalid anchors in breadcrumbs (#38687)

Click to expand commit body
Release Notes:

- (nightly only) Fix panic when your cursor abuts a multibyte character

Conrad Irwin created

681a4ad Remove `OutlineItem::signature_range` as it is no longer used (#38680)

Click to expand commit body
Use in edit predictions was removed in #38676

Release Notes:

- N/A

Michael Sloan created

5e502a3 Fix remote server crash with JSON files (#38678)

Click to expand commit body
Closes #38594

Release Notes:

- N/A

Julia Ryan created

e9fbcf5 Allow `zed filename.rs:` (#38677)

Click to expand commit body
iTerm's editor configuration dialog allows you to set your editor to
`zed \1:\2`, but not (as far as I know) to leave off the : when there's
no line number

This fixes clicking on bare filenames in iTerm for me.

Release Notes:

- Fixed line number parsing so that `zed filename.rs:` will now act as
though you did `zed filename.rs`

Conrad Irwin created

c9e3b32 zeta2: Provider setup (#38676)

Click to expand commit body
Creates a new `EditPredictionProvider` for zeta2, that requests
completions from a new cloud endpoint including context from the new
`edit_prediction_context` crate. This is not ready for use, but it
allows us to iterate.

Release Notes:

- N/A

---------

Co-authored-by: Michael Sloan <michael@zed.dev>
Co-authored-by: Bennet <bennet@zed.dev>
Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>

Agus Zubiaga , Michael Sloan , Bennet , and Bennet Bo Fenner created

e9abd5b docs: Mention required matching configs when developing language server extensions (#38674)

Click to expand commit body
This took me quite a while to find out when I developed my first
language extension. I had non-matching entries in the `languages` array
and in the name field of `config.toml`, and it was especially tricky
because the zed extension would start up, but not the language server. I
sure which this had been in the docs, so I am contributing it now!

Jens Kouros created

a90abb1 Bump Rust to 1.90 (#38436)

Click to expand commit body
Release Notes:

- N/A

---------

Co-authored-by: Nia Espera <nia@zed.dev>
Co-authored-by: Julia Ryan <juliaryan3.14@gmail.com>

Piotr Osiewicz , Nia Espera , and Julia Ryan created

46d19d8 helix: Fix helix-paste mode in line mode (#38663)

Click to expand commit body
In particular,
* if the selection ends at the beginning of the next line, and the
current line under the cursor is empty, we paste at the selection's end.
* if however the current line under the cursor is empty, we need to move
to the beginning of the next line to avoid pasting above the end of
current selection

In addition, in line mode, we always move the cursor to the end of the
inserted text. Otherwise, while it looks fine visually,
inserting/appending ends up in the next logical line which is not
desirable.

Release Notes:

- N/A

Jakub Konka created

e484f49 language_models: Treat a `block_reason` from Gemini as a refusal (#38670)

Click to expand commit body
This PR updates the Gemini provider to treat a
`prompt_feedback.block_reason` as a refusal, as Gemini does not seem to
return a `stop_reason` to use in this case.

<img width="639" height="162" alt="Screenshot 2025-09-22 at 4 23 15 PM"
src="https://github.com/user-attachments/assets/7a86d67e-06c1-49ea-b58f-fa80666f0f8c"
/>

Previously this would just result in no feedback to the user.

Release Notes:

- Added an error message when a Gemini response contains a
`block_reason`.

Marshall Bowers created

80dcabe perf: Better docs, internal refactors (#38664)

Click to expand commit body
Release Notes:

- N/A

Nia created

e602cfa Restore user-defined ordering of profiles (#38665)

Click to expand commit body
This PR fixes a regression where settings profiles were no longer
ordered in the same order that the user defined in their settings.

Release Notes:

- N/A

Joseph T. Lyons created

d4adb51 languages: Update package.json and tsconfig.json schemas (#38655)

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

- Add support for `tsconfig.*.json` not just `tsconfig.json`. 
- Updated JSON schemas to
[SchemaStore/schemastore@281aa4a](https://github.com/SchemaStore/schemastore/tree/281aa4aa4ac21385814423f86a54d1b8ccfc17a1)
(2025-09-21)
-
[tsconfig.json](https://github.com/SchemaStore/schemastore/commits/master/src/schemas/json/tsconfig.json)
@
[281aa4a](https://raw.githubusercontent.com/SchemaStore/schemastore/281aa4aa4ac21385814423f86a54d1b8ccfc17a1/src/schemas/json/tsconfig.json)
-
[package.json](https://github.com/SchemaStore/schemastore/commits/master/src/schemas/json/package.json)
@
[281aa4a](https://raw.githubusercontent.com/SchemaStore/schemastore/281aa4aa4ac21385814423f86a54d1b8ccfc17a1/src/schemas/json/package.json)

See also: 
- [discord
thread](https://discord.com/channels/869392257814519848/1419298937290096760)
-
https://github.com/zed-industries/zed/issues/21994#issuecomment-3319321308

Release Notes:

- Updated package.json and tsconfig.json schemas to newest release
(2025-09-21). Match `tsconfig.*.json` too.

Peter Tripp created

a0514af editor: Make buffer search bar capture CopyPath & CopyRelativePath actions (#38645)

Click to expand commit body
Closes #38495

Cause:

- When the Find input is focused, CopyPath/CopyRelativePath were handled
by the editor and stopped during the bubble phase, preventing
BufferSearchBar from relaying to the file-backed editor.

Release Notes:

- Fixes “Workspace: Copy Relative Path” not copying while the Find bar
is focused.

Miao created