b6ee367
markdown: Don't retain `MarkdownStyle` in favor of using `MarkdownElement` directly (#28255)
Click to expand commit body
This PR removes the retained `MarkdownStyle` on the `Markdown` entity in
favor of using the `MarkdownElement` directly and passing the
`MarkdownStyle` to it.
This makes it so switching themes will be reflected live in the code
block styles.
Release Notes:
- N/A
---------
Co-authored-by: Antonio Scandurra <me@as-cii.com>
Co-authored-by: Agus Zubiaga <hi@aguz.me>
Marshall Bowers
,
Antonio Scandurra
, and
Agus Zubiaga
created
aa02615
chore: Make objc a workspace level crate (#28258)
Click to expand commit body
Make objc a workspace level crate to unify version control
Release Notes:
- N/A
a577a72
Add support for `insert_text_mode` of a completion (#28171)
Click to expand commit body
I wanted this for CONL (https://conl.dev )'s nascent langauge server,
and it seems like most of the support was already wired up on the LSP
side, so this surfaces it into the editor.
Release Notes:
- Added support for the `insert_text_mode` field of completions from the
language server protocol.
Conrad Irwin
created
5a7222e
prompt_store: Remove additional code for /project (#27981)
Click to expand commit body
Found leftover from https://github.com/zed-industries/zed/pull/27660
Release Notes:
- N/A
Neo Nie
created
097aefe
agent: Display keybinding to delete Prompt Editor item (#28168)
Click to expand commit body
This PR makes the keybinding to remove Prompt Editor items visible in
the icon button tooltip.
Release Notes:
- N/A
Danilo Leal
created
99a9647
editor: Fix excerpt down scroll behavior to only scroll when there are enough lines (#28231)
Click to expand commit body
Follow up for https://github.com/zed-industries/zed/pull/27058
Improves excerpt down button to only scroll when there exists lines more
than equal to `expand_excerpt_lines`. This prevents weird shift at end
of the file.
Before:
https://github.com/user-attachments/assets/244a3bd6-d813-4cc8-9dcb-3addba2b652f
After:
https://github.com/user-attachments/assets/a9a9ba62-a454-4b56-9c8a-d8e6931b270b
Release Notes:
- N/A
656302e
Stop centering when selecting larger syntax nodes (#28172)
Click to expand commit body
With #27295, the cursor would center upon running
`SelectLargerSyntaxNode`. This was done to provide more context when
making large selections, but when making small selections (such as a
single parameter in an argument list) it was confusing that the scroll
position jumped.
This change makes that behavior slightly more conservative: now when the
selection is small enough to fit on the screen scrolling will only occur
to keep the cursor position on the screen (including respecting
`vertical_scroll_margin`).
Release Notes:
- N/A
Co-authored-by: João Marcos <marcospb19@hotmail.com>
Julia Ryan
and
João Marcos
created
956f359
project_panel: Add warning error for leading or trailing whitespace when creating file or directory (#28215)
Click to expand commit body
- Show yellow warning (instead or error) for leading/trailing
whitespace.
- Do not block user from creating it.
- If you rename existing file/dir which contains leading/trailing
whitespace, it will show error right away.
<img width="250" alt="image"
src="https://github.com/user-attachments/assets/562895ee-3a86-4ecd-bb38-703d1d8b8599"
/>
Release Notes:
- Added warning for leading or trailing whitespace while renaming or
creating new file or directory in Project Panel.
Use px over rem for positioning as rem is dependent on font
size.
Release Notes:
- N/A
Smit Barmase
created
d6d9c38
project_panel: Show error when file or directory already exists while renaming or creating new one (#28177)
Click to expand commit body
Closes #14425
<img width="289" alt="image"
src="https://github.com/user-attachments/assets/2994c401-23e3-419a-90fc-1a83959fdf21"
/>
Release Notes:
- Improved the project panel to show an error when a file or directory
already exists while renaming or creating a new one.
Smit Barmase
created
8cfb9be
Reapply support for X11 screenshare (#28160)
Click to expand commit body
Reapplies #27807 after [revert due to not building on
ARM](https://github.com/zed-industries/zed/pull/28141) by updating scap
to include [a fix to its build on
ARM](https://github.com/zed-industries/scap/commit/08f0a01417505cc0990b9931a37e5120db92e0d0)
Release Notes:
- N/A
---------
Co-authored-by: Marshall Bowers <git@maxdeviant.com>
57669b4
agent: Refresh UI when context or thread history changes (#28188)
Click to expand commit body
I found a few more cases where the UI wasn't updated immediately after
an interaction.
Release Notes:
- agent: Fixed delay after removing threads from "Past Interactions"
- agent: Fixed delay after adding/remove context via keyboard
Agus Zubiaga
created
b1f7133
agent: Refresh UI when sending first message (#28180)
Click to expand commit body
Release Notes:
- Agent Beta: Fixed a delay when sending the first message in a new
thread
Agus Zubiaga
created
ac9e2f3
Try to improve behavior when agent is stuck (#28169)
Click to expand commit body
Currently, it's pretty common that when the agent gets stuck, it deletes
whatever it's stuck on and replaces it with a TODO comment, then
cheerfully reports that it has "simpified" the implementation. This is
worse than leaving the broken code, because at least a human could take
over and try to get it across the finish line.
This system prompt adjustment attempts to make the agent do something
more useful when in this situation: report that it's stuck, explain why
it's stuck, and ask the user what to do.
Release Notes:
- N/A
Richard Feldman
created
a2fbe82
If file is too big, provide the outline and suggest a follow-up tool (#28158)
Click to expand commit body
<img width="622" alt="Screenshot 2025-04-05 at 5 48 14 PM"
src="https://github.com/user-attachments/assets/24b9c7d4-d3e2-4929-bca8-79db5b4e5748"
/>
Release Notes:
- The `read_files` tool now reads only the symbol outline files above a
certain size, to conserve context window space. Then it suggests that
the agent call `read_files` again with the relevant line ranges it saw
in the outline.
Richard Feldman
created
57d8c99
copilot: Create Copilot directory if it does not exist (#28157)
Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/27966
Issue:
- Copilot is failing to launch because the copilot directory is missing
<img width="497" alt="image"
src="https://github.com/user-attachments/assets/af35eb66-7e91-4dc6-a862-d1575da33b5b"
/>
<img width="943" alt="image"
src="https://github.com/user-attachments/assets/0b195c8c-52eb-42b9-bf36-40086398cc3f"
/>
Release Notes:
- copilot: Fixed an issue where GitHub Copilot would not install
properly if the directory was not present.
---------
Co-authored-by: Marshall Bowers <git@maxdeviant.com>
Richard Hao
and
Marshall Bowers
created
4182737
Revert "Add a next_mode to vim::Paste instead of hard-coding Normal mode (#27897) (#28162)
Click to expand commit body
This PR reverts #27897, as it is causing a number of Helix-related tests
to fail:
```
Summary [ 84.324s] 1796 tests run: 1793 passed, 3 failed, 0 skipped
FAIL [ 0.434s] vim helix::test::test_delete
FAIL [ 0.562s] vim helix::test::test_delete_character_end_of_buffer
FAIL [ 0.537s] vim helix::test::test_delete_character_end_of_line
```
This reverts commit 9949512b64ab2f472fc3426d853bc9bd0f6d94e2.
Release Notes:
- Community: Reverted https://github.com/zed-industries/zed/pull/27897.
Marshall Bowers
created
9949512
Add a next_mode to vim::Paste instead of hard-coding Normal mode (#27897)
Click to expand commit body
This adds a `next_mode` parameter to the `vim::Paste` action. My main
use-case for this is for helix users, who will want to switch into
`HelixNormal` mode instead of `Normal` mode.
I'm not sure if this is the best approach -- another possibility would
be to have a global vim-vs-helix configuration, and then have every
invocation of "normal" mode choose vim or helix based on that global
configuration. But the approach in this PR is much less invasive.
Release Notes:
- vim: switch to the configured default mode after paste instead of
hard-coding Normal mode
jneem
created
b9051e6
extension: Bump `wasi-sdk` to version 25 (#27906)
Click to expand commit body
This bumps `wasi-sdk` to version 25 and adds target architecture
conditionals.
Closes #18492
Release Notes:
- Fixed compiling dev extensions with Tree-sitter grammars on Linux
aarch64.
Kamil Jakubus
created
adbebb2
assistant: Fix `assistant: open prompt library` not opening the prompt library (#28156)
Click to expand commit body
This PR fixes the `assistant: open prompt library` action in the command
palette not opening the prompt library when the Assistant Panel did not
have focus.
Fixes https://github.com/zed-industries/zed/issues/28058.
Release Notes:
- assistant: Fixed `assistant: open prompt library` not opening the
prompt library when the Assistant Panel was not focused.
Marshall Bowers
created
caf0d6c
agent: Fix opening configuration view from the model selector (#28154)
Click to expand commit body
This PR fixes an issue where opening the configuration view from the
model selector in the Agent (or inline assist) was not working properly.
Fixes https://github.com/zed-industries/zed/issues/28078.
Release Notes:
- Agent Beta: Fixed an issue where selecting "Configure" in the model
selector would not bring up the configuration view.
Marshall Bowers
created
525755c
bedrock: Add support for tool use, cross-region inference, and Claude 3.7 Thinking (#28137)
Click to expand commit body
Closes #27223
Merges: #27996, #26734, #27949
Release Notes:
- AWS Bedrock: Added advanced authentication strategies with:
- Short lived credentials with Session Tokens
- AWS Named Profile
- EC2 Identity, Pod Identity, Web Identity
- AWS Bedrock: Added Claude 3.7 Thinking support.
- AWS Bedrock: Adding Cross Region Inference for all combinations of
regions and model availability.
- Agent Beta: Added support for AWS Bedrock.
---------
Co-authored-by: Marshall Bowers <git@maxdeviant.com>
A user reported this issue [on
Discord](https://discord.com/channels/869392257814519848/873292398204170290/1357879959422636185).
The issue here only arises for users which recently installed Zed or had
previously not dismissed the Git Onboarding component. It was introduced
by https://github.com/zed-industries/zed/pull/27412, which made the
banner component reusable.
For every banner, there is a value stored in the KVP store when it was
first dismissed. For the git onboarding banner, this was
`zed_git_banner_dismissed_at` initially, but this key would have been
changed by the linked PR. A change would have resulted in the banner
being shown again for users who already dismissed the panel, so for the
special case of `Git Onboarding`, a check was added which ensured this
would not happen.
However, this check was only added for reading from the key from the DB
but not on writing the git onboarding dismissal it to the DB. Thus, if a
user who had not previously dismissed the panel opened Zed, we would
check for the old key to be present in the DB. Since that would not be
the case, the banner would be shown. If the user dismissed the panel, it
would be stored in the database with the new key. Thus, on a reopen of
Zed, the banner would again be shown since for the old key there would
still be no value present and users are unable to dismiss the panel.
This PR fixes this behavior by moving the check into the method that
generates the key. With this, users which were unaffected by the bug
will still not see the panel again. Users who would install Zed with
this change present will be able to properly dismiss the panel aswell.
Users which were affected by the bug need to dismiss the banner one more
time. That happens because I did not want to modify the dismissal check
to check for two keys (the original one and the new one), as it would
clutter the logic even more for this special case. If this would be
preferred, feel free to let me know.
Release Notes:
- Fixed an issue where dismissing the git onboarding banner would not be
persisted across sessions.
Finn Evers
created
b78ac54
agent: Fix tool use output rendering (#28146)
Click to expand commit body
Tool use output wouldn't get rendered in some states.
Release Notes:
- N/A
Agus Zubiaga
created
2462b94
agent: Add missing notify in `ThreadHistory::delete_thread` (#28144)
Click to expand commit body
This would cause the history view not to get refreshed immediately when
a thread was deleted
Release Notes:
- agent: Fixed a bug where the history view wouldn't refresh after
deleting a thread
#28102 introduced a bug where thread summaries wouldn't get generated
because they would get set to the default title instead of `None`.
Not adding a release note because the bug didn't make it to Preview.
Release Notes:
- N/A
Agus Zubiaga
created
c1259c1
Revert "Use scap library to implement screensharing on X11 (#27807)" (#28141)
Click to expand commit body
This reverts commit c2afc2271b1dd420f482217cb0fa9dafcd17aab6.
Build on ARM if failing, likely because `c_char` is `u8` on arm and `i8`
on x86:
```
error[E0308]: mismatched types
--> /home/runner/.cargo/git/checkouts/scap-40ad33e1dd47aaea/5715067/src/targets/linux/mod.rs:75:74
|
75 | let result = unsafe { XmbTextPropertyToTextList(display, &mut xname, &mut list, &mut count) };
| ------------------------- ^^^^^^^^^ expected `*mut *mut *mut u8`, found `&mut *mut *mut i8`
| |
| arguments to this function are incorrect
|
= note: expected raw pointer `*mut *mut *mut u8`
found mutable reference `&mut *mut *mut i8`
note: function defined here
--> /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/x11-2.21.0/src/xlib.rs:552:10
|
552 | pub fn XmbTextPropertyToTextList (_4: *mut Display, _3: *const XTextProperty, _2: *mut *mut *mut c_char, _1: *mut c_int) -> c_int,
| ^^^^^^^^^^^^^^^^^^^^^^^^^
```
Release Notes:
- N/A
Add the following actions for use while calling: `Mute`, `Deafen`,
`ShareProject`, `ScreenShare`, `LeaveCall`
We were also interested in adding push-to-talk functionality for mute,
but that will go in a followup PR
Release Notes:
- Call actions (mute/screenshare/etc.) can now be bound to keys and run from the command palette.
---------
Co-authored-by: Ben Kunkle <ben.kunkle@gmail.com>
Co-authored-by: Ben Kunkle <ben@zed.dev>
Julia Ryan
,
Ben Kunkle
, and
Ben Kunkle
created
69d7ea7
buffer: Fix broken auto indent when pasting code starting with new line (#28134)
Click to expand commit body
Closes #26907
Currently, in case of new line to find delta, it is comparing old first
line indent with new second line indent. This results into incorrect
indentation. This PR fixes this delta calculation by passing correct
second line indent in that particular case.
- [X] Add Test
Before:
https://github.com/user-attachments/assets/065deba0-be19-4643-a784-d248a8e7c891
After:
https://github.com/user-attachments/assets/a0037043-4bd8-460f-b8ba-b7da7bdbe1ea
Release Notes:
- Fixed issue where pasting code starting with new line resulted
incorrect auto indent.
A "Near" block acts similarly to a "Below" block, but can (if it's
height is <= one line height) be shown on the end of the preceding line
instead of adding an entire blank line to the editor.
You can test it out by pasting this into `go_to_diagnostic_impl` and
then press `F8`
```
let buffer = self.buffer.read(cx).snapshot(cx);
let selection = self.selections.newest_anchor();
self.display_map.update(cx, |display_map, cx| {
display_map.insert_blocks(
[BlockProperties {
placement: BlockPlacement::Near(selection.start),
height: Some(1),
style: BlockStyle::Flex,
render: Arc::new(|_| {
div()
.w(px(100.))
.h(px(16.))
.bg(gpui::hsla(0., 0., 1., 0.5))
.into_any_element()
}),
priority: 0,
}],
cx,
)
});
return;
```
Release Notes:
- N/A
---------
Co-authored-by: Antonio Scandurra <me@as-cii.com>
Conrad Irwin
and
Antonio Scandurra
created
10821aa
file_finder: Fix filename matching to require contiguous characters (#28093)
Click to expand commit body
Improves https://github.com/zed-industries/zed/pull/27937 to only
prioritize file name if it's contiguous character match.
Release Notes:
- N/A
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Smit Barmase
and
Conrad Irwin
created
03aadb4
telemetry_events: Rename `AssistantEvent` to `AssistantEventData` (#28133)
Click to expand commit body
This PR renames the `AssistantEvent` type to `AssistantEventData`, as it
no longer represents the event itself, just the data needed to construct
it.
Pulling out of https://github.com/zed-industries/zed/pull/25179.
Release Notes:
- N/A
Marshall Bowers
created
8ab252c
Split protobufs into separate files (#28130)
Click to expand commit body
The one big protobuf file was getting a bit difficult to navigate. I
split it into separate topic-specific files that import each other.
Release Notes:
- N/A
Max Brunsfeld
created
e74af03
Restore direct use of the input text for Markdown `Text` (#27620)
Click to expand commit body
PR #24388 changed the markdown parsing to copy parsed text in order to
handle markdown escaping, removing the optimization to instead reuse
text from the input.
Another issue with that change was that handling of finding links within
`Text` intermixed use of `text` and `parsed`, relying on the offsets
matching up (which I believe was true in practice).
The solution is to distinguish pulldown_cmark `Text` nodes that share
bytes with the input and those that do not.
Release Notes:
- N/A
Michael Sloan
created
4bcd37a
agent: Fix panic when opening Agent diff from the workspace (#28132)
Click to expand commit body
This PR fixes a panic that could occur when opening the Agent diff from
the workspace (with the agent panel closed).
Release Notes:
- agent: Fixed a panic when running the `agent: open agent diff` command
with the Agent Panel closed.
This PR removes replaces the `.unwrap`s when accessing the debug panel
with `if let Some`s.
These `.unwrap`s are not locally verifiable, and thus are not safe.
Release Notes:
- N/A
Marshall Bowers
created
8b077f0
gpui: Avoid dereferencing null pointer in `MacWindow::update_ime_position` (#28110)
Click to expand commit body
Seems to be very similar to
https://github.com/zed-industries/zed/pull/28059
Edit: Updated the reproduction-steps as I missed something.
The method without a check currently causes my debug-builds to crash on
the regular if I:
- Run a debug build and open it fullscreen in a dedicated space on my
Mac.
- Work on any of the built-in languages (e.g. remove some content from
any `highlights.scm`)
- Reopen the workspace with the debug-build.
- Crash.
~~We might actually be able to revert the changes made in
https://github.com/zed-industries/zed/pull/21510 and just add the
null-check. Then again, I am not at all sure whether that would work.~~
See comment below.
Release Notes:
- N/A