80acecc
Improve R install docs (#22737)
Click to expand commit body
Release Notes: - N/A
Peter Tripp created
80acecc
Improve R install docs (#22737)
Release Notes: - N/A
Peter Tripp created
bbce1c1
Add compile_commands.json documentation for C/C++ (#22639)
Added documentation explaining that clangd requires `compile_commands.json` for proper functionality in both C and C++ projects. Includes instructions for generating the file using CMake. This is related to https://github.com/zed-industries/zed/discussions/6480 Release Notes: - N/A --------- Co-authored-by: Peter Tripp <peter@zed.dev>
Justin Simon and Peter Tripp created
2856d0a
Fix inline assist layout issues related to screen size (#22732)
## Before https://github.com/user-attachments/assets/c84f15d2-5643-46f2-9eb6-f0234c563c01 ## After https://github.com/user-attachments/assets/d4eab08a-1bd5-442c-9663-34bb512dba4b Release Notes: - N/A --------- Co-authored-by: Marshall <marshall@zed.dev>
Richard Feldman and Marshall created
799e81f
google_ai: Add Gemini 2.0 Flash support (#22665)
Release Notes: - Added support for Google's Gemini 2.0 Flash experimental model. Note: Weirdly enough the model is slow on small talk responses like 'hi' (in my tests) but very fast on things that need more tokens like 'write me a snake game in python'. Likely an API problem. TESTED ONLY ON WINDOWS! Would test further but don't have Linux installed and don't have an Mac. Will likely work everywhere. Why?: I think Gemini 2.0 Flash is incredibly good model at coding and following instructions. I think it would be nice to have it in the editor. I did as minimal changes as possible while adding the model and streaming validation. I think it's worth merging the commits as they bring good improvements. --------- Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
volt and Marshall Bowers created
0d30bda
Rename livekit_client_macos test_app to suppress warnings (#22719)
Current copy/paste conflict between crates triggers warnings during test runs. <img width="1492" alt="Screenshot 2025-01-06 at 12 41 11" src="https://github.com/user-attachments/assets/ea7f90ec-bef8-482a-a954-6d5c41b9fd7e" /> Release Notes: - N/A
Peter Tripp created
ec2506b
Fix a bug where repositories were always being marked as changed (#22725)
Release Notes: - N/A Co-authored-by: cole <cole@zed.dev>
Mikayla Maki and cole created
3a061a9
assistant2: Do not allow a context entry to be added multiple times (#22712)
https://github.com/user-attachments/assets/81674c88-031b-4d55-b362-43819492b93d Release Notes: - N/A
Agus Zubiaga created
c74e5f5
assistant2: Render placeholder thread title until summary is generated (#22723)
This PR ensures we render a "New Thread" placeholder title until a message has been sent, and thus, a summary is generated. https://github.com/user-attachments/assets/1c30e0ff-baaa-44ad-a1a2-42f1ce9fe0b0 Release Notes: - N/A
Danilo Leal created
2023c43
ci: Add logging to docs-only change detection (#22724)
This PR adds some logging to the docs-only change detection, for better auditability. Release Notes: - N/A
Marshall Bowers created
84fdcbb
Document `git.gutter_debounce` setting (#22663)
Closes #22588 by providing documentation to git.gutter_debounce setting Release Notes: - N/A --------- Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
spotikhanov and Marshall Bowers created
2dec4c2
Use info popovers instead of diagnostic for invisible char hover (#22701)
This will allow the diagnostic popover to be displayed even if hovering an invisible char. Beyond that, it solves a rare `DiagnosticPopover` corner case: * Supports moving the selection to a diagnostic when `GoToDiagnostic` is done while hovering, based on `group_id` * Provides Diagnostic values with `group_id: 0` providing information on hover about invisible characters. So, `GoToDiagnostic` would navigate to the very first error produced by a language server. Really not a big deal of course. Release Notes: - N/A
Michael Sloan created
d02bfe1
Add a case for shadows when blur_radius = 0 (#22441)
Closes #22433 Before/After (macOS):  For some reason the non-blurred one seems much lower quality, so we may need to tinker with the samples, or something else.  I'm unsure if this is a problem on Linux/in the Blade renderer, but since no changes were made outside of the medal shaders we can probably take this macOS-specific win for now. Release Notes: - gpui: Fixed an issue where shadows with a `blur_radius` of 0 would not render.
Nate Butler created
154a391
zed: Add timeouts for feature flag resolution in workspace panel initialization (#22715)
This PR adds timeouts when resolving feature flags during workspace panel initialization so that we don't block indefinitely if Zed is not connected to the internet. Right now we wait for 5 seconds, but this value was chosen arbitrarily. Release Notes: - N/A
Marshall Bowers created
0f548c6
Make `show project panel` keyboard shortcut work in more places (#22713)
- Closes: https://github.com/zed-industries/zed/issues/22699 - Refine the key binding for `cmd-shift-e` (macOS) / `ctrl-shift-e` (linux) - Now Works after closing the final buffer - Now Works from other panels (Terminal/Assistant/Collab/Chat/etc) Follow-up to: - https://github.com/zed-industries/zed/pull/21228 Release Notes: - Fixed Project Panel toggle (`cmd-shift-e` / `ctrl-shift-e`) so it works in more contexts.
Peter Tripp created
033726c
Improve diagnostics multibuffer design (#22705)
Namely, just removing the unnecessary extra line dividers and adding a super subtle background color to the diagnostic message to create a bit of separation/hierarchy. <img width="800" alt="Screenshot 2025-01-04 at 9 46 03β―PM" src="https://github.com/user-attachments/assets/d62883b9-ed76-4fbb-b9c1-b55146eaeed4" /> Release Notes: - N/A
Danilo Leal created
d83f1e8
Revert "Start diagnostic group_id at 1 to handle non LS diagnostics (#22694) (#22700)
This reverts commit 3ae6aa0e4dbc21c09c14d7bb92b4c52cf480d39f. If "group_id = 0" really did mean a diagnostic not from a language server then various methods related to diagnostic set would need to be updated. Something like [this diff](https://gist.github.com/mgsloan/e902153bcaec207b39260a8f40d3134d). Plan instead is to use InfoPopover instead of DiagnosticPopover for these. Release Notes: - N/A
Michael Sloan created
1ef638d
Remove unnecessary lifetimes on `Buffer::diagnostic_group` (#22698)
Release Notes: - N/A
Michael Sloan created
fcb0398
Remove unnecessary finding of primary diagnostic for diagnostic hover (#22697)
No need to find or store the primary range ahead of time as it's found by `activate_diagnostics`. Not entirely sure we should still even have the special case when the popover is visible. It does support the keyboard interaction of opening hover followed by jumping to the primary position, but that seems pretty undiscoverable. Support for clicking the hover to navigate to the primary diagnostic was removed in https://github.com/zed-industries/zed/pull/3408 Release Notes: - N/A
Michael Sloan created
2a9fa0e
Ensure `end >= start` in `lsp::Range` (#22690)
Should resolve https://github.com/zed-industries/zed/issues/21714.
In some conditions that I'm not sure of, Zed sends LSP requests with
`start > end` position, and zls has an [assertion for end >=
start](https://github.com/zigtools/zls/blob/f253553b8230ecd94824ecc3e2da2eb1643e7512/src/offsets.zig#L492),
and that causes zls to crash, like:
```bash
# first `textDocument/inlayHint` request with `end >= start`
[2025-01-05T19:33:09+00:00 TRACE lsp] outgoing message:{"jsonrpc":"2.0","id":1043,"method":"textDocument/inlayHint","params":{"textDocument":{"uri":"file:///Users/burak/Code/parzig/src/parquet/decoding.zig"},"range":{"start":{"line":0,"character":0},"end":{"line":24,"character":0}}}}
# successful response
[2025-01-05T19:33:09+00:00 TRACE lsp::input_handler] incoming message: {"jsonrpc":"2.0","id":1043,"result":[{"position":{"line":0,"character":9},"label":": type","kind":1,"paddingLeft":false,"paddingRight":false},{"position":{"line":1,"character":22},"label":": type","kind":1,"paddingLeft":false,"paddingRight":false},{"position":{"line":4,"character":13},"label":": [](unknown type)","kind":1,"paddingLeft":false,"paddingRight":false},{"position":{"line":4,"character":30},"label":"T:","kind":2,"tooltip":{"kind":"markdown","value":"```zig\ncomptime type\n```"},"paddingLeft":false,"paddingRight":true},{"position":{"line":4,"character":33},"label":"n:","kind":2,"tooltip":{"kind":"markdown","value":"```zig\nusize\n```"},"paddingLeft":false,"paddingRight":true},{"position":{"line":5,"character":23},"label":": bool","kind":1,"paddingLeft":false,"paddingRight":false},{"position":{"line":6,"character":19},"label":": usize","kind":1,"paddingLeft":false,"paddingRight":false},{"position":{"line":9,"character":26},"label":": [](unknown type)","kind":1,"paddingLeft":false,"paddingRight":false},{"position":{"line":9,"character":43},"label":"T:","kind":2,"tooltip":{"kind":"markdown","value":"```zig\ncomptime type\n```"},"paddingLeft":false,"paddingRight":true},{"position":{"line":9,"character":47},"label":"n:","kind":2,"tooltip":{"kind":"markdown","value":"```zig\nusize\n```"},"paddingLeft":false,"paddingRight":true},{"position":{"line":21,"character":13},"label":": [](unknown type)","kind":1,"paddingLeft":false,"paddingRight":false},{"position":{"line":21,"character":30},"label":"T:","kind":2,"tooltip":{"kind":"markdown","value":"```zig\ncomptime type\n```"},"paddingLeft":false,"paddingRight":true},{"position":{"line":21,"character":33},"label":"n:","kind":2,"tooltip":{"kind":"markdown","value":"```zig\nusize\n```"},"paddingLeft":false,"paddingRight":true},{"position":{"line":22,"character":33},"label":"T:","kind":2,"tooltip":{"kind":"markdown","value":"```zig\ncomptime type\n```"},"paddingLeft":false,"paddingRight":true},{"position":{"line":22,"character":36},"label":"buf:","kind":2,"tooltip":{"kind":"markdown","value":"```zig\n[]T\n```"},"paddingLeft":false,"paddingRight":true},{"position":{"line":22,"character":41},"label":"bit_width:","kind":2,"tooltip":{"kind":"markdown","value":"```zig\nu8\n```"},"paddingLeft":false,"paddingRight":true},{"position":{"line":22,"character":52},"label":"reader:","kind":2,"tooltip":{"kind":"markdown","value":"```zig\nanytype\n```"},"paddingLeft":false,"paddingRight":true}]}
[2025-01-05T19:33:09+00:00 TRACE lsp] Took 14.855ms to receive response to "textDocument/inlayHint" id 1043
# problematic `textDocument/inlayHint` request with `start > end`
[2025-01-05T19:33:09+00:00 TRACE lsp] outgoing message:{"jsonrpc":"2.0","id":1044,"method":"textDocument/inlayHint","params":{"textDocument":{"uri":"file:///Users/burak/Code/parzig/src/parquet/decoding.zig"},"range":{"start":{"line":50,"character":25},"end":{"line":25,"character":0}}}}
# zls crashes here, and after this point, all LSP requests fail
[2025-01-05T19:33:09+00:00 TRACE lsp] incoming stderr message:thread 5391652 panic: reached unreachable code
[2025-01-05T19:33:09+00:00 ERROR lsp] cannot read LSP message headers
```
In LSP specification for
[`Range`](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#range)
type, it says:
> ... If you want to specify a range that contains a line including the
line ending character(s) then use an end position denoting the start of
the next line.
I feel like zls's assertion is sensible, so I've updated the generic
`range_to_lsp` function rather than doing something specific to zls. But
let me know if this seems incorrect.
zls was crashing after 5-10 minutes of working with a Zig codebase
before, and after this change, I tested for an hour and didn't
experience any crashes.
Release Notes:
- Ensure `end >= start` in `lsp::Range`, which should fix Zig/zls
crashes.
---------
Co-authored-by: Michael Sloan <michael@zed.dev>
Burak VarlΔ± and Michael Sloan created
3ae6aa0
Start diagnostic group_id at 1 to handle non LS diagnostics (#22694)
In particular, `DiagnosticPopover` both: * Supports moving the selection to a diagnostic when clicked, based on `group_id` * Provides Diagnostic values with `group_id: 0` providing informztion on hover about invisible characters. So, clicking such a popover would navigate to the very first error produced by a language server. Really not a big deal of course, but seems good to fix as it might result in surprising behavior in other future circumstances Release Notes: - N/A
Michael Sloan created
7506c03
Fix a doc comment typo on DiagnosticEntry::to_lsp_diagnostic_stub (#22695)
Release Notes: - N/A
Michael Sloan created
570e6c8
Fix panic on diagnostic hover (#22693)
In #22620 `diagnostic_group` was modified to return results for multibuffers, but was returning singleton buffer points. `hover_popover` uses it to find the jump target for clicking the popup - which doesn't seem to be working right now but that's a separate issue. Now that `diagnostic_group` is returning values in multibuffers converting these to anchors was crashing. Also resolves a potential bug - if folding in multibuffers was supported then "Go To Diagnostics" would not properly skip diagnostics from folded regions. Release Notes: - N/A
Michael Sloan created
94ee2e1
Fix ghost files appearing in the project panel when clicking relative paths in the terminal (#22688)
Closes #15705 When opening a file from the terminal, if the file path is relative, we attempt to guess all possible paths where the file could be. This involves generating paths for each worktree, the current terminal directory, etc. For example, if we have two worktrees, `dotfiles` and `example`, and `foo.txt` in `example/a`, the generated paths might look like this: - `/home/tims/dotfiles/../example/a/foo.txt` from the `dotfiles` worktree - `/home/tims/example/../example/a/foo.txt` from the `example` worktree - `/home/tims/example/a/foo.txt` from the current terminal directory (This is already canonicalized) Note that there should only be a single path, but multiple paths are created due to missing canonicalization. Later, when opening these paths, the worktree prefix is stripped, and the remaining path is used to open the file in its respective worktree. As a result, the above three paths would resolve like this: - `../example/a/foo.txt` as the filename in the `dotfiles` worktree (Ghost file) - `../example/a/foo.txt` as the filename in the `example` worktree (Ghost file) - `foo.txt` as the filename in the `a` directory of the `example` worktree (This opens the file) This PR fixes the issue by canonicalizing these paths before adding them to the HashSet. Before:  After:  Release Notes: - Fixed ghost files appearing in the project panel when clicking relative paths in the terminal.
tims created
299ae92
gpui: Do not derive serde::Deserialize for automatically generated Actions (#22687)
Closes #ISSUE Release Notes: - N/A
Piotr Osiewicz created
de08e47
Improve panic report with reentrant SlotMap use (#22667)
`double_lease_panic` already does what we want, just extend it to the indexing operation as well. Release Notes: - N/A
Cole Miller created
8151dc7
Return back Rust completion details (#22648)
Closes https://github.com/zed-industries/zed/issues/22642 In Zed, Rust's label generators expected the details to come in ` (use std.foo.Bar)` form, but recently, r-a started to send these details without the leading whitespace which broke the code generation. The PR makes LSP results parsing more lenient to work with both details' forms. Release Notes: - Fixed Rust completion labels not showing the imports
Kirill Bulatov created
5f1eee3
Fix inlay hints display reverting to settings value on theme change (#22605)
Closes #4276 Release Notes: - Fixed inlay hints that have been manually enabled disappearing when theme selector is used.
Michael Sloan created
9613084
Move git status out of Entry (#22224)
- [x] Rewrite worktree git handling - [x] Fix tests - [x] Fix `test_propagate_statuses_for_repos_under_project` - [x] Replace `WorkDirectoryEntry` with `WorkDirectory` in `RepositoryEntry` - [x] Add a worktree event for capturing git status changes - [x] Confirm that the local repositories are correctly updating the new WorkDirectory field - [x] Implement the git statuses query as a join when pulling entries out of worktree - [x] Use this new join to implement the project panel and outline panel. - [x] Synchronize git statuses over the wire for collab and remote dev (use the existing `worktree_repository_statuses` table, adjust as needed) - [x] Only send changed statuses to collab Release Notes: - N/A --------- Co-authored-by: Cole Miller <cole@zed.dev> Co-authored-by: Mikayla <mikayla@zed.com> Co-authored-by: Nathan <nathan@zed.dev>
Mikayla Maki , Cole Miller , Mikayla , and Nathan created
72057e5
cli: Fix support for older macOS versions (#22515)
Close #22419 Release Notes: - Fixed `zed` cli crash by `ScreenCaptureKit` library not loaded error on macOS lower versions. <img width="843" alt="image" src="https://github.com/user-attachments/assets/9e0b615e-933f-4808-bf20-3e37e9e8bc6d" /> --- The main reason is the `cli` depends on `release_channel`, and it depends on `gpui`. ``` $ cargo tree -p cli βββ release_channel v0.1.0 (/Users/jason/github/zed/crates/release_channel) β βββ gpui v0.1.0 (/Users/jason/github/zed/crates/gpui) β βββ anyhow v1.0.95 β βββ async-task v4.7.1 β βββ block v0.1.6 β βββ cocoa v0.26.0 ```
Jason Lee created
e257898
linux: Fix issue where relative symlinks were not being watched using fs watch (#22608)
Closes #22607 Symlinks can be absolute or relative. When using [stow](https://www.gnu.org/software/stow/) to manage dotfiles, it creates relative symlinks to the target files. For example: - Original file: `/home/tims/dotfiles/zed/setting.json` - Symlink path: `/home/tims/.config/zed/setting.json` - Target path (relative to symlink): `../../dotfiles/zed/setting.json` The issue is that you canβt watch the symlink path because itβs relative and doesn't include the base path it is relative to. This PR fixes that by converting relative symlink paths to absolute paths. - Absolute path (after parent join): `/home/tims/.config/zed/../../dotfiles/zed/setting.json` (This works) - Canonicalized path (from absolute path): `/home/tims/dotfiles/zed/setting.json` (This works too, just more cleaner) Release Notes: - Fix issue where items on the Welcome page could not be toggled on Linux when using Stow to manage dotfiles
tims created
b46b261
linux: Fix process PID to window mapping for X11 (#22348)
Closes #22326
This PR adds process PID information to window created by X11, so that
window manager can identify which process this window belongs to.
Without this property, the window manager would have no reliable way to
know which process created this window.
In original issue, `robotgo` throws error on `x, y, w, h :=
robotgo.GetBounds(pid)` this method. If we go deeper into the source
code of `robotgo`, it calls `GetXidFromPid` which goes through all
windows, and tries to check for provided pid. Hence, when it tries to do
that for Zed, it fails and returns `0, err` to caller.
```go
// Robotgo source code trying to look through all windows and query pid
// GetXidFromPid get the xid from pid
func GetXidFromPid(xu *xgbutil.XUtil, pid int) (xproto.Window, error) {
windows, err := ewmh.ClientListGet(xu)
if err != nil {
return 0, err
}
for _, window := range windows {
wmPid, err := ewmh.WmPidGet(xu, window)
if err != nil {
return 0, err
}
if uint(pid) == wmPid {
return window, nil
}
}
return 0, errors.New("failed to find a window with a matching pid.")
}
```
Querying for pid for active Zed window:
Before:
```sh
tims@lemon ~/w/go-repro [127]> xprop -root _NET_ACTIVE_WINDOW
_NET_ACTIVE_WINDOW(WINDOW): window id # 0x4e00002
tims@lemon ~/w/go-repro> xprop -id 0x4e00002 _NET_WM_PID
_NET_WM_PID: not found.
```
After:
```sh
tims@lemon ~/w/go-repro> xprop -root _NET_ACTIVE_WINDOW
_NET_ACTIVE_WINDOW(WINDOW): window id # 0x4e00002
tims@lemon ~/w/go-repro> xprop -id 0x4e00002 _NET_WM_PID
_NET_WM_PID(CARDINAL) = 103548
tims@lemon ~/w/go-repro>
```
Correct zed process PID (below) assosiated with zed window (shown
above):

Release Notes:
- Fix `robotgo` failing when Zed window is open on Linux
tims created
71a0eb3
windows: Fix cursor style not changing when hovering over items in the title bar (#22580)
Closes #22578 Currently, the `hovered` boolean in the window state is only updated by the `WM_MOUSELEAVE` event, which fires when the mouse cursor leaves the window's working area. This means that when the user moves the cursor from the window to the title bar, `hovered` is set to `false`. Later in the code, this flag is used to determine the cursor style and check if the cursor is over the correct window. The `hovered` boolean should remain active even when the mouse is over non-client items, such as the title bar or window borders. This PR fixes that by using `WM_NCMOUSELEAVE` event, which is triggered when the mouse leaves non-client items. This event is used to update the `hovered` boolean accordingly. Now, `hovered` is `true` when the mouse is over the window's working area, as well as non-client areas like the title bar. More context: - Existing: `dwFlags: TME_LEAVE` tracks window area mouse leaves, which is used in `handle_mouse_move_msg` func. - New: `dwFlags: TME_LEAVE | TME_NONCLIENT` tracks non-client mouse leaves, which is used in `handle_nc_mouse_move_msg` func. Preview: https://github.com/user-attachments/assets/b319303f-81b9-45cb-bf0c-535a59b96561 Release Notes: - Fix cursor style not changing on hover over items in the title bar on Windows
tims created
dd75f85
elm: Extract to zed-extensions/elm repository (#22637)
This PR extracts the Elm extension to the [zed-extensions/elm](https://github.com/zed-extensions/elm) repository. Release Notes: - N/A
Marshall Bowers created
b1a6e24
anthropic: Allow specifying additional beta headers for custom models (#20551)
Release Notes: - Added the ability to specify additional beta headers for custom Anthropic models. --------- Co-authored-by: David Soria Parra <167242713+dsp-ant@users.noreply.github.com> Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
Roy Williams , David Soria Parra , and Marshall Bowers created
bbe6bf9
assistant: Remove unused `AssistantSettings::update_file` (#22636)
As a follow-up to #21672, this PR removes the `AssistantSettings::update_file` method, as it was no longer used anywhere. Release Notes: - N/A
Marshall Bowers created
53cfb57
python: Adjust binary path based on OS (#22587)
Closes #ISSUE - #21452 Describe the bug / provide steps to reproduce it Language server error: pylsp failed to spawn command. path: "C:\Users\AppData\Local\Zed\languages\pylsp\pylsp-venv\bin\pylsp", working directory: "D:\Coding\Python", args: [] -- stderr-- Environment - Windows 11 - python Release Notes: - Windows: Fixed the path building used to run `pip` commands in the venv generated on Windows 11. --------- Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
Torrat and Marshall Bowers created
e6fe12d
assistant: Remove outdated settings update path (#21672)
Removed a settings update that should have been removed in the 0.148.0 release. I am not sure if there is a tracking issue, but I identified this check for outdated settings that should not be needed anymore. I investigated a bit and did not find any conflicts or UB as a result of removing this code. Release Notes: - N/A --------- Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
Drew Ridley and Marshall Bowers created
04cf19d
Upgrade `strum` to v0.26 (#22633)
This PR upgrades `strum` to v0.26. Supersedes #21896. Release Notes: - N/A
Marshall Bowers created
4bd5f0d
racket: Extract to zed-extensions/racket repository (#22630)
This PR extracts the Racket extension to the [zed-extensions/racket](https://github.com/zed-extensions/racket) repository. Release Notes: - N/A
Marshall Bowers created
fdbf3d0
clojure: Extract to zed-extensions/clojure repository (#22628)
This PR extracts the Clojure extension to the [zed-extensions/clojure](https://github.com/zed-extensions/clojure) repository. Release Notes: - N/A
Marshall Bowers created
a1ef1d3
Add syntax highlighting for character literals in Haskell, PureScript, and Zig (#22609)
Closes #22480 Release Notes: - N/A | Before | After | |----------|----------| | <img width="344" alt="before" src="https://github.com/user-attachments/assets/37f8daf7-c9a0-4259-8c03-bd1a4479abca" /> | <img width="344" alt="after" src="https://github.com/user-attachments/assets/0f7e4429-e48b-4b32-9797-a0da8487e23e" /> | Zig, Haskel, and PureScript define a character caputure name in `highlights.scm`, but we did not define a color for that capture name in the themes. The new character color is the same as the string color in all themes. --------- Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
Nils Koch and Marshall Bowers created
04518b1
language_model_selector: Refresh the models when the providers change (#22624)
This PR fixes an issue introduced in #21939 where the list of models in the language model selector could be outdated. Since we're no longer recreating the picker each render, we now need to make sure we are updating the list of models accordingly when there are changes to the language model providers. I noticed it specifically in Assistant1. Release Notes: - Fixed a staleness issue with the language model selector.
Marshall Bowers created
e4eef72
Add support for Claude 3.5 Haiku model (#22323)
Partly Closes #22185 Release Notes: - Added support for the Claude 3.5 Haiku model. Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
saahityaedams and Marshall Bowers created
7c7eb98
astro: Extract to zed-extensions/astro repository (#22623)
This PR extracts the Astro extension to the [zed-extensions/astro](https://github.com/zed-extensions/astro) repository. Release Notes: - N/A
Marshall Bowers created
7826d79
markdown: Make `push_div` work with `Stateful<Div>`s (#22622)
This PR updates the `push_div` method in the `MarkdownElementBuilder` to support taking in a `Stateful<Div>`. This is some groundwork for supporting horizontal scrolling in Markdown code blocks. Release Notes: - N/A
Marshall Bowers created
bb24c08
linux: Add keyboard shortcuts for menus (#22074)
Closes #19837
This PR is a continuation of [linux: Implement
Menus](https://github.com/zed-industries/zed/pull/21873) and should only
be reviewed once the existing PR is merged.
I created this as a separate PR as the existing PR was already reviewed
but is yet to merge, and also it was my initial plan to do it in
separate parts because of the scope of it. This will also help reviewing
code faster.
This PR adds two new types of keyboard shortcuts to make menu navigation
easier:
1. `Alt + Z` for Zed, `Alt + F` for File, `Alt + S` for Selection, and
so on to open a specific menu with this combination. This mimics VSCode
and IntelliJ.
2. `Arrow Left/Right` when any menu is open. This will trigger the
current menu to close, and the previous/next to open respectively. First
and last element cycling is handled.
`Arrow Up/Down` to navigate menu entries is already there in existing
work.
https://github.com/user-attachments/assets/976aea48-4e20-4c19-850d-4d205a4bead2
Release Notes:
- Added keyboard navigation for menus on Linux (left/right). If you wish
to open menus with keyboard shortcuts add the following to your user
keymap:
```json
{
"context": "Workspace",
"bindings": {
"alt-z": ["app_menu::OpenApplicationMenu", "Zed"],
"alt-f": ["app_menu::OpenApplicationMenu", "File"],
"alt-e": ["app_menu::OpenApplicationMenu", "Edit"],
"alt-s": ["app_menu::OpenApplicationMenu", "Selection"],
"alt-v": ["app_menu::OpenApplicationMenu", "View"],
"alt-g": ["app_menu::OpenApplicationMenu", "Go"],
"alt-w": ["app_menu::OpenApplicationMenu", "Window"],
"alt-h": ["app_menu::OpenApplicationMenu", "Help"]
}
}
```
---------
Co-authored-by: Peter Tripp <peter@zed.dev>
tims and Peter Tripp created
11ec25a
Support diagnostic navigation in multibuffers (#22620)
cc @nathansobo Release Notes: - Support diagnostic navigation in multibuffers
Cole Miller created
39af060
assistant2: Add an example thread to showcase long lines of code (#22621)
This PR adds another example thread to showcase a response with long lines of code. This example will be helpful when working to make the code blocks scroll horizontally instead of wrapping. Release Notes: - N/A
Marshall Bowers created
a49e394
assistant2: Remove single-letter variable name (#22618)
This PR removes a single-letter variable name in place of a full one, for readability. Release Notes: - N/A
Marshall Bowers created
e5c3d5d
Emacs keybinding improvements (2025-01-02) (#22590)
Various improvements to the emacs compatibility keybindings. - See also: https://github.com/zed-industries/zed/issues/4856 Release Notes: - Improvements to emacs keybindings: - Better support for running emacs inside Zed terminal (e.g. `ctrl-x ctrl-c` will quit emacs in terminal not zed) - `alt-^` Join Lines - `ctrl-/` Undo - `alt-.` GotoDefinition and `alt-,` GoBack - `ctrl-x h` SelectAll - `alt-<` / `alt->` Goto End/Beginning of Buffer - `ctrl-g` as Menu::cancel
Peter Tripp created