6cba467
project-panel: Fix playback GIF images (#21274)
Gowtham K created
6cba467
project-panel: Fix playback GIF images (#21274)
Gowtham K created
cacec06
search: Treat non-word char as whole-char when searching (#19152)
when search somethings like `clone(`, with search options `match case sensitively` and `match whole words` in zed code base, only `clone(cx)` hit match, `clone()` will not hit math. Release Notes: - Improved buffer search for queries ending with non-letter characters
CharlesChen0823 created
3ac119a
Fix hovered links underline not showing when using cmd_or_ctrl for multi_cursor_modifier (#20949)
I use `cmd_or_ctrl` for `multi_cursor_modifier`, but noticed that if I hovered a code reference while holding alt, it wouldn't show the underline. Instead, it would only show when pressing cmd. Looking at the code, it seems like this was just a small oversight on always checking for `modifiers.secondary`, instead of reading from the `multi_cursor_modifier` setting to determine which button was invoking link handling. --- Release Notes: - Fixed underline when hovering a code link not showing when `multi_cursor_modifier` is `cmd_or_ctrl`
Zach Bruggeman created
b12a508
python: Fix highlighting for forward references (#20766)
[PEP484](https://peps.python.org/pep-0484/) defines "Forward references" for undefined types. This PR treats such annotations as types rather than strings. Release Notes: - Added Python syntax highlighting for forward references.
Jaagup Averin created
1739de5
Update Rust crate proc-macro2 to v1.0.92 (#20967)
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [proc-macro2](https://redirect.github.com/dtolnay/proc-macro2) | dependencies | patch | `1.0.89` -> `1.0.92` | --- ### Release Notes <details> <summary>dtolnay/proc-macro2 (proc-macro2)</summary> ### [`v1.0.92`](https://redirect.github.com/dtolnay/proc-macro2/releases/tag/1.0.92) [Compare Source](https://redirect.github.com/dtolnay/proc-macro2/compare/1.0.91...1.0.92) - Improve compiler/fallback mismatch panic message ([#​487](https://redirect.github.com/dtolnay/proc-macro2/issues/487)) ### [`v1.0.91`](https://redirect.github.com/dtolnay/proc-macro2/releases/tag/1.0.91) [Compare Source](https://redirect.github.com/dtolnay/proc-macro2/compare/1.0.90...1.0.91) - Fix panic *"compiler/fallback mismatch 949"* when using TokenStream::from_str from inside a proc macro to parse a string containing doc comment ([#​484](https://redirect.github.com/dtolnay/proc-macro2/issues/484)) ### [`v1.0.90`](https://redirect.github.com/dtolnay/proc-macro2/releases/tag/1.0.90) [Compare Source](https://redirect.github.com/dtolnay/proc-macro2/compare/1.0.89...1.0.90) - Improve error recovery in TokenStream's and Literal's FromStr implementations to work around [https://github.com/rust-lang/rust/issues/58736](https://redirect.github.com/rust-lang/rust/issues/58736) such that rustc does not poison compilation on codepaths that should be recoverable errors ([#​477](https://redirect.github.com/dtolnay/proc-macro2/issues/477), [#​478](https://redirect.github.com/dtolnay/proc-macro2/issues/478), [#​479](https://redirect.github.com/dtolnay/proc-macro2/issues/479), [#​480](https://redirect.github.com/dtolnay/proc-macro2/issues/480), [#​481](https://redirect.github.com/dtolnay/proc-macro2/issues/481), [#​482](https://redirect.github.com/dtolnay/proc-macro2/issues/482)) </details> --- ### Configuration 📅 **Schedule**: Branch creation - "after 3pm on Wednesday" in timezone America/New_York, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- Release Notes: - N/A <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xOS4wIiwidXBkYXRlZEluVmVyIjoiMzkuMTkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate[bot] and renovate[bot] created
4aa47a9
Update Rust crate rodio to 0.20.0 (#20955)
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [rodio](https://redirect.github.com/RustAudio/rodio) | dependencies |
minor | `0.19.0` -> `0.20.0` |
---
### Release Notes
<details>
<summary>RustAudio/rodio (rodio)</summary>
###
[`v0.20.1`](https://redirect.github.com/RustAudio/rodio/blob/HEAD/CHANGELOG.md#Version-0201-2024-11-08)
[Compare
Source](https://redirect.github.com/RustAudio/rodio/compare/v0.20.0...v0.20.1)
##### Fixed
- Builds without the `symphonia` feature did not compile
###
[`v0.20.0`](https://redirect.github.com/RustAudio/rodio/blob/HEAD/CHANGELOG.md#Version-0200-2024-11-08)
[Compare
Source](https://redirect.github.com/RustAudio/rodio/compare/v0.19.0...v0.20.0)
##### Added
- Support for *ALAC/AIFF*
- Add `automatic_gain_control` source for dynamic audio level
adjustment.
- New test signal generator sources:
- `SignalGenerator` source generates a sine, triangle, square wave or
sawtooth
of a given frequency and sample rate.
- `Chirp` source generates a sine wave with a linearly-increasing
frequency over a given frequency range and duration.
- `white` and `pink` generate white or pink noise, respectively. These
sources depend on the `rand` crate and are guarded with the "noise"
feature.
- Documentation for the "noise" feature has been added to `lib.rs`.
- New Fade and Crossfade sources:
- `fade_out` fades an input out using a linear gain fade.
- `linear_gain_ramp` applies a linear gain change to a sound over a
given duration. `fade_out` is implemented as a `linear_gain_ramp` and
`fade_in` has been refactored to use the `linear_gain_ramp`
implementation.
##### Fixed
- `Sink.try_seek` now updates `controls.position` before returning.
Calls to `Sink.get_pos`
done immediately after a seek will now return the correct value.
##### Changed
- `SamplesBuffer` is now `Clone`
</details>
---
### Configuration
📅 **Schedule**: Branch creation - "after 3pm on Wednesday" in timezone
America/New_York, Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
Release Notes:
- N/A
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xOS4wIiwidXBkYXRlZEluVmVyIjoiMzkuMTkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate[bot] and renovate[bot] created
fe30a03
Update Rust crate ipc-channel to 0.19 (#20951)
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [ipc-channel](https://redirect.github.com/servo/ipc-channel) | dependencies | minor | `0.18` -> `0.19` | --- ### Configuration 📅 **Schedule**: Branch creation - "after 3pm on Wednesday" in timezone America/New_York, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- Release Notes: - N/A <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xOS4wIiwidXBkYXRlZEluVmVyIjoiMzkuMTkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate[bot] and renovate[bot] created
38900c2
Update Rust crate bytemuck to v1.20.0 (#20947)
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [bytemuck](https://redirect.github.com/Lokathor/bytemuck) | dependencies | minor | `1.19.0` -> `1.20.0` | --- ### Release Notes <details> <summary>Lokathor/bytemuck (bytemuck)</summary> ### [`v1.20.0`](https://redirect.github.com/Lokathor/bytemuck/compare/v1.19.0...v1.20.0) [Compare Source](https://redirect.github.com/Lokathor/bytemuck/compare/v1.19.0...v1.20.0) </details> --- ### Configuration 📅 **Schedule**: Branch creation - "after 3pm on Wednesday" in timezone America/New_York, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- Release Notes: - N/A <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xOS4wIiwidXBkYXRlZEluVmVyIjoiMzkuMTkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate[bot] and renovate[bot] created
6927512
Update Rust crate ashpd to 0.10.0 (#20939)
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [ashpd](https://redirect.github.com/bilelmoussaoui/ashpd) | workspace.dependencies | minor | `0.9.1` -> `0.10.0` | --- ### Release Notes <details> <summary>bilelmoussaoui/ashpd (ashpd)</summary> ### [`v0.10.2`](https://redirect.github.com/bilelmoussaoui/ashpd/releases/tag/0.10.2) [Compare Source](https://redirect.github.com/bilelmoussaoui/ashpd/compare/0.10.1...0.10.2) - Add `backend` feature to docs.rs ### [`v0.10.1`](https://redirect.github.com/bilelmoussaoui/ashpd/releases/tag/0.10.1) [Compare Source](https://redirect.github.com/bilelmoussaoui/ashpd/compare/0.10.0...0.10.1) #### What's Changed - desktop/activation-token: Add helper for retriving the token from a `gtk::Widget` or a `WlSurface` - desktop/secret: Close the socket after done reading - desktop/input-capture: Fix barrier-id type - desktop: Use a Pid alias all over the codebase - desktop/notification: Support v2 of the interface - Introduce backend implementation support, allowing to write a portal implementation in pure Rust. Currently, we don't support Session based portals. The backend feature is considered experimental as we might possibly introduce API breaking changes in the future but it should be good enough for getting started. Examples of how a portal can be implemented can be found in [backend-demo](https://redirect.github.com/bilelmoussaoui/ashpd/tree/master/backend-demo) **Note**: The 0.10.0 release has been yanked from crates.io as it contained a build error when the `glib` feature is enabled. ### [`v0.10.0`](https://redirect.github.com/bilelmoussaoui/ashpd/compare/0.9.2...0.10.0) [Compare Source](https://redirect.github.com/bilelmoussaoui/ashpd/compare/0.9.2...0.10.0) </details> --- ### Configuration 📅 **Schedule**: Branch creation - "after 3pm on Wednesday" in timezone America/New_York, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- Release Notes: - N/A <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xOS4wIiwidXBkYXRlZEluVmVyIjoiMzkuMTkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate[bot] and renovate[bot] created
4342a93
Update Rust crate tree-sitter-c to v0.23.2 (#20938)
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [tree-sitter-c](https://redirect.github.com/tree-sitter/tree-sitter-c) | workspace.dependencies | patch | `0.23.1` -> `0.23.2` | --- ### Release Notes <details> <summary>tree-sitter/tree-sitter-c (tree-sitter-c)</summary> ### [`v0.23.2`](https://redirect.github.com/tree-sitter/tree-sitter-c/releases/tag/v0.23.2) [Compare Source](https://redirect.github.com/tree-sitter/tree-sitter-c/compare/v0.23.1...v0.23.2) **NOTE:** Download `tree-sitter-c.tar.xz` for the *complete* source code. </details> --- ### Configuration 📅 **Schedule**: Branch creation - "after 3pm on Wednesday" in timezone America/New_York, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- Release Notes: - N/A <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xOS4wIiwidXBkYXRlZEluVmVyIjoiMzkuMTkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate[bot] and renovate[bot] created
28640ac
Update astral-sh/setup-uv digest to caf0cab (#20927)
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [astral-sh/setup-uv](https://redirect.github.com/astral-sh/setup-uv) | action | digest | `2e657c1` -> `caf0cab` | --- ### Configuration 📅 **Schedule**: Branch creation - "after 3pm on Wednesday" in timezone America/New_York, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- Release Notes: - N/A <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xOS4wIiwidXBkYXRlZEluVmVyIjoiMzkuMTkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate[bot] and renovate[bot] created
c2c968f
Enable clangd's dot-to-arrow feature (#21142)
Closes #20815  Release Notes: - Enabled clangd's dot-to-arrow feature
feeiyu created
a4584c9
Add an uninstall script (#21213)
Closes #14306 This looks at what #16660 did and install.sh script as a base for the uninstall.sh script. The script is bundled with the cli by default unless the cli/no-bundled-uninstall feature is selected which is done, so package managers could build zed without bundling a useless feature and increasing binary size. I don't have capabilities to test this right now, so any help with that is appreciated. Release Notes: - Added an uninstall script for Zed installations done via zed.dev. To uninstall zed, run `zed --uninstall` via the CLI binary.
Stanislav Alekseev created
e9e2607
gpui: Fix default colors blue, red, green to match in CSS default colors (#20851)
Release Notes: - N/A --- This change to let the default colors to 100% match with CSS default colors. And update the methods to as `const`. Here is an example: <img width="338" alt="image" src="https://github.com/user-attachments/assets/dd17b46a-3ad4-4122-8dca-e800644c75b0"> https://codepen.io/huacnlee/pen/ZEgNXJZ But the before version for example blue: `h: 0.6 * 360 = 216`, but we expected `240`, `240 / 360 = 0.666666666`, so the before version are lose the precision. (Here is a test tool: https://hslpicker.com/#0000FF) ## After Update ```bash cargo run -p gpui --example hello_world ``` <img width="612" alt="image" src="https://github.com/user-attachments/assets/97d479d8-9c71-4be3-95e0-09af45fe47e2">
Jason Lee created
461ab24
Update nix cargo hash (#21257)
Closes https://github.com/zed-industries/zed/issues/21256 Release Notes: - N/A
Jared Ramirez created
04ff9f0
Improve runnable detection for JavaScript files (#21246)
Closes #21242   Release Notes: - Improved runnable detection for JavaScript/Typescript files.
Remco Smits created
66ba9d5
Use item context for pane tab context menu (#21254)
This allows to show proper override values for terminal tabs in Linux and Windows. Release Notes: - Fixed incorrect "close tab" keybinding shown in context menu of the terminal panel tabs on Linux and Windows
Kirill Bulatov created
e803815
Use proper context to show terminal split menu bindings (#21253)
Follow-up of https://github.com/zed-industries/zed/pull/21251 Show proper keybindings on the terminal split button: <img width="249" alt="image" src="https://github.com/user-attachments/assets/b51b183f-788a-4e8f-9fec-3ec07f084bd4"> Release Notes: - N/A
Kirill Bulatov created
34ed48e
Add a split button to terminal panes (#21251)
Follow-up of https://github.com/zed-industries/zed/pull/21238 <img width="873" alt="image" src="https://github.com/user-attachments/assets/8cf2d8ea-a1df-4a6a-95d6-5867e0ee287d"> Release Notes: - N/A
Kirill Bulatov created
0c8e555
Make Markdown images layout vertically instead of horizontally (#21247)
Release Notes: - Fixed a bug in the Markdown preview where images in the same paragraph would be rendered next to each other
Mikayla Maki created
cff9ae0
Better absolute path handling (#19727)
Closes #19866
This PR supersedes #19228, as #19228 encountered too many merge
conflicts.
After some exploration, I found that for paths with the `\\?\` prefix,
we can safely remove it and consistently use the clean paths in all
cases. Previously, in #19228, I thought we would still need the `\\?\`
prefix for IO operations to handle long paths better. However, this
turns out to be unnecessary because Rust automatically manages this for
us when calling IO-related APIs. For details, refer to Rust's internal
function
[`get_long_path`](https://github.com/rust-lang/rust/blob/017ae1b21f7be6dcdcfc95631e54bde806653a8a/library/std/src/sys/path/windows.rs#L225-L233).
Therefore, we can always store and use paths without the `\\?\` prefix.
This PR introduces a `SanitizedPath` structure, which represents a path
stripped of the `\\?\` prefix. To prevent untrimmed paths from being
mistakenly passed into `Worktree`, the type of `Worktree`’s `abs_path`
member variable has been changed to `SanitizedPath`.
Additionally, this PR reverts the changes of #15856 and #18726. After
testing, it appears that the issues those PRs addressed can be resolved
by this PR.
### Existing Issue
To keep the scope of modifications manageable, `Worktree::abs_path` has
retained its current signature as `fn abs_path(&self) -> Arc<Path>`,
rather than returning a `SanitizedPath`. Updating the method to return
`SanitizedPath`—which may better resolve path inconsistencies—would
likely introduce extensive changes similar to those in #19228.
Currently, the limitation is as follows:
```rust
let abs_path: &Arc<Path> = snapshot.abs_path();
let some_non_trimmed_path = Path::new("\\\\?\\C:\\Users\\user\\Desktop\\project");
// The caller performs some actions here:
some_non_trimmed_path.strip_prefix(abs_path); // This fails
some_non_trimmed_path.starts_with(abs_path); // This fails too
```
The final two lines will fail because `snapshot.abs_path()` returns a
clean path without the `\\?\` prefix. I have identified two relevant
instances that may face this issue:
-
[lsp_store.rs#L3578](https://github.com/zed-industries/zed/blob/0173479d18e2526c1f9c8b25ac94ec66b992a2b2/crates/project/src/lsp_store.rs#L3578)
-
[worktree.rs#L4338](https://github.com/zed-industries/zed/blob/0173479d18e2526c1f9c8b25ac94ec66b992a2b2/crates/worktree/src/worktree.rs#L4338)
Switching `Worktree::abs_path` to return `SanitizedPath` would resolve
these issues but would also lead to many code changes.
Any suggestions or feedback on this approach are very welcome.
cc @SomeoneToIgnore
Release Notes:
- N/A
张小白 created
d0bafce
Allow splitting the terminal panel (#21238)
Closes https://github.com/zed-industries/zed/issues/4351  Applies the same splitting mechanism, as Zed's central pane has, to the terminal panel. Similar navigation, splitting and (de)serialization capabilities are supported. Notable caveats: * zooming keeps the terminal splits' ratio, rather expanding the terminal pane * on macOs, central panel is split with `cmd-k up/down/etc.` but `cmd-k` is a "standard" terminal clearing keybinding on macOS, so terminal panel splitting is done via `ctrl-k up/down/etc.` * task terminals are "split" into regular terminals, and also not persisted (same as currently in the terminal) Seems ok for the initial version, we can revisit and polish things later. Release Notes: - Added the ability to split the terminal panel
Kirill Bulatov created
4564da2
Improve Nix package and shell (#21075)
With an addition of useFetchCargoVendor, crane becomes less necessary for our use. This reuses the package from nixpkgs as well as creating a better devshell that both work on macOS. I use Xcode's SDKROOT and DEVELOPER_DIR to point the swift in the livekit client crate to a correct sdk when using a devshell. Devshell should work without that once apple releases sources for the 15.1 SDK but for now this is an easy fix This also replaces fenix with rust-overlay because of issues with the out-of-sandbox access I've noticed fenix installed toolchains have Release Notes: - N/A
Stanislav Alekseev created
c021ee6
v0.165.x dev
Peter Tripp created
6736806
docs: Move install rustup callup to top of developing-extensions.md (#21239)
Peter Tripp created
ce6782f
Use eslint from the fork (#21233)
Part of https://github.com/zed-industries/zed/issues/21220 Microsoft had decided to switch over to a different releasing strategy, autogenerating all releases and not publishing tarballs anymore. But it was not enough, and they had also removed old tarballs, including a relatively old `2.4.4` version release's tarballs, which broke Zed downloads. See https://github.com/microsoft/vscode-eslint/issues/1954 This PR uses https://github.com/zed-industries/vscode-eslint/releases/tag/2.4.4 from Zed's fork, manually released for the same tag. This approach is merely a stub before more sustainable solution is found, and I think we need to pivot into downloading *.vsix from https://open-vsx.org/extension/dbaeumer/vscode-eslint but this is quite a change so not done right now. Release Notes: - Fixed eslint 404 downloads
Kirill Bulatov created
e865b6c
Fix cmd-shift-e (reveal in project panel) to match vscode (#21228)
Release Notes: - Fixed cmd-shift-e / ctrl-shift-e (`pane::RevealInProjectPanel` / `project_panel::ToggleFocus`) to better my VSCode behavior
Peter Tripp created
4e720be
Add ctrl-w _ and ctrl-w = (#21227)
Closes #ISSUE Release Notes: - vim: Add support for `ctrl-w _` and `ctrl-w =`
Conrad Irwin created
f702575
Add support for resizing panes using vim motions (#21038)
Closes #8628 Release Notes: - Added support for resizing the current pane using vim keybinds with the intention to follow the functionality of vim - "ctrl-w +" to make a pane taller - "ctrl-w -" to make the pane shorter - "ctrl-w >" to make a pane wider - "ctrl-w <" to make the pane narrower - Changed vim pre_count and post_count to globals to allow for other crates to use the vim count. In this case, it allows for resizing by more than one unit. For example, "10 ctrl-w -" will decrease the height of the pane 10 times more than "ctrl-w -" - This pr does **not** add keybinds for making all panes in an axis equal size and does **not** add support for resizing docks. This is mentioned because these could be implied by the original issue --------- Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
AidanV and Conrad Irwin created
d75d345
Fix file missing or duplicated when copying multiple items in project panel + Fix marked files not being deselected after selecting a directory (#20859)
Closes #20858 This fix depends on the sanitization logic implemented in PR #20577. Since that branch may undergo further changes, this branch will be periodically rebased on it. Once #20577 is merged, the dependency will no longer apply. Release Notes: - Fix missing or duplicated files when copying multiple items in the project panel. - Fix marked files not being deselected after selecting a directory on primary click. - Fix "copy path" and "copy path relative" with multiple items selected in project panel. **Problem**: In this case, `dir1` is selected while `dir2`, `dir3`, and `dir1/file` are marked. Using the `marked_entries` function results in only `dir1`, which is incorrect. <img height="120" src="https://github.com/user-attachments/assets/d4d92cc5-c998-4948-9a58-25c4f54167f2" /> Currently, the `marked_entries` function is used in five actions, which all produce incorrect results: 1. Delete (via the disjoint function) 2. Copy 3. Cut 4. Copy Path 5. Copy Path Relative **Solution**: 1. `marked_entries` function should not use "When currently selected entry is not marked, it's treated as the only marked entry." logic. There is no grand scheme behind this logic as confirmed by piotr [here](https://github.com/zed-industries/zed/issues/17746#issuecomment-2464765963). 2. `copy` and `cut` actions should use the disjoint function to prevent obivous failures. 3. `copy path` and `copy path relative` should keep using *fixed* `marked_entries` as that is expected behavior for these actions. --- 1. Before/After: Partial Copy Select `dir1` and `c.txt` (in that order, reverse order works!), and copy it and paste in `dir2`. `c.txt` is not copied in `dir2`. <img height="170" src="https://github.com/user-attachments/assets/a09fcb40-f38f-46ef-b0b4-e44ec01dda18" /> <img height="170" src="https://github.com/user-attachments/assets/bb87dbe5-8e2e-4ca4-a565-42be5755ec8a" /> --- 2. Before/After: Duplicate Copy Select `a.txt`, `dir1` and `c.txt` (in that order), and copy it and paste in `dir2`. `a.txt` is duplicated in `dir2`. <img height="170" src="https://github.com/user-attachments/assets/6f999d22-3607-48d7-9ff6-2e27494002f8" /> <img height="170" src="https://github.com/user-attachments/assets/b4b6ff7d-0df7-45ea-83e4-50a0acb18457" /> --- 3. Before/After: Directory Selection Simply primary click on any file, now primary click on any dir. That previous file is still marked. <img height="170" src="https://github.com/user-attachments/assets/9f1948ce-7445-4377-9733-06490ed6a324" /> <img height="170" src="https://github.com/user-attachments/assets/e78203bc-96ba-424b-b588-c038992a9f0e" /> --- 4. Before/After: Copy Path and Copy Path Relative Upon `copy path` (ctrl + alt + c): Before: Only `/home/tims/test/dir2/a.txt` was copied. After: All three paths `/home/tims/test/dir2`, `/home/tims/test/c.txt` and `/home/tims/test/dir2/a.txt` are copied. This is also how VSCode also copies path when multiple are selected. <img height="170" src="https://github.com/user-attachments/assets/e20423ea-1682-4efd-b208-631e2edd3771" />
tims created
57e4540
vim: Add "unmatched" motions `]}`, `])`, `[{` and `[(` (#21098)
Closes #20791
Release Notes:
- Added vim ["unmatched"
motions](https://github.com/vim/vim/blob/1d87e11a1ef201b26ed87585fba70182ad0c468a/runtime/doc/motion.txt#L1238-L1255)
`]}`, `])`, `[{` and `[(`
---------
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Helge Mahrt and Conrad Irwin created
597e5f8
vim: Add indent text object (#21121)
Added support for the popular vim [indent-text-object](https://github.com/michaeljsmith/vim-indent-object). This is especially useful in indentation-sensitive languages like python. Release Notes: - vim: Added `vii`, `vai` and `vaI` for selecting [indent-text-object](https://github.com/michaeljsmith/vim-indent-object)s.
vultix created
6470852
Revert "Styling for Apply/Discard buttons (#21017)"
This reverts commit 884748038e9c99b83b943d4550dd3cf515563071.
Max Brunsfeld created
6dbe2ef
docs: Fix default value for `relative_line_numbers` in vim (#21196)
 Changes: `true` to `false` Reasoning: matches zed default settings as well as the settings changes portion of the vim docs   Release Notes: - N/A
yoleuh created
8847480
Styling for Apply/Discard buttons (#21017)
Change the "Apply" and "Discard" buttons to match @danilo-leal's design! Here are some different states: ### Cursor in the first hunk Now that the cursor is in a particular hunk, we show the "Apply" and "Discard" names, and the keyboard shortcut. If I press the keyboard shortcut, it will only apply to this hunk. <img width="759" alt="Screenshot 2024-11-23 at 10 54 45 PM" src="https://github.com/user-attachments/assets/68e0f109-9493-4ca2-a99c-dfcbb4d1ce0c"> ### Cursor in the second hunk Moving the cursor to a different hunk changes which buttons get the keyboard shortcut treatment. Now the keyboard shortcut is shown next to the hunk that will actually be affected if you press that shortcut. <img width="749" alt="Screenshot 2024-11-23 at 10 56 27 PM" src="https://github.com/user-attachments/assets/59c2ace3-6972-4a60-b806-f45e8c25eaae"> Release Notes: - Restyled Apply/Discard buttons --------- Co-authored-by: Max <max@zed.dev> Co-authored-by: Danilo Leal <67129314+danilo-leal@users.noreply.github.com> Co-authored-by: Danilo Leal <daniloleal09@gmail.com> Co-authored-by: Bennet Bo Fenner <53836821+bennetbo@users.noreply.github.com>
Richard Feldman , Max , Danilo Leal , Danilo Leal , and Bennet Bo Fenner created
8f1ec3d
assistant2: Add a checkbox to control tool use (#21215)
This PR adds a checkbox to the `assistant2` message editor to control whether tools should be used for a given message. Release Notes: - N/A
Marshall Bowers created
fdc17c5
macos: Keybind improvements for binds involving shift (#21207)
Fix cmd-pipe
Remove redudnant jetbrains/sublime keybinds (these exist as `cmd-{` and `cmd-}` under default vscode keymap) and were broken as part of the recent keybind changes.
Remove excess JSON whitespace from tests to make them more readable.
Peter Tripp created
9999c31
Avoid endless loop of the diagnostic updates (#21209)
Follow-up of https://github.com/zed-industries/zed/pull/21173 Rust-analyzer with `checkOnSave` enabled will push diagnostics for a file after each diagnostics refresh (e.g. save, file open, file close). If there's a file that is not open in any pane and has only warnings, and the diagnostics editor has warnings toggled off, then 0. rust-analyzer will push the corresponding warnings after initial load 1. the diagnostics editor code registers `project::Event::DiagnosticsUpdated` for the corresponding file path and opens the corresponding buffer to read its associated diagnostics from the snapshot 2. opening the buffer would send `textDocument/didOpen` which would trigger rust-analyzer to push the same diagnostics 3. meanwhile, the diagnostics editor would filter out all diagnostics for that buffer, dropping the open buffer and effectively closing it 4. closing the buffer will send `textDocument/didClose` which would trigger rust-analyzer to push the same diagnostics again, as those are `cargo check` ones, still present in the file 5. GOTO 1 Release Notes: - Fixed diagnostics editor not scrolling properly under certain conditions
Kirill Bulatov created
7d67bb4
Properly use lsp::CompletionList defaults (#21202)
- Closes https://github.com/zed-industries/zed/issues/21185 Release Notes: - Fixed incorrect handling of the completion list defaults
Kirill Bulatov created
968ffaa
assistant2: Restructure storage of tool uses and results (#21194)
This PR restructures the storage of the tool uses and results in `assistant2` so that they don't live on the individual messages. It also introduces a `LanguageModelToolUseId` newtype for better type safety. Release Notes: - N/A
Marshall Bowers created
7e418cc
assistant2: Style messages (#21191)
This PR styles the messages in `assistant2` so they don't look quite as rough: <img width="1138" alt="Screenshot 2024-11-25 at 8 36 32 PM" src="https://github.com/user-attachments/assets/9cc423fa-feff-4c69-9d2b-d28970559547"> Release Notes: - N/A
Marshall Bowers created
f059b6a
assistant2: Add support for using tools (#21190)
This PR adds rudimentary support for using tools to `assistant2`. There are currently no visual affordances for tool use. This is gated behind the `assistant-tool-use` feature flag. <img width="1079" alt="Screenshot 2024-11-25 at 7 21 31 PM" src="https://github.com/user-attachments/assets/64d6ca29-c592-4474-8e9d-c344f855bc63"> Release Notes: - N/A
Marshall Bowers created
3901d46
Factor tool definitions out of `assistant` (#21189)
This PR factors the tool definitions out of the `assistant` crate so that they can be shared between `assistant` and `assistant2`. `ToolWorkingSet` now lives in `assistant_tool`. The tool definitions themselves live in `assistant_tools`, with the exception of the `ContextServerTool`, which has been moved to the `context_server` crate. As part of this refactoring I needed to extract the `ContextServerSettings` to a separate `context_server_settings` crate so that the `extension_host`—which is referenced by the `remote_server`—can name the `ContextServerSettings` type without pulling in some undesired dependencies. Release Notes: - N/A
Marshall Bowers created
321fd19
assistant2: Wire up `assistant2::NewThread` action (#21187)
This PR wires up the `assistant2::NewThread` action so that you can create new threads. Release Notes: - N/A
Marshall Bowers created
cc5daa2
assistant2: Improve tracking of pending completions (#21186)
This PR improves the tracking of pending completions in `assistant2` such that we actually remove ones that have been completed. Release Notes: - N/A
Marshall Bowers created
2b92508
assistant2: Include previous messages in the thread in the completion request (#21184)
This PR makes it so previous messages in the thread are included when constructing the completion request, instead of only sending up the most recent user message. Release Notes: - N/A
Marshall Bowers created
e7b0047
assistant2: Remove unnecessary `Pane` (#21183)
This PR removes an unnecessary `Pane` that was copied over from `assistant::AssistantPanel` to `assistant2::AssistantPanel`. Release Notes: - N/A
Marshall Bowers created
9ee1aba
assistant2: Stream in completion text (#21182)
This PR makes it so that the completion text streams into the message list rather than being buffered until the end. Release Notes: - N/A
Marshall Bowers created
91a565f
Simplify BufferStore's local vs remote state (#21180)
This is a pure refactor, motivated by wanting to introduce to the BufferStore new logic for opening staged and committed changes. I found the `BufferStoreImpl` trait a little bit confusing, particularly how the different implementors of the trait held a handle back to the owning buffer store. I was able to reduce the amount of code considerably (-78 lines) by using a two-variant enum instead, similar to what we do for `LspStore`, `WorktreeStore` and `Worktree`. Release Notes: - N/A
Max Brunsfeld created
a02684b
assistant2: Add rudimentary chat functionality (#21178)
This PR adds in rudimentary functionality for sending messages to the LLM in `assistant2`. <img width="1079" alt="Screenshot 2024-11-25 at 1 49 11 PM" src="https://github.com/user-attachments/assets/5accb749-c034-4fb2-bf55-3ae5bc9529ad"> Release Notes: - N/A
Marshall Bowers created