17db7b0
Add keymap field to bug report issue template (#44564)
Click to expand commit body
Update the issue template used for "Report a bug" to include a field
specifically for the user's keymap file, as we've seen multiple cases
where we end up asking the users for their custom keymap, to ensure that
they're not overriding existing defaults.
Release Notes:
- N/A
Dino
created
1afe294
Move servers back from the background thread (#44696)
Click to expand commit body
Partial revert of https://github.com/zed-industries/zed/pull/44631
With this and `sccache` enabled, I get
<img width="3456" height="1096" alt="image"
src="https://github.com/user-attachments/assets/937760fb-8b53-49f8-ae63-4df1d31b292b"
/>
and r-a infinitely hangs waiting on this.
Release Notes:
- N/A
12073e1
Fix missing buffer font features in Blame UI, Hover Popover and Markdown Preview (#44657)
Click to expand commit body
- Fix missing font features in
`git_ui::blame_ui::GitBlameRenderer.render_blame_entry`
- Fix missing buffer font features in
`markdown_preview::markdown_renderer`
- Update the way that the markdown style is built for hover popovers so
that, for code blocks, the buffer font features are used.
- Introduce `gpui::Styled.font_features` to allow callers to also set
the font's features, similar to how `gpui::Styled.font_family` already
exists.
Relates to #44209
Release Notes:
- Fixed wrong font features in Blame UI, Hover Popover and Markdown
Preview
Dino
created
1186b50
git_ui: Fix commit and amend not working via keybinds in commit modal (#44690)
Click to expand commit body
Closes #41567
We were using the git panel editor to check the focus where the commit
modal has its only editor.
Release Notes:
- Fixed an issue where commit and amend actions wouldn’t trigger when
using keybinds in the commit modal.
Smit Barmase
created
65130a9
windows: Fix more VSCode keybinds (#44684)
23d18fd
git_ui: Always use latest commit message on amend (#44553)
Click to expand commit body
Update the behavior of `git::Amend` to ensure that the latest head
commit message, if available, is always loaded into the commit message
editor, regardless of its state. The previous text, if any, is now also
restored after the amend is finished.
- Update `FakeGitRepository.show` to include a message in the returned
`CommitDetails` so we can assert that this specific commit message is
set in the commit message editor.
- Add default implementation for `FakeGitRepository.commit` and
`FakeGitRepository.run_hook` to ensure that tests are able to run and
don't panic on `unimplemented!()`
- Refactor `GitPanel.load_last_commit_message_if_empty` to
`GitPanel.load_last_commit_message`, ensuring that the head commit
message is always loaded, regardless of whether the commit message
editor is empty.
- Update `GitPanel.commit_changes` to ensure that the pending amend
state is only updated if the editor managed to actually commit the
changes. This also ensures that we don't restore the commit message
editor's contents when amending a commit, before the amend is actually
processed.
- Update `CommitModal.amend`, removing the call to
`GitPanel.set_amend_pending` as that is now handled by the background
task created in `GitPanel.commit_changes`.
- Split the `commit` and `amend` methods from the event handlers so that
the methods can be called directly, as is now being done by
`CommitModal.on_commit` and `CommitModal.on_amend`.
Release Notes:
- Updated the `git: amend` command to always load the latest head
commit message, and to restore any previously entered text in the commit
message editor after the amend completes
Closes #44510
Release Notes:
- Improve performance of terminal link matching even more
Conrad Irwin
created
b871130
Restructure concurrency in EP CLI to allow running many examples in big rust repos (#44673)
Click to expand commit body
Release Notes:
- N/A
Max Brunsfeld
created
0a1e5f9
Allow triggering after release workflow manually (#44671)
Click to expand commit body
Release Notes:
- N/A
Conrad Irwin
created
8d0fff6
rust: Change cwd of `cargo run`-esque tasks to use package root, not dirname of current file as cwd (#44672)
Click to expand commit body
This also applies to `cargo clean` one.
Closes #20873
Release Notes:
- rust: Changed cwd of tasks that spawn a binary target to the root of a
current package (which used to be a directory of the current source
file).
Piotr Osiewicz
created
717d898
Show an underlying reason on file opening (#44664)
Click to expand commit body
Based on the debug attempt from
https://github.com/zed-industries/zed/issues/44370
Release Notes:
- N/A
Kirill Bulatov
created
1cd7563
Add ep distill command, for generating edit prediction training examples (#44670)
07748b7
Add scrolling functionality to markdown preview mode (#44585)
Click to expand commit body
Closes #21324
Adds four new commands:
- `markdown::MoveUp`, `markdown::MoveDown` - these scroll up and down in
markdown preview mode, by no more than the height of a large headline.
- `markdown::MoveUpByItem`, and `markdown::MoveDownByItem` - these
scroll up and down by the height of the item at the top of the markdown
preview window. So headlines and large codeblocks, for instance, scroll
further than individual paragraph lines.
Also attempts to create sensible defaults:
`down` -> `markdown::ScrollDown`
`up` -> `markdown::ScrollUp`
`alt-down` -> `markdown::ScrollDownByItem`
`alt-up` -> `markdown::ScrollUpByItem`
And in Vim:
`ctrl-u` -> `markdown::ScrollPageUp`
`ctrl-d` -> `markdown::ScrollPageDown`
`ctrl-e` -> `markdown::ScrollDown`
`ctrl-y` -> `markdown::ScrollUp`
Release Notes:
- Added commands `markdown::ScrollUp`, `markdown::ScrollDown`,
`markdown::ScrollUpByItem`, and `markdown::ScrollDownByItem`
- Changed commands `markdown::MovePageUp` to `markdown::ScrollPageUp`
and `markdown::MovePageDown` to `markdown::ScrollPageDown`
<img width="429" height="188" alt="Screenshot 2025-12-11 at 3 45 26 PM"
src="https://github.com/user-attachments/assets/fe9f1b86-7268-4c63-a8c2-75ac671012c9"
/>
Release Notes:
- Added GPT-5.2 support when using your own OpenAI key
Richard Feldman
created
eb7da26
Disable word completions in markdown and plaintext files (#44654)
Click to expand commit body
Reformat on save had also added trailing commas.
Release Notes:
- Disable word completions in plaintext and markdown files, see
https://zed.dev/docs/configuring-zed?highlight=word%20completio#words on
how to enable it back in the language settings
Kirill Bulatov
created
9c099e7
Update file vs folder open keymaps on macos/linux to match windows (#44598)
Click to expand commit body
Closes #44597
Matches what was done here:
https://github.com/zed-industries/zed/pull/44409/commits/55dfbaca685fc466efedace55527b9d12ab67950#diff-cc832e840d61526768bb4acec7645a71e8b160a65a30e7ce9e9c51762b58199a
Release Notes:
- Standardize Cmd-O = open file, Cmd-K Cmd-O = open folder across
operating systems.
---------
Co-authored-by: Lukas Wirth <me@lukaswirth.dev>
Zachiah Sawyer
and
Lukas Wirth
created
7669b05
image viewer: Make image metadata not a button (#44651)
Click to expand commit body
Tiny thing I noticed; the image metadata showing on the status bar was
previously a button, but given that nothing happens when you click it,
it doesn't need to be one. Having hover, active, and all other states
was confusing.
Release Notes:
- N/A
Danilo Leal
created
2098b67
edit prediction: Respect enabled settings when refreshing from diagnostics (#44640)
Click to expand commit body
Release Notes:
- N/A
Agus Zubiaga
created
5a6198c
language: Spawn language servers on background threads (#44631)
Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/39056
Leverages a new `await_on_background` API that spawns the future on the
background but blocks the current task, allowing to borrow from the
surrounding scope.
Release Notes:
- N/A *or* Added/Fixed/Improved ...
Lukas Wirth
created
cda78c1
git: Make permalinks aware of current diffs (#41915)
Click to expand commit body
Addressing #22546, we want git permalinks to be aware of the current
changes within the buffer.
This change calculates how many lines have been added/deleted between
the start and end of the selection and uses those values to offset the
selection.
This is done within `Editor::get_permalink_to_line` so that it can be
passed to any git_store.
Example:
<img width="284" height="316" alt="image"
src="https://github.com/user-attachments/assets/268043a0-2fc8-41c1-b094-d650fd4e0ae0"
/>
Where this selections permalink would previously return L3-L9, it now
returns L2-L7.
Release Notes:
- git: make permalinks aware of current diffs
Closes #22546
---
This is my first PR into the zed repository so very happy for any
feedback on how I've implemented this. Thanks!
Siame Rafiq
created
f437867
editor: Fix auto-indent cases in Markdown (#44616)
Click to expand commit body
Builds on https://github.com/zed-industries/zed/pull/40794 and
https://github.com/zed-industries/zed/pull/44381
- Fixes the case where creating a new line inside a nested list puts the
cursor correctly under that nested list item.
- Fixes the case where typing a new list item at the expected indent no
longer auto-indents or outdents incorrectly.
Release Notes:
- Fixed an issue in Markdown where new list items weren’t respecting the
expected indentation on type.
Improves the scheduler by allowing tasks to have a set priority which
will significantly improve responsiveness.
Release notes:
- N/A
---------
Co-authored-by: Yara <git@yara.blue>
localcc
and
Yara
created
8572c19
Improve TS/TSX/JS syntax highlighting for parameters, types, and punctuation (#44532)
Click to expand commit body
Relands https://github.com/zed-industries/zed/pull/43437
Release Notes:
- Refined syntax highlighting in JavaScript and TypeScript for better
visual distinction of types, parameters, and JSDoc elements
---------
Co-authored-by: MrSubidubi <dev@bahn.sh>
Co-authored-by: Clay Tercek <30105080+claytercek@users.noreply.github.com>
Gaauwe Rombouts
,
MrSubidubi
, and
Clay Tercek
created
045c145
util: Honor shell args for shell env fetching on windows (#44615)
Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/40464
Release Notes:
- Fixed shell environment fetching on windows discarding specified
arguments in settings
a6b9524
gpui: Retain maximized and fullscreen state for new windows derived from previous windows (#44605)
Click to expand commit body
Release Notes:
- Fixed new windows underflowing the taskbar on windows
- Improved new windows spawned from maximized or fullscreened windows by
copying the maximized and fullscreened states
Lukas Wirth
created
7ed5d42
git: Fix git hook hang with `prek` (#44212)
Click to expand commit body
Fix git hook hang when using with `prek`. Can see
[comments](https://github.com/zed-industries/zed/issues/44057#issuecomment-3606837089),
this is easy test, should using release build, debug build sometimes not
hang.
The issue existing long time, see issue #37293 , and then in commit
#42239 this issue had fixed. but in commit #43285 broken again. So I
reference the implementation in #42239, then this code work.
I MUST CLAIM, I really don't known what happend, and why this code work.
But it worked.
Release Notes:
- N/A
---------
Co-authored-by: Cole Miller <cole@zed.dev>
This PR restructures the commands of the Edit Prediction CLI (now called
`ep`), to support some flows that are important for the training
process:
* generating zeta2 prompt and expected output, without running
predictions
* scoring outputs that are generated by a system other than the
production code (to evaluate the model during training)
To achieve this, we've restructured the CLI commands so that they all
take as input, and produce as output, a consistent, uniform data format:
a set of one or more `Example` structs, expressible either as the
original markdown format, or as a JSON lines. The `Example` struct
starts with the basic fields that are in human-readable eval format, but
contain a number of optional fields that are filled in by different
steps in the processing pipeline (`context`, `predict`, `format-prompt`,
and `score`).
### To do
* [x] Adjust the teacher model output parsing to use the full buffer
contents
* [x] Move udiff to cli
* [x] Align `format-prompt` with Zeta2's production code
* [x] Change score output to assume same provider
* [x] Move pretty reporting to `eval` command
* [x] Store cursor point in addition to cursor offset
* [x] Rename `edit_prediction_cli2` -> `edit_prediction_cli` (nuke the
old one)
Release Notes:
- N/A
---------
Co-authored-by: Oleksiy Syvokon <oleksiy@zed.dev>
Co-authored-by: Agus Zubiaga <agus@zed.dev>
Co-authored-by: Ben Kunkle <ben@zed.dev>
Max Brunsfeld
,
Oleksiy Syvokon
,
Agus Zubiaga
, and
Ben Kunkle
created
37077a8
git: Avoid calling `git help -a` on every commit (#44586)
Click to expand commit body
Updates #43993
Release Notes:
- N/A
Cole Miller
created
7c4a85f
ci: Explicitly set git committer information in protobuf check (#44582)
Click to expand commit body
This should hopefully fix the flakes for good.
Release Notes:
- N/A
Finn Evers
created
d21628c
Revert "Increase askpass timeout for git operations (#42946)" (#44578)
Click to expand commit body
This reverts commit a74aac88c95738b1e1c95ac583b116a253920fbf.
cc @11happy, we need to do a bit more than just running `git hook
pre-push` before pushing, as described
[here](https://github.com/zed-industries/zed/pull/42946#issuecomment-3550570438).
Right now this is also running the pre-push hook twice.
Release Notes:
- N/A
Cole Miller
created
9e62850
git: Add tree view support to Git Panel (#44089)
Click to expand commit body
Closes #35803
This PR adds tree view support to the git panel UI as an additional
setting and moves git entry checkboxes to the right. Tree view only
supports sorting by paths behavior since sorting by status can become
noisy, due to having to duplicate directories that have entries with
different statuses.
### Tree vs Flat View
<img width="358" height="250" alt="image"
src="https://github.com/user-attachments/assets/c6b95d57-12fc-4c5e-8537-ee129963e50c"
/>
<img width="362" height="152" alt="image"
src="https://github.com/user-attachments/assets/0a69e00f-3878-4807-ae45-65e2d54174fc"
/>
#### Architecture changes
Before this PR, `GitPanel::entries` represented all entries and all
visible entries because both sets were equal to one another. However,
this equality isn't true for tree view, because entries can be
collapsed. To fix this, `TreeState` was added as a logical indices field
that is used to filter out non-visible entries. A benefit of this field
is that it could be used in the future to implement searching in the
GitPanel.
Another significant thing this PR changed was adding a HashMap field
`entries_by_indices` on `GitPanel`. We did this because `entry_by_path`
used binary search, which becomes overly complicated to implement for
tree view. The performance of this function matters because it's a hot
code path, so a linear search wasn't ideal either. The solution was
using a hash map to improve time complexity from O(log n) to O(1), where
n is the count of entries.
#### Follow-ups
In the future, we could use `ui::ListItem` to render entries in the tree
view to improve UI consistency.
Release Notes:
- Added tree view for Git panel. Users are able to switch between Flat
and Tree view in Git panel.
---------
Co-authored-by: Anthony Eid <anthony@zed.dev>
Co-authored-by: Remco Smits <djsmits12@gmail.com>
Xipeng Jin
,
Anthony Eid
, and
Remco Smits
created
3a84ec3
Introduce MVP Dev Containers support (#44442)
Click to expand commit body
Partially addresses #11473
MVP of dev containers with the following capabilities:
- If in a project with `.devcontainer/devcontainer.json`, a pop-up
notification will ask if you want to open the project in a dev
container. This can be dismissed:
<img width="1478" height="1191" alt="Screenshot 2025-12-08 at 3 15
23 PM"
src="https://github.com/user-attachments/assets/ec2e20d6-28ec-4495-8f23-4c1d48a9ce78"
/>
- Similarly, if a `devcontainer.json` file is in the project, you can
open a devcontainer (or go the devcontainer.json file for further
editing) via the `open remote` modal:
https://github.com/user-attachments/assets/61f2fdaa-2808-4efc-994c-7b444a92c0b1
*Limitations*
This is a first release, and comes with some limitations:
- Zed extensions are not managed in `devcontainer.json` yet. They will
need to be installed either on host or in the container. Host +
Container sync their extensions, so there is not currently a concept of
what is installed in the container vs what is installed on host: they
come from the same list of manifests
- This implementation uses the [devcontainer
CLI](https://github.com/devcontainers/cli) for its control plane. Hence,
it does not yet support the `forwardPorts` directive. A single port can
be opened with `appPort`. See reference in docs
[here](https://github.com/devcontainers/cli/tree/main/example-usage#how-the-tool-examples-work)
- Editing devcontainer.json does not automatically cause the dev
container to be rebuilt. So if you add features, change images, etc, you
will need to `docker kill` the existing dev container before proceeding.
- Currently takes a hard dependency on `docker` being available in the
user's `PATH`.
Release Notes:
- Added ability to Open a project in a DevContainer, provided a
`.devcontainer/devcontainer.json` is present
---------
Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
Co-authored-by: Danilo Leal <67129314+danilo-leal@users.noreply.github.com>
KyleBarton
,
Danilo Leal
, and
Danilo Leal
created
a61bf33
Fix label copy for file history menu items (#44569)
Click to expand commit body
Buttons and menu items should preferably always start with an infinitive
verb that describes what will happen when you trigger them. Instead of
just "File History", we should say "_View_ File History".
Release Notes:
- N/A
Danilo Leal
created
d832012
Use shell to launch MCP and ACP servers (#42382)
Click to expand commit body
`npx`, and any `npm install`-ed programs, exist as batch
scripts/PowerShell scripts on the PATH. We have to use a shell to launch
these programs.
Fixes https://github.com/zed-industries/zed/issues/41435
Closes https://github.com/zed-industries/zed/pull/42651
Release Notes:
- windows: Custom MCP and ACP servers installed through `npm` now launch
correctly.
---------
Co-authored-by: Lukas Wirth <me@lukaswirth.dev>
John Tur
and
Lukas Wirth
created
8ee85ea
vim: Remove `ctrl-6` keybinding alias for `pane::AlternateFile` (#44560)
Click to expand commit body
Closes #ISSUE
It seems that `ctrl-6` is used exclusively as an alias, as can be seen
in the [linked section of the vim
docs](https://vimhelp.org/editing.txt.html#CTRL-%5E) from the initial PR
that added it. This however conflicts with the `ctrl-{n}` bindings for
`pane::ActivateItem` on macOS, leading to confusing file selection when
`ctrl-6` is pressed.
Release Notes:
- vim(BREAKING): Removed a keybinding conflict between the default macOS
bindings for `pane::ActivateItem` and the `ctrl-6` alias
for`pane::AlternateFile` which is primarily bound to `ctrl-^`. `ctrl-6`
is no longer treated as an alias for `ctrl-^` in vim mode. If you'd like
to restore `ctrl-6` as a binding for `pane::AlternateFile`, paste the
following into your `keymap.json` file:
```
{
"context": "VimControl && !menu",
"bindings": {
"ctrl-6": "pane::AlternateFile"
}
}
```
Ben Kunkle
created
5b309ef
acp: Better telemetry IDs for ACP agents (#44544)
Click to expand commit body
We were defining these in multiple places and also weren't leveraging
the ids the agents were already providing.
This should make sure we use them consistently and avoid issues in the
future.
Release Notes:
- N/A
Ben Brandt
created
326ebb5
git: Fix failing commits when hook command is not available (#43993)
Mayank Verma
created
f5babf9
agent_ui: Fix `project path not found` error when pasting code from other project (#44555)
Click to expand commit body
The problem with inserting the absolute paths is that the agent will try
to read them. However, we don't allow the agent to read files outside
the current project. For now, we will only insert the crease in case the
code that is getting pasted is from the same project
Release Notes:
- Fixed an issue where pasting code into the agent panel from another
window would show an error
4106c8a
Disable OmniSharp by default for C# files (#44427)
Click to expand commit body
In preparation for https://github.com/zed-extensions/csharp/pull/11. Do
not merge before that PR is published.
Release Notes:
- Added support for Roslyn in C# files. Roslyn will now be the default
language server for C#
Finn Evers
created
21f7e6a
commit view: Fix layout shift while loading commit (#44548)
Click to expand commit body
Fixes a few cases where the commit view would layout shift as the diff
loaded. This was caused by:
- Adding the commit message buffer after all the diff files
- Using the gutter dimensions from the last frame for the avatar spacing
Release Notes:
- commit view: Fix layout shift while loading commit
---------
Co-authored-by: MrSubidubi <dev@bahn.sh>
Agus Zubiaga
and
MrSubidubi
created
dd43163
editor: Ensure completion menu scrollbar does not become stale (#44536)
Click to expand commit body
Only by reusing the previous scroll handle, we can ensure that both the
scrollbar remains usable and also that the scrollbar does not flicker.
Previously, the scrollbar would hold the reference to an outdated
handle.
I tried invalidating the handle the scrollbar uses, but that leads to
flickering, which is worse. Hence, let's just reuse the scrollbar here.
Release Notes:
- Fixed an issue where the scrollbar would become stale in the code
completions menu after the items were updated.
Finn Evers
created
511e51c
text: Replace some more release panics with graceful fallbacks (#44542)