3f22427
Restore the ability to navigate into project search input with the keyboard (#20579)
Kirill Bulatov created
3f22427
Restore the ability to navigate into project search input with the keyboard (#20579)
Kirill Bulatov created
56cf32c
Add a way to use splits when opening in file finder (#20507)
Kirill Bulatov created
90ffd65
Document use of `allow_concurrent_runs` with long-running tasks (#20539)
Markus Wüstenberg created
55cd99c
Revert "macOS: Improve deadkeys (#20515)" (#20570)
This reverts commit https://github.com/zed-industries/zed/pull/20515 I'm reverting for now to fix issues with key bindings on Nightly: * `ctrl-c` and `ctrl-m` are being treated as `ctrl-enter` * `ctrl-[` isn't working in vim mode * there's a delay before `cmd-shift-[` switches tabs w/ vim mode enabled Release Notes: - N/A
Max Brunsfeld created
0547748
Compare explicitly to YES/NO instead relying on booliness for objc (#20567)
Just x86_64-apple-darwin things. Fixes the build for nightly. Release Notes: - N/A
Kyle Kelley created
5473519
Be more explicit about BOOL (#20564)
On x86 Macs BOOL is not the same within the `objc` crate we're using. This only comes up on nightly builds (not on CI), so I don't think I have a way to trigger this issue locally. Release Notes: - N/A
Kyle Kelley created
466d331
Fix issue with image output from Jupyter kernels that didn't use base64 padding (#20561)
This upgrades `nbformat` and `runtimelib` to handle jupyter types with even more validation and flexiblity. This also processes any multiline string data coming from the kernel, including with image data (like `image/png`). While I was at it I also fixed a longstanding issue around images by eliminating all whitespace (something `atob` does) and using the no pad decoder. Fixes: #17956 Before: <img width="741" alt="image" src="https://github.com/user-attachments/assets/37ec2cae-ce78-4475-aaa3-4d785e4015d0"> After: <img width="727" alt="image" src="https://github.com/user-attachments/assets/e2431ba2-048b-4205-9898-54f357795a9c"> Release Notes: - Fixed issue with image output from REPL kernels that didn't use base64 padding
Kyle Kelley created
3ebb64e
Expose context server settings to extensions (#20555)
This PR exposes context server settings to extensions. Extensions can use `ContextServerSettings::for_project` to get the context server settings for the current project. The `experimental.context_servers` setting has been removed and replaced with the `context_servers` setting (which is now an object instead of an array). Release Notes: - N/A --------- Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Marshall Bowers and Max Brunsfeld created
0a9c78a
Show error and warning indicators in project panel items (#18182)
Closes #5016 Release Notes: - Add setting to display error and warning indicators in project panel items. https://github.com/user-attachments/assets/8f8031e6-ca47-42bf-a7eb-718eb1067f36 --------- Co-authored-by: Thorsten Ball <mrnugget@gmail.com> Co-authored-by: Danilo Leal <67129314+danilo-leal@users.noreply.github.com>
Nils Koch , Thorsten Ball , and Danilo Leal created
a7eb3a9
Add "Book Onboarding" action across the app (#20503)
This PR adds a small UI touch-up to the welcome page so we can introduce the "Book Onboarding" over there, as well as adding it to the user menu (both in the signed in and signed out states). The actual URL these buttons take to will still be updated to the correct destination. <img width="700" alt="Screenshot 2024-11-12 at 12 45 27" src="https://github.com/user-attachments/assets/9933bf94-f57a-43e2-8da3-bfbfd9fd24d0"> Release Notes: - N/A
Danilo Leal created
47ca340
Disable ligatures in SSH connection dialogue (#20549)
Closes #20381 Release Notes: - Fixed password dialog for remote server showing ligatures
Conrad Irwin created
d1e2c6e
python: Add pylsp as the secondary language server (#20358)
Closes #ISSUE Release Notes: - Added python-lsp-server as a secondary built-in language server.
Piotr Osiewicz created
181c372
windows: Fix rust-analyzer download (#20408)
After https://github.com/rust-lang/rust-analyzer/pull/18412, there is no longer a .gz file for windows rust-analyzer targets, and the rust analyzer LSP fails to download. This fixes it by using the .zip version on windows. The .zip also extracts to a _folder_ containing rust-analyzer.exe rather than just a file. I've handled it in this code, but am not 100% sure if other parts of the code need too be aware of it. Release Notes: - N/A
Arthur Brussee created
aad3ed7
Fix window drawing when switching X11 workspaces by presenting when expose events occur (#20535)
Closes #18184 Release Notes: - Fix window drawing when switching X11 workspaces, particularly for tiling window managers such as i3wm and XMonad.
Michael Sloan created
ad3171d
Expose active key equivalents in the keymap context view (#20530)
Release Notes: - Added macOS key equivalents to cmd-shift-p `debug: Open Key Context View`
Conrad Irwin created
e4bf586
SSH Remoting: Improve unsupported error messages (#20529)
Updates #19697 Release Notes: - SSH Remoting: Improved error message on unsupported OS/Arch.
Conrad Irwin created
ab20681
Use char level diff for Rewrap action for cursor preservation + not reinserting all text (#20368)
Closes #18896 Release Notes: - Fixed #18896 - `editor::Rewrap` now preserves cursors and only inserts whitespace by using character-level diff instead of line-level diff.
Michael Sloan created
6819108
Bump rustls and async-tungstenite to remove child dep ring 0.16.20 (#20489)
Closes #18891 Tests: - I have cargo checked and built `remote-server` on my riscv64 dev board. - I have cargo checked and tested on my M1 Mac - Almost all test passed. Some (LLM tests, Postgres tests)failed due to, IMO, irrelevant reasons Release Notes: - Improved support of Zed remote server compilation for riscv64 cc @ConradIrwin PS: I didn't include the changes of `Cargo.lock`, which may look messy. Probably I should include these? Or, should a reviewer do this? The expected Cargo.lock should have only one version of `ring` with version > 0.17.0
ifsheldon created
2521ef7
Document why join_lines has a special case for single-line selections (#20528)
Release Notes: - N/A
Michael Sloan created
b08ac2a
Heaptrack documentation (#20266)
Release Notes: - N/A
Michael Sloan created
2ea4ede
macOS: Improve deadkeys (#20515)
Closes #19738 This change refactors how we handle input on macOS to avoid simulating our own IME. This fixes a number of small edge-cases, and also lets us remove a bunch of code that had been added to work around bugs in the previous version. Release Notes: - On macOS: Keyboard shortcuts are now handled before activating the IME system, this enables using vim's default mode on keyboards that use IME menus (like Japanese). - On macOS: Improvements to handling of dead-keys. For example when typing `""` on a Brazillian keyboard, you now get a committed " and a new marked ", as happens in other apps. Also, you can now type cmd-^ on an AZERTY keyboard for indent; and ^ on a QWERTZ keyboard now goes to the beginning of line in vim normal mode, or `d i "` no requires no space to delete within quotes on Brazilian keyboards (though `d f " space` is still required as `f` relies on the input handler, not a binding). - On macOS: In the terminal pane, holding down a key will now repeat that key (as happens in iTerm2) instead of opening the character selector.
Conrad Irwin created
38f2a91
Fix default project panel autofold docs (#20517)
Closes https://github.com/zed-industries/zed/issues/20511 Release Notes: - N/A
Kirill Bulatov created
82427e1
Add new `DecoratedIcon` component (#20516)
This PR creates a new, revamped `DecoratedIcon` component that enables using different SVGs, one for the knockout background and another for the actual icon. That's different than what we were doing before—copying the SVG and using slightly different positioning—because we wanted to unlock an aligned knockout effect, which was particularly hard to do with non-simple shapes such as an X. Release Notes: - N/A --------- Co-authored-by: Nate Butler <1714999+iamnbutler@users.noreply.github.com>
Danilo Leal and Nate Butler created
149e5fd
Don't try to make project search and outline order match project panel (#20513)
A straight alphabetical order is arguably clearer, and avoids a large initial delay when searching large repos. Release Notes: - Fixed a long initial delay when performing a project search in a large repository.
Max Brunsfeld created
97b542b
Discover available python environments with Jupyter kernel support (#20467)
 Closes #18291 Closes #16757 Closes #15563 Release Notes: - Added support for kernelspecs based on python environments
Kyle Kelley created
6152230
Fix DynamicSpacing docs (#20509)
In #20504 the CustomSpacing enum variants ended up not having docs. This PR fixes that, now docs correctly show for variants. https://github.com/user-attachments/assets/8cc409c9-7b71-4c21-a538-3fd5dded3e00 Release Notes: - N/A
Nate Butler created
a47759f
Add initial FreeBSD support (#20480)
This PR adds initial support for FreeBSD (https://github.com/zed-industries/zed/issues/15309). While there is still work left to be done, it seems to be usable. As discussed by @syobocat (https://github.com/zed-industries/zed/discussions/10247), the changes were just adding ```target_os = "freebsd"``` to wherever it checks if the OS is Linux.  Needs to be build with ```RUSTFLAGS="-C link-dead-code"``` Known Issues: - There's an issue in ```crates/project/src/environment.rs``` where a command fails because ```/bin/sh``` on FreeBSD doesn't support the ```-l``` option.  - The file/folder choosers provided by the ```ashpd``` crate don't work on FreeBSD (at least with KDE). This isn't that bad since a fallback dialog is used.  - Moving to trash won't work. - Numerous tests fail (when running on FreeBSD). While I haven't looked into this much, it appears that the corresponding features seem to work fine. Release Notes: - Added initial support for FreeBSD
Caleb Heydon created
b5da119
Refactor rewrap test to use a test utility (#20424)
Release Notes: - N/A Co-authored-by: Max <max@zed.dev>
Michael Sloan and Max created
ba743a1
Add setting to disable inline completions in language scopes (#20508)
This adds a setting to disable inline completions in language scopes to,
for example, disable them in comments or strings.
This setting can be made per language.
Examples:
```json
{
"languages": {
"Go": {
"inline_completions_disabled_in": ["comment", "string"]
}
}
}
```
```json
{
"inline_completions_disabled_in": ["comment"]
}
```
Closes #9133
Release Notes:
- Added language setting to disable inline comments in certain scopes.
Example: `{"languages": {"Go": {"inline_completions_disabled_in":
["comment", "string"]}}}`
Co-authored-by: Bennet <bennet@zed.dev>
Thorsten Ball and Bennet created
9e7afe8
tailwind: Allow configuring the `rootFontSize` (#20500)
This addresses this comment:
https://github.com/zed-industries/zed/pull/13923#issuecomment-2467213210
With the change in here it's now possible to use the following settings:
```json
{
"lsp": {
"tailwindcss-language-server": {
"settings": {
"rootFontSize": 50
}
}
}
}
```
Closes https://github.com/zed-industries/zed/issues/10840
Release Notes:
- Added ability to configure `rootFontSize` for the
`tailwindcss-language-server`. Example settings: `{"lsp":
{"tailwindcss-language-server": {"settings": { "rootFontSize": 50}}}}`
Co-authored-by: Bennet <bennet@zed.dev>
Thorsten Ball and Bennet created
94d8ead
Refactor Spacing into DynamicSpacing using proc macro (#20504)
Density tracking issue: #18078
This PR refactors our spacing system to use a more flexible and
maintainable approach. We've replaced the static `Spacing` enum with a
dynamically generated `DynamicSpacing` enum using a proc macro.
Enum variants now use a `BaseXX` format, where XX = the pixel value @
default rem size and the default UI density.
For example:
`CustomSpacing::Base16` would return 16px at the default UI scale &
density.
I'd love to find another name other than `Base` that is clear (to avoid
base_10, etc confusion), let me know if you have any ideas!
Changes:
- Introduced a new `derive_dynamic_spacing` proc macro to generate the
`DynamicSpacing` enum
- Updated all usages of `Spacing` to use the new `DynamicSpacing`
- Removed the `custom_spacing` function, mapping previous usages to
appropriate `DynamicSpacing` variants
- Improved documentation and type safety for spacing values
New usage example:
```rust
.child(
div()
.flex()
.flex_none()
.m(DynamicSpacing::Base04.px(cx))
.size(DynamicSpacing::Base16.rems(cx))
.children(icon),
)
```
vs old usage example:
```
.child(
div()
.flex()
.flex_none()
.m(Spacing::Small.px(cx))
.size(custom_spacing(px(16.)))
.children(icon),
)
```
Release Notes:
- N/A
Nate Butler created
93ab6ad
logs: Reduce log noise by using more debug logs (#20498)
Release Notes: - N/A
Thorsten Ball created
45bbfe0
python: Fix toolchains not getting picked up after workspace deserialization (#20488)
Closes #20476 Release Notes: - Fixed a bug in toolchain selector that caused it to not pick up venvs for tabs before user interacted with them. - Fixed a bug in language selector that caused it to pick up Markdown as the language for a buffer up until the tab was interacted with.
Piotr Osiewicz created
be8cc11
language server logs: Fix missing menu entries when using remoting (#20495)
This fixes the language server log menu only showing a single entry when using SSH remoting. Culprit was the `return menu;` statement that should've been a `continue;` Rest of the change is just refactoring. Release Notes: - Fixed `language server logs` menu only showing a single entry when using SSH remoting. Co-authored-by: Bennet <bennet@zed.dev>
Thorsten Ball and Bennet created
a97ab5e
language servers: Fix wrong language server name (#20428)
This fixes the issue of multiple language servers showing up as `node` in the language server logs dropdown. It does this by changing `language_server.name()` to return the adapter's name, not the binary name, and changing types to make sure that we always use this. Release Notes: - Fixed language server names showing up only as `"node"` --------- Co-authored-by: Sam Rose <hello@samwho.dev> Co-authored-by: Bennet <bennet@zed.dev>
Thorsten Ball , Sam Rose , and Bennet created
f4024cc
Fix excerpt jumps using selections, not the match data (#20491)
Fixes https://github.com/zed-industries/zed/pull/20469#issuecomment-2466805325 Release Notes: - N/A --------- Co-authored-by: Bennet <bennet@zed.dev>
Kirill Bulatov and Bennet 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