This PR makes it so that when we apply changes within a branch
buffer—currently just the edits buffer—we save the underlying buffer.
This also fixes an issue where new files created via edits were not
properly flushed to disk.
Release Notes:
- N/A
---------
Co-authored-by: Max <max@zed.dev>
A user commented on this issue to let us know they couldn't reproduce,
which would keep it open for another 6 months. Best we can do is tell
them what to do if they can't repro, which is to close the issue
themselves.
- https://github.com/zed-industries/zed/issues/10671
Release Notes:
- N/A
This contains a bunch of smallish but nasty fixes:
- Heartbeat timer was never reset after first heartbeat
- Use same return value when stderr is closed as when stdout is closed
- Always check proxy process status since it should also be done when we
get to this point (either it died and our task stopped, or our task
stopped and we dropped the process handle and it was killed on drop)
- make error messages less wrongly-specific
Release Notes:
- N/A
Co-authored-by: Bennet <bennet@zed.dev>
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [wasmtime-wasi](https://redirect.github.com/bytecodealliance/wasmtime)
| workspace.dependencies | patch | `24.0.0` -> `24.0.1` |
---
### Release Notes
<details>
<summary>bytecodealliance/wasmtime (wasmtime-wasi)</summary>
###
[`v24.0.1`](https://redirect.github.com/bytecodealliance/wasmtime/releases/tag/v24.0.1)
[Compare
Source](https://redirect.github.com/bytecodealliance/wasmtime/compare/v24.0.0...v24.0.1)
#### 24.0.1
Released 2024-10-09.
##### Fixed
- Fix a runtime crash when combining tail-calls with host imports that
capture a
stack trace or trap.
[GHSA-q8hx-mm92-4wvg](https://redirect.github.com/bytecodealliance/wasmtime/security/advisories/GHSA-q8hx-mm92-4wvg)
- Fix a race condition could lead to WebAssembly control-flow integrity
and type
safety violations.
[GHSA-7qmx-3fpx-r45m](https://redirect.github.com/bytecodealliance/wasmtime/security/advisories/GHSA-7qmx-3fpx-r45m)
</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:eyJjcmVhdGVkSW5WZXIiOiIzOC4xMjAuMSIsInVwZGF0ZWRJblZlciI6IjM4LjEyMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR exposes the server address (or the nickname, if there is one) on
the title bar and in all modals that have the SSH header. The title bar
tooltip meta description still shows the original server address
(regardless of a nickname existing in this case), though.
<img width="600" alt="Screenshot 2024-10-22 at 10 58 36"
src="https://github.com/user-attachments/assets/64a94d9f-798b-44a4-9dee-6056886535bb">
Release Notes:
- N/A
---------
Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>
We sadly have to change the underlying protocol once again. This will
likely be the last change to the core protocol without correctly
handling older versions. From here on out, we want to get better with
version handling. To do so, we introduce the notion of a string protocol
version to be explicit of when the underlying protocol last changed.
The change also changes the return values of prompts. For now we only
allow User messages from servers to match the current behaviour. We will
change this once #19222 lands which will allow slash commands to insert
user and assistant messages.
Release Notes:
- N/A
This fixes the `ssh` proxy process not being notified when the proxy
process dies. Turns out that the server would have stdout/stderr/stdin
connected to the grand-parent ssh process connected to it and as long as
the server kept running (even once it was daemonized into the
background) the grand-parent ssh process wouldn't exit.
That in turn meant that the Zed client wasn't notified when the proxy
process died.
Release Notes:
- N/A
---------
Co-authored-by: Bennet <bennet@zed.dev>
We can't seem to generate invite links that dumps a user directly into a
specific channel, so just adding a general invite link and then pointing
them to the Windows channel name.
Release Notes:
- N/A
This PR changes the behavior of pressing the `Esc` key on the connection
input. Now, if you hit it, the address inserted into the input won't be
erased. Effectively, escape now only cancels the connection process
instead of doing both (clearing the input _and_ cancelling the
connection).
Release Notes:
- N/A
Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>
Before this change we sometimes showed errors inline, sometimes in
alerts.
Sometimes we closed the window, someimtes we didn't.
Now they always show as prompts and we never close windows.
Co-Authored-By: Mikayla <mikayla@zed.dev>
Release Notes:
- SSH Remoting: Improve error handling
This is a fixup for #19410.
Apparently, `mdbook` requires a reference to the document from the
`SUMMARY.md`. This fixes the 404
(https://zed.dev/docs/languages/jsonnet.html) and also adds the Jsonnet
to the docs' navigation.
Release Notes:
- N/A
Closes#19181
When the keystroke was empty ("") the `ime_key` was converted from
`None` to `Some("")` when `with_simulated_ime` was called. That was
leading to not intentional behavior when an empty keystroke was combined
with `shift-up` in a keybinding `["workspace::SendKeystrokes", "shift-up
"]`.
By adding a `key.is_empty()` we make sure the `ime_key` keeps as `None`.
This was manually tested.
Release Notes:
- Fixed empty keystroke with simulated ime
Signed-off-by: Bruno Calza <brunoangelicalza@gmail.com>
This fixes problems where auto-indent wasn't working correctly for
assistant edits.
Release Notes:
- Fixed a bug where auto-indent didn't work correctly when pasting with
multiple cursors on adjacent lines
Co-authored-by: Marshall <marshall@zed.dev>
- Closes#12515
Before fix:
<img width="1506" alt="Screenshot 2024-10-17 at 09 50 19"
src="https://github.com/user-attachments/assets/250f50cb-0119-4b96-bc9b-7258aa83247c">
After fix:
<img width="1027" alt="Screenshot 2024-10-17 at 09 52 36"
src="https://github.com/user-attachments/assets/c2eb7e4a-3c03-466c-b215-7fcc22eed024">
Testing:
- Manual testing
- Added unit test
Test results, these tests fail on the main branch for my setup as well,
I have docker running but still had some failures:
```
failures:
tests::integration_tests::test_context_collaboration_with_reconnect
tests::integration_tests::test_formatting_buffer
tests::integration_tests::test_fs_operations
tests::integration_tests::test_git_branch_name
tests::integration_tests::test_git_diff_base_change
tests::integration_tests::test_git_status_sync
tests::integration_tests::test_join_after_restart
tests::integration_tests::test_join_call_after_screen_was_shared
tests::integration_tests::test_joining_channels_and_calling_multiple_users_simultaneously
tests::integration_tests::test_leaving_project
tests::integration_tests::test_leaving_worktree_while_opening_buffer
tests::integration_tests::test_local_settings
tests::integration_tests::test_lsp_hover
tests::integration_tests::test_mute_deafen
tests::integration_tests::test_open_buffer_while_getting_definition_pointing_to_it
tests::integration_tests::test_pane_split_left
tests::integration_tests::test_prettier_formatting_buffer
tests::integration_tests::test_preview_tabs
tests::integration_tests::test_project_reconnect
tests::integration_tests::test_project_search
tests::integration_tests::test_project_symbols
tests::integration_tests::test_propagate_saves_and_fs_changes
tests::integration_tests::test_references
tests::integration_tests::test_reloading_buffer_manually
tests::integration_tests::test_right_click_menu_behind_collab_panel
tests::integration_tests::test_room_location
tests::integration_tests::test_room_uniqueness
tests::integration_tests::test_server_restarts
tests::integration_tests::test_unshare_project
tests::notification_tests::test_notifications
tests::random_project_collaboration_tests::test_random_project_collaboration
tests::remote_editing_collaboration_tests::test_sharing_an_ssh_remote_project
test result: FAILED. 156 passed; 32 failed; 0 ignored; 0 measured; 0 filtered out; finished in 100.98s
```
Comments:
I do not have a ton of rust knowledge, so very open to feedback. TYSM
Release Notes:
- Fix Incorrect checkbox placement in Markdown preview
---------
Co-authored-by: Bennet Bo Fenner <bennet@zed.dev>
Before this change, `parse_block` was consuming events that it doesn't
handle. This was fine in its use in `parse_document`, but in its use in
`parse_list` this broke when there is an empty list item, causing it to
consume list end tags / list item starts / etc.
Release Notes:
- Fixed markdown preview rendering of empty list items.
Closes https://github.com/zed-industries/zed/issues/8534
Supersedes https://github.com/zed-industries/zed/pull/16349
Potential concerns:
* we do not follow up to the `/` when looking for `.editorconfig`, only
up to the worktree root.
Seems fine for most of the cases, and the rest should be solved
generically later, as the same issue exists for settings.json
* `fn language` in `AllLanguageSettings` is very hot, called very
frequently during rendering. We accumulate and parse all `.editorconfig`
file contents beforehand, but have to go over globs and match these
against the path given + merge the properties still.
This does not seem to be very bad, but needs more testing and
potentially some extra caching.
Release Notes:
- Added .editorconfig support
---------
Co-authored-by: Ulysse Buonomo <buonomo.ulysse@gmail.com>
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [swatinem/rust-cache](https://redirect.github.com/swatinem/rust-cache)
| action | digest | `23bce25` -> `82a92a6` |
---
### 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:eyJjcmVhdGVkSW5WZXIiOiIzOC4xMjAuMSIsInVwZGF0ZWRJblZlciI6IjM4LjEyMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Before this change messages could be lost on reconnect, now they will
not be.
Release Notes:
- SSH Remoting: make reconnects smoother
---------
Co-authored-by: Nathan <nathan@zed.dev>
When we insert before some text and then update that same text, we need
to preserve and concatenate the new text associated with both
operations.
Release Notes:
- N/A
This simplifies rendering of excerpt headers and footers, and removes
the need to store a `BlockDisposition` on these boundary blocks. It's a
step toward implementing "replace blocks", which we want to use in the
assistant panel.
We've also cleaned up the way heights are specified for headers and
footers and fixed some visual asymmetries between the "expand upward"
and "expand downward" buttons.
Release Notes:
- N/A
---------
Co-authored-by: Richard <richard@zed.dev>
Hi. While working on https://github.com/zed-industries/zed/pull/19230 I
noticed that some servers send a request to unregistered the
`textDocument/rename` capability. I thought it would be good to handle
that message in Zed:
```plaintext
[2024-10-18T21:25:07+02:00 WARN project::lsp_store] unhandled capability unregistration: Unregistration { id: "biome_rename", method: "textDocument/rename" }
```
So this pull request implements that. Thanks.
Release Notes:
- N/A
Fixes a bug due to the `select!` macro tossing futures that had
partially read messages, causing us to desync our message reading with
the input stream.
Release Notes:
- N/A
---------
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Co-authored-by: conrad <conrad@zed.dev>