1460249
docs: Update msys2 section (#20478)
Click to expand commit body
now Zed is available in MINGW64 repository as well Release Notes: - N/A
Maksim Bondarenkov created
1460249
docs: Update msys2 section (#20478)
now Zed is available in MINGW64 repository as well Release Notes: - N/A
Maksim Bondarenkov created
da7670c
assistant: Track completions for each CodegenAlternative (#19999)
Release Notes: - N/A Co-authored-by: Bennet Bo Fenner <bennet@zed.dev>
Adam Wolff and Bennet Bo Fenner created
ebdc255
Add additional instructions to issue templates (#20473)
Release Notes: - N/A
Joseph T. Lyons created
4d49a85
image viewer: Ensure images can never be loaded twice (#20472)
Follow up to #20374, this prevents a race condition where we could load images twice. Release Notes: - N/A
Bennet Bo Fenner created
0dbda71
Enable reload of images in image viewer (#20374)
Closes #11529 Release Notes: - Fixed an issue where the image preview would not update when the underlying file changed --------- Co-authored-by: Bennet <bennet@zed.dev>
Will Bradley and Bennet created
f332099
lsp: Track completion triggers for each language separately (#20471)
This PR improves how we handle completions in buffers with multiple LSPs. Context: while working on https://github.com/zed-industries/zed/issues/19777 with @mgsloan we noticed that completion triggers coming from language servers are not tracked properly. Namely, each buffer has `completion_triggers` field which is read from the configuration of a language server. The problem is, there can be multiple language servers for a single buffer, in which case we'd just stick to the one that was registered last. This PR makes the tracking a bit more fine-grained. We now track not only what the completion triggers are, but also their origin server id. Whenever completion triggers are updated, we recreate the completion triggers set. Release Notes: - Fixed completions not triggering when multiple language servers are used for a single file.
Piotr Osiewicz created
2b7ee1e
Debounce runnable refreshes in the editor (#20470)
Kirill Bulatov created
767a825
Open all kinds of files from multi buffers' headers (#20469)
Closes https://github.com/zed-industries/zed/issues/11661 Release Notes: - Fixed multi buffer headers not able to jump to untitled files
Kirill Bulatov created
ba8f027
editor: Fix toggle_comment in readonly mode (#20464)
Closes #20459 Release Notes: - Fixed comments toggle in readonly mode
Antar created
0a28800
Add preview for Checkbox with Label (#20448)
Add previews for Checkbox with Label. Merge checkbox components. Release Notes: - N/A
Nate Butler created
31a6ee0
Add `ui::table` (#20447)
This PR adds the `ui::Table` component.
It has a rather simple API, but cells can contain either strings or
elements, allowing for some complex uses.
Example usage:
```rust
Table::new(vec!["Product", "Price", "Stock"])
.width(px(600.))
.striped()
.row(vec!["Laptop", "$999", "In Stock"])
.row(vec!["Phone", "$599", "Low Stock"])
.row(vec!["Tablet", "$399", "Out of Stock"])
```
For more complex use cases, the table supports mixed content:
```rust
Table::new(vec!["Status", "Name", "Priority", "Deadline", "Action"])
.width(px(840.))
.row(vec![
element_cell(Indicator::dot().color(Color::Success).into_any_element()),
string_cell("Project A"),
string_cell("High"),
string_cell("2023-12-31"),
element_cell(Button::new("view_a", "View").style(ButtonStyle::Filled).full_width().into_any_element()),
])
// ... more rows
```
Preview:

This component is pretty basic, improvements are welcome!
Release Notes:
- N/A
Nate Butler created
1f974d0
Set up editor actions after workspace not on stack (#20445)
Release Notes: - N/A Co-authored-by: Conrad Irwin <conrad@zed.dev>
Kyle Kelley and Conrad Irwin created
7212594
Add shortcuts for 'open settings' and 'revert selected hunks' to Jetbrains keymap (#20414)
Elias Müller created
d605d19
Use a different keybinding for editor::AcceptPartialInlineCompletion action (Linux) (#20443)
Follow-up of https://github.com/zed-industries/zed/pull/20419 Release Notes: - - (breaking change) Use `ctrl-right` instead of `cmd-right` as a macOS default for `editor::AcceptPartialInlineCompletion` (Linux)
Kirill Bulatov created
f92e6e9
Add support for context server extensions (#20250)
This PR adds support for context servers provided by extensions.
To provide a context server from an extension, you need to list the
context servers in your `extension.toml`:
```toml
[context_servers.my-context-server]
```
And then implement the `context_server_command` method to return the
command that will be used to start the context server:
```rs
use zed_extension_api::{self as zed, Command, ContextServerId, Result};
struct ExampleContextServerExtension;
impl zed::Extension for ExampleContextServerExtension {
fn new() -> Self {
ExampleContextServerExtension
}
fn context_server_command(&mut self, _context_server_id: &ContextServerId) -> Result<Command> {
Ok(Command {
command: "node".to_string(),
args: vec!["/path/to/example-context-server/index.js".to_string()],
env: Vec::new(),
})
}
}
zed::register_extension!(ExampleContextServerExtension);
```
Release Notes:
- N/A
Marshall Bowers created
ff4f679
macOS: Add key equivalents for non-Latin layouts (#20401)
Closes #16343 Closes #10972 Release Notes: - (breaking change) On macOS when using a keyboard that supports an extended Latin character set (e.g. French, German, ...) keyboard shortcuts are automatically updated so that they can be typed without `option`. This fixes several long-standing problems where some keyboards could not type some shortcuts. - This mapping works the same way as [macOS](https://developer.apple.com/documentation/swiftui/view/keyboardshortcut(_:modifiers:localization:)). For example on a German keyboard shortcuts like `cmd->` become `cmd-:`, `cmd-[` and `cmd-]` become `cmd-ö` and `cmd-ä`. This mapping happens at the time keyboard layout files are read so the keybindings are visible in the command palette. To opt out of this behavior for your custom keyboard shortcuts, set `"use_layout_keys": true` in your binding section. For the mappings used for each layout [see here](https://github.com/zed-industries/zed/blob/a890df1863ca939ee7f0ada6e629b6f83eb18bc5/crates/settings/src/key_equivalents.rs#L7). --------- Co-authored-by: Will <will@zed.dev>
Conrad Irwin and Will created
0782108
macOS: Allow non-cmd keyboard shortcuts to work on non-Latin layouts (#20336)
Updates #10972 Release Notes: - Fixed builtin keybindings that don't require cmd on macOS, non-Latin, ANSI layouts. For example you can now use ctrl-ա (equivalent to ctrl-a) on an Armenian keyboard to get to the beginning of the line. --------- Co-authored-by: Will <will@zed.dev>
Conrad Irwin and Will created
09c5993
Put context servers behind a trait (#20432)
This PR puts context servers behind the `ContextServer` trait to allow us to provide context servers from an extension. Release Notes: - N/A
Marshall Bowers created
0150351
Fix line number whitespace (#20427)
Closes #14025 https://github.com/user-attachments/assets/24b3f321-8246-4203-9510-66a7cf3d22f0 Release Notes: - Fixed bug where toggling line numbers would incorrectly hide whitespace indicators.
Richard Feldman created
8bc5bcf
assistant: Fix completions for slash commands provided by context servers (#20423)
This PR fixes an issue introduced in #20372 that was causing slash commands provided by context servers to not show up in the completions menu. Release Notes: - N/A
Marshall Bowers created
983bb5c
Use a different keybinding for `editor::AcceptPartialInlineCompletion` action (#20419)
Both `editor::AcceptPartialInlineCompletion` and the keybinding for `editor::MoveToEndOfLine` had the same keybinding inside the editor, and with Supermaven's fast proposals, it's been very frequently used incorrectly. Closes #ISSUE Release Notes: - (breaking change) Use `ctrl-right` instead of `cmd-right` as a macOS default for `editor::AcceptPartialInlineCompletion`
Kirill Bulatov created
653b2dc
project panel: Stop flickering border when preview tabs disabled (#20417)
PR #20154 changed the project panel to focus the editor on click in case preview tabs are disabled. That lead to a flickering behavior: on mouse-down the border of the still-selected entry in the project panel would flash, only to disappear as soon as the entry was opened and editor focused. This change fixes it by manually keeping track of the mouse-down state, because we couldn't find a better solution that allows us to simply not show the border while a "click" is going on. Release Notes: - Fixed project panel entries flickering the border when user clicks on another entry to open it (when preview tabs are disabled.) Co-authored-by: Piotr <piotr@zed.dev>
Thorsten Ball and Piotr created
7142d37
Add edit events for assistant panel and inline assist (#20418)
Release Notes: - N/A
Joseph T. Lyons created
01e12c0
project panel: Mark entries when opening in project panel (#20412)
This addresses #17746 by marking entries when they're opened in the project panel. I think that was the original intention behind the code too, because it explicitly marks entries before opening them. An event that is emitted by the workspace reset the mark though. So what I did was try to emulate the logic I saw in VS Code: when opening the file, mark it, when the active entry changes, unmark it, except if you explicitly marked a group of files. Closes #17746 Release Notes: - Changed project panel to mark files when opening them, which should make it more intuitive to mark multiple files after opening a single one.
Thorsten Ball created
706c385
Register repl actions with editor after session started (#20396)
Makes repl actions that are specific to running kernels only come up after a session has been started at least once for the editor. Release Notes: - Only show session oriented `repl::` actions for editors after a session has been created
Kyle Kelley created
edb89d8
project panel: Fix preview tabs not working when enabled (#20416)
PR #20154 introduced a regression and essentially disabled preview tabs in code. This fixes it and restores the old preview tabs behavior. Release Notes: - Fixed preview tabs being disabled in code, even if they were enabled in the settings. Co-authored-by: Piotr <piotr@zed.dev>
Thorsten Ball and Piotr created
09675d4
Disable repl in non-local projects (#20397)
Release Notes: - Disable REPL buttons and actions for remote projects and collaboration (only the host should have access).
Kyle Kelley created
187356a
assistant: Show only configured models in the model picker (#20392)
Closes https://github.com/zed-industries/zed/issues/16568 This PR introduces some changes to how we display models in the model selector within the assistant panel. Basically, it comes down to this: - If you don't have any provider configured, you should see _all_ available models in the picker - But, once you've configured some, you should _only_ see models from them in the picker Visually, nothing's changed much aside from the added "Configured Models" label at the top to ensure the understanding that that's a list of, well, configured models only. 😬 <img width="700" alt="Screenshot 2024-11-07 at 23 42 41" src="https://github.com/user-attachments/assets/219ed386-2318-43a6-abea-1de0cda8dc53"> Release Notes: - Change model selector in the assistant panel to only show configured models
Danilo Leal created
435708b
assistant: Fine-tune crease feedback design (#20395)
Closes https://github.com/zed-industries/zed/issues/13414 Just polishing up how some of these look. Ever since the issue was opened, we added the "Error" label to the button, as well as automatically popping open the toast error whenever that happens. Lastly, there's a tooltip in there as well indicating that you can click on it to see the details of the error. <img width="700" alt="Screenshot 2024-11-08 at 00 26 27" src="https://github.com/user-attachments/assets/ad0962e6-4621-4e8b-be0d-103d71fcf2e6"> Release Notes: - N/A
Danilo Leal created
2fe9cd8
Fix regression in producing sections when converting `SlashCommandOutput` to event stream (#20404)
Closes #20243 Release Notes: - N/A
Antonio Scandurra created
8cc3ce1
Fix extension tests on release branches (#20307)
Co-Authored-By: Max <max@zed.dev> cc @maxdeviant Release Notes: - N/A --------- Co-authored-by: Max <max@zed.dev>
Conrad Irwin and Max created
6ad8c4a
Restore ctrl-b/f (#20399)
Follow up from #20378 Release Notes: - N/A
Conrad Irwin created
30a94fa
context_servers: Fix tool/list and prompt/list (#20387)
There are two issues with too/list and prompt/list at the moment. We
serialize params to `null`, which is not correct according to
context_server spec. While it IS allowed by JSON RPC spec to omit
params, it turns out some servers currently missbehave and don't respect
this. So we do two things
- We omit params if it would be a null value in json.
- We explicitly set params to {} for tool/list and prompt/list to avoid
it being omitted.
Release Notes:
- N/A
David Soria Parra created
36fe364
Show kernel options in a picker (#20274)
Closes #18341 * [x] Remove "Change Kernel" Doc link from REPL menu * [x] Remove chevron * [x] Set a higher min width * [x] Include the language along with the kernel name Future PRs will address * Add support for Python envs (#18291, #16757, #15563) * Add support for Remote kernels * Project settings support (#16898) Release Notes: - Added kernel picker for repl --------- Co-authored-by: Nate Butler <iamnbutler@gmail.com>
Kyle Kelley and Nate Butler created
f6d4a73
terminal: Prevent `[]` from being sanitized into clickable file link (#20386)
This PR prevents `[]` from being sanitized into an empty string and thus becoming a "valid", clickable file link in the integrated terminal. Whenever you type `[]` into the terminal and hover over it while pressing `cmd`, an empty popup appears and the cursor indicates that this is a clickable element. Once you click on the brackets, the worktree root is selected and focused within the file picker. <img width="87" alt="grafik" src="https://github.com/user-attachments/assets/01790323-88be-4373-a1ec-a345bcf2521e"> This is because in #2906 support was added for sanititzing file links like `[/some/path/[slug].tsx]` to `/some/path/[slug].tsx`. In the case `[]` where an empty string is returned from the sanitation, the string is considered a valid file path and thus `[]` becomes a valid and clickable navigation target. Given that this an edge-case just for this specific one set of brackets and otherwise no empty strings are matched from the regexes `URL_REGEX` and `WORD_REGEX`, it seemed that this was the best place to fix this bug. Release Notes: - `[]` is no longer considered a clickable link in the terminal
Finn Evers created
7e7f25d
Scope slash commands, context servers, and tools to individual Assistant Panel instances (#20372)
This PR reworks how the Assistant Panel references slash commands, context servers, and tools. Previously we were always reading them from the global registries, but now we store individual collections on each Assistant Panel instance so that there can be different ones registered for each project. Release Notes: - N/A --------- Co-authored-by: Max <max@zed.dev> Co-authored-by: Antonio <antonio@zed.dev> Co-authored-by: Joseph <joseph@zed.dev> Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Marshall Bowers , Max , Antonio , Joseph , and Max Brunsfeld created
176314b
Improve outline panel keyboard navigation (#20385)
Closes https://github.com/zed-industries/zed/issues/20187
Make outline panel more eager to open its entries:
* scroll editor to selected outline entries (before it required an extra
`"outline_panel::Open", { "change_selection": false }` action call)
* make any `Open` action call to behave like `"outline_panel::Open", {
"change_selection": true }` and remove the redundant parameter.
Now opening an entry is equal to double clicking the same entry: the
editor gets scrolled and its selection changes
* add a way to open entries the same way as excerpts are open in multi
buffers (will open the entire file, scroll and place the caret)
* additionally, fix another race issue that caused wrong entry to be
revealed after the selection change
Release Notes:
- Improved outline panel keyboard navigation
Kirill Bulatov created
6606e6e
ci: No GitHub Actions stale check on forks (#20382)
Peter Tripp created
c350321
Update Copilot Chat max_tokens soft limits (#20363)
Closes #20362 Co-authored-by: Peter Tripp <peter@zed.dev>
dhaus67 and Peter Tripp created
9da040d
Stop using alt- shortcuts (#20378)
Closes #7688
Release Notes:
- (breaking change) Stop binding keyboard shortcuts to alt-[a-z]. These
get in the way of typing characters. This is usually not an issue for
English speakers because we don't use many characters; but for other
Latin-based languages with diacritics our shortcuts prevent them typing
what they need to type.
This primarily affects Zed's extra features:
* `alt-q` => `cmd-k q` on maOS, `ctrl-k q` on Linux for `editor::Rewrap`
* `alt-z` => `cmd-k z` on macOS `ctrl-k z` on Linux for
`editor::ToggleSoftWrap`
* `alt-m` => `ctrl-shift-m` for `assistant::ToggleModelSelector`
* `alt-v` => `ctrl-shift-v` for `["editor::MovePageUp", {
"center_cursor": true }]` (macOS only)
* `alt-t` => `cmd-shift-r` on maOS, `ctrl-shift-r` on Linux for
`task::Spawn` (The previous binding for `editor::RevealInFileManager`
now only applies in the project panel)
* `alt-shift-t` => `alt-cmd-r` on maOS, `ctrl-alt-r` on Linux for
`task::Rerun`
* `alt-shift-f` => `ctrl-shift-f` for
`project_panel::SearchInDirectory`.
But also overrides some bindings from Readline.
* `alt-h` => `alt-backspace` for `editor::DeleteToPreviousWordStart`
* `alt-d` => `alt-delete` for `editor::DeleteToNextWordEnd`
* `alt-f` => `ctrl-f` for `editor:: MoveToNextWordEnd` (`ctrl-f` was
previously `editor::MoveRight`)
* `alt-b` => `ctrl-b` for `editor::MoveToNextWordStart` (`ctrl-b` was
previously `editor::MoveLeft`)
Note that `alt-t` and `alt-shift-t` have been kept as aliases (because
no-one complained about `t` yet; but we may remove them completely in
the future).
Conrad Irwin created
f638522
Add abstract classes to typescript outline query (#20377)
Closes #4553 Release Notes: - Fixed a bug where abstract classes weren't shown correctly in the outline view when editing Typescript code.
Max Brunsfeld created
999853f
Add emacs keymap (#19605)
Release Notes: - Added Emacs (beta) base keymap
Douglas Ronne created
f924c3e
Fix folder expand when dropped on itself in project_panel (#20365)
Closes #13093 Release Notes: - Fixed folder expand when dropped on itself in project_panel
Mathias created
2c49840
Revert "Use correct context path for focused element in WindowContext::bindings_for_action (#18843)" (#20367)
@JosephTLyons found that this broke display of keybindings in the recent projects modal. Release Notes: - N/A
Michael Sloan created
453c412
Show warning when deleting files with unsaved changes (#20172)
Closes #9905 <img width="172" alt="Screenshot 2024-11-04 at 10 16 34 AM" src="https://github.com/user-attachments/assets/5fa84e06-bcb9-471d-adab-e06881fbd3ca"> <img width="172" alt="Screenshot 2024-11-04 at 10 16 22 AM" src="https://github.com/user-attachments/assets/d7def162-e910-4061-a160-6178c9d344e5"> <img width="172" alt="Screenshot 2024-11-04 at 10 17 17 AM" src="https://github.com/user-attachments/assets/43c7e4fe-1b71-4786-bc05-44f34ed15dc5"> <img width="172" alt="Screenshot 2024-11-04 at 10 17 09 AM" src="https://github.com/user-attachments/assets/17263782-c706-44b2-acbc-c3d2d14c20ac"> Release Notes: - When deleting or trashing files, the confirmation prompt now warns if files have unsaved changes.
Richard Feldman created
e85ab07
Add missing field to `impl Hash for RenderGlyphParams` (#20316)
Unlikely to cause any behavior change but seems more correct to include `is_emoji` in the hash. Release Notes: - N/A
Michael Sloan created
daa35e9
Enable look-around in Project Search using fancy-regex crate (#20308)
Closes #13486 Release Notes: - Added support for look-around in project search Co-authored-by: Max <max@zed.dev>
Will Bradley and Max created
de70852
Fix a test flake involving zeroed out group_intervals (#20328)
Release Notes: - N/A
Will Bradley created
454c9dc
project panel: Add `RemoveFromProject` action (#20360)
This fixes #15995 by adding a `project panel: remove from project` action that can be used in a keybinding. Release Notes: - Added a `project panel: remove from project` action so that users can now add a keybinding to trigger it: `project_panel::RemoveFromProject`.
Thorsten Ball created
71aeb6a
editor: Do not show inline completion if snippet is active (#20300)
This avoids inline completions being shown (and overriding `<tab>` behavior) when a snippet is active and the user wants to go through snippet placeholders with `<tab>`. Easy to reproduce: Open a Rust file and use the `tfn` snippet to produce a test function. Delete the placeholder. Without the change here, the inline provider would suggest a function name. If you `<tab>`, you accept it, but then you can't `<tab>` into the function body. With this change the inline completions are deactivated as long as a snippet is active. Closes #19484 Release Notes: - Fixed inline completions (Copilot, Supermaven, ...) taking over when a snippet completion was active. That resulted in `tab` not working to jump to the next placeholder in the snippet.
Thorsten Ball created