a9696c5
zed 0.125.3
Joseph T. Lyons created
a9696c5
zed 0.125.3
Joseph T. Lyons created
3afc9d8
Throttle the sending of UpdateFollowers messages (cherry-pick #8918) (#8946)
Cherry-picked Throttle the sending of UpdateFollowers messages (#8918) ## Problem We're trying to figure out why we sometimes see high latency when collaborating, even though the collab server logs indicate that messages are not taking long to process. We think that high volumes of certain types of messages, including `UpdateFollowers` may cause a lot of messages to queue up, causing delays before collab sees certain messages. ## Fix This PR reduces the number of `UpdateFollowers` messages that clients send to collab when scrolling around or moving the cursor, using a time-based throttle. The downside of this change is that scrolling will not be as smooth when following someone. The advantage is that it will be much easier to keep up with the stream of updates, since they will be sent much less frequently. ## Release Notes: - Fixed slowness that could occur when collaborating due to excessive messages being sent to support following. --------- Co-authored-by: Nathan <nathan@zed.dev> Co-authored-by: Conrad <conrad@zed.dev> Co-authored-by: Antonio Scandurra <me@as-cii.com> Co-authored-by: Thorsten <thorsten@zed.dev> Co-authored-by: Thorsten Ball <mrnugget@gmail.com> Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com> Co-authored-by: Nathan <nathan@zed.dev> Co-authored-by: Conrad <conrad@zed.dev> Co-authored-by: Antonio Scandurra <me@as-cii.com> Co-authored-by: Thorsten <thorsten@zed.dev> Co-authored-by: Thorsten Ball <mrnugget@gmail.com>
gcp-cherry-pick-bot[bot] , Max Brunsfeld , Nathan , Conrad , Antonio Scandurra , Thorsten , and Thorsten Ball created
1c9ba85
Always resolve code action if needed (#8904)
Follow-up of https://github.com/zed-industries/zed/pull/8874 and https://github.com/zed-industries/zed/pull/7635 Closes https://github.com/zed-industries/zed/issues/7609 * mentions all `lsp::CodeActions` properties in the Zed client resolve capabilities to remove more json out of general actions request potentially * removes odd `CodeActions.data` field checks, as that field is opaque and is intended to store data, needed by the langserver to resolve this code action * if any `CodeAction` lacks either `command` or `edits` fields, tries to resolve the action This all effectively causes Zed to always fire an action resolve request, since we update actions list (replacing the resolved actions with the new, unresolved ones) via `refresh_code_actions` https://github.com/zed-industries/zed/blob/9e66d48ccd3bb87ee97aec4e63484dc8b78e45ac/crates/editor/src/editor.rs#L3650 that is being called on selections change and the actions menu open. Yet, we do not query the resolve until the action is either applied (selected in the list), or called for formatting, so it seems to be fine to resolve them always, as it's not a frequent operation such as reacting to every keystroke. Release Notes: - Fixed certain code actions not being resolved properly ([7609](https://github.com/zed-industries/zed/issues/7609)) --------- Co-authored-by: Derrick Laird <swampdonk@gmail.com>
Kirill Bulatov and Derrick Laird created
80ebf5a
Fix panic in enclosing bracket ranges (#8870)
This function was operating in the wrong co-ordinate space (c.f. #8081) Release Notes: - Fixed a panic on `ctrl-m` in a multibuffer
Conrad Irwin created
acd21f5
Upload crashes to collab directly (#8649)
This lets us run rustc_demangle on the backtrace, which helps the Slack view significantly. We're also now uploading files to digital ocean's S3 equivalent (with a 1 month expiry) instead of to Slack. This PR paves the way for (but does not yet implement) sending this data to clickhouse too. Release Notes: - N/A
Conrad Irwin created
608ad16
Revert "Upload crashes to collab directly (#8649)"
This reverts commit c05f8154bed922c439749aee1f8519081f49d4cd.
Conrad Irwin created
c05f815
Upload crashes to collab directly (#8649)
This lets us run rustc_demangle on the backtrace, which helps the Slack view significantly. We're also now uploading files to digital ocean's S3 equivalent (with a 1 month expiry) instead of to Slack. This PR paves the way for (but does not yet implement) sending this data to clickhouse too. Release Notes: - N/A
Conrad Irwin created
de71d7c
zed 0.125.2
Kirill Bulatov created
da671d9
Return "open in new window" as default in recent projects (#8798)
https://github.com/zed-industries/zed/assets/5518/8bbd13a7-9144-48b0-9bc8-6651725476f8 Closes https://github.com/zed-industries/zed/issues/8651 Reworks `recent_projects::OpenRecent` action with collab projects in mind: * keep the "open in new window" behavior for corresponding menu and command entries * use new, "reuse current window" behavior in the recent projects picker up in the toolbar This way, old Zed behavior is not customizable, kept as original in all main use cases — so that projects shared via remote entities: a channel and a call, are never accidentally closed, breaking the sharing. Release Notes: - Return "open in new window" as default in recent projects
Jason Lee created
993c001
When clicking the checkbox, toggle open the LSP trace logs (#8689)
Before this change, enabling LSP trace checkbox closed the panel and toggled the server logs on. Now, the newly enabled trace logs are shown instead. Release Notes: - Improved LSP logs checkbox behavior
Kirill Bulatov created
7e501f6
Add a way to change what `menu::Confirm` does in the recent projects modal (#8688)
Follow-up of
https://github.com/zed-industries/zed/issues/8651#issuecomment-1973411072
Zed current default is still to reuse the current window, but now it's
possible to do
```json
"alt-cmd-o": [
"projects::OpenRecent",
{
"create_new_window": true
}
]
```
and change this.
menu::Secondary confirm does the action with opposite window creation
strategy.
Release Notes:
- Improved open recent projects flexibility: settings can change whether
`menu::Confirm` opens a new window or reuses the old one
Kirill Bulatov created
3a0f842
Prompt to save files on recent project selection (#8673)
Kirill Bulatov created
38564c5
zed 0.125.1
Conrad Irwin created
023498e
Ensure panel and pane sizes are integral (cherry-pick #8619) (#8620)
Cherry-picked Ensure panel and pane sizes are integral (#8619) Fixes: #8050 For some reason that we didn't investigate, if you have view caching enabled, and you have non-integer sized bounds, and you are right aligning things, the co-ordinates can differ by +/- 1px when using the cached view. The easiest fix for now is to just not do that. Co-Authored-By: Antonio <as-cii@zed.dev> Release Notes: - Fixed the pane icons flickering ([#8050](https://github.com/zed-industries/zed/issues/8050)). Co-authored-by: Antonio <as-cii@zed.dev> Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com> Co-authored-by: Antonio <as-cii@zed.dev>
gcp-cherry-pick-bot[bot] , Conrad Irwin , and Antonio created
1f61804
Revert "Introduce a new `ToggleGraphicsProfiler` command (#7607)" (cherry-pick #8567) (#8569)
Cherry-picked Revert "Introduce a new `ToggleGraphicsProfiler` command (#7607)" (#8567) This reverts commit 0cebf68306ab0ef08693701532260e1fdc0f1ee9. Although this thing is very cool, it is a top source of crashes. Example crash: ``` Segmentation fault: 11 on thread 26 objc_retain +16 invocation function for block in Overlay::onCommandBufferCommit(id<MTLCommandBuffer>) +60 MTLDispatchListApply +52 ``` Release Notes: - Removed "Toggle Graphics Profiler" as it crashes too much. Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
gcp-cherry-pick-bot[bot] and Conrad Irwin created
d229b39
Avoid an unwrap when loading languages (cherry-pick #8562) (#8566)
Cherry-picked Avoid an unwrap when loading languages (#8562) We couldn't reproduce the panic, but I believe it was possible when uninstalling an extension while one if its grammars was still loading. Release Notes: - Fixed a crash that could happen when uninstalling a language extension while its grammar was loading. --------- Co-authored-by: Conrad <conrad@zed.dev> Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com> Co-authored-by: Conrad <conrad@zed.dev>
gcp-cherry-pick-bot[bot] , Max Brunsfeld , and Conrad created
ae2326c
Fix `view release notes locally` (#8553)
🤦♂️ Release Notes: - N/A
Joseph T. Lyons created
c4d1855
v0.125.x preview
Joseph T. Lyons created
57f5f12
Fix flickering cursor style when a pane was zoomed (#8546)
Release Notes: - N/A Co-authored-by: Max Brunsfeld <max@zed.dev>
Antonio Scandurra and Max Brunsfeld created
7efa8d0
Do not set rules by default for eslint (#8545)
Follow-up to and fix for #8537. Turns out that if you set `rules: []` it doesn't mean "no matchers", but it means "no rules". So let's not set a default here. Release Notes: - N/A, see #8537 Co-authored-by: Conrad <conrad@zed.dev>
Thorsten Ball and Conrad created
d0ffd51
Optimize file finder subscriptions (#8343)
Fixes #7519 Optimizes file finder subscriptions — it now only subscribes to worktrees updates instead of all project updates. Project panel could also be optimized this way, I guess. Release Notes: - Fix selection resets in the file finder during language server startup ([7519](https://github.com/zed-industries/zed/issues/7519))
Andrew Lygin created
7aba9eb
Introduce a short-term solution for flickering (#8542)
This uses bounds checking alone to determine hover state to avoid flicker. It's a short-term solution because the rendering is incorrect. We think this is better than flickering though and buys us some time as we work on a more robust solution overall. Release Notes: - Fixed flickering when hovering. --------- Co-authored-by: Nathan <nathan@zed.dev>
Antonio Scandurra and Nathan created
517ea73
Add Coffeescript, Scala, FSharp, TCL and Nim icons and add SQL as "storage" (#8447)
I would like to add these file icons all from the source svgrepo.com and with a size of 14x14. Also I've modified file_types.json in order to add the file types and path to the image aswell as added SQL as a storage type so it's linked to an icon. Here is how these new changes would look like: <img width="240" alt="Captura de pantalla 2024-02-26 a las 19 30 33" src="https://github.com/zed-industries/zed/assets/93369643/73e50e4a-bfe8-4239-b919-280150051e36"> Release Notes: - Added icons for Coffeescript, F#, Nim, Scala, and TCL files. - Updated icon for SQL files.
Hugo Urías created
a52177f
Allow users to configure ESLint `codeActionOnSave` settings (#8537)
This fixes #8533 by allowing users to specify the settings that are
passed to ESLint on workspace initialization.
Example Zed `settings.json` to enable `fixAll` for eslint when
saving/formatting, but only for the `import/order` rule:
```json
{
"languages": {
"JavaScript": {
"code_actions_on_format": {
"source.fixAll.eslint": true
}
}
},
"lsp": {
"eslint": {
"settings": {
"codeActionOnSave": {
"rules": ["import/order"]
}
}
},
}
}
```
The possible settings are described in the README of `vscode-eslint`
here:
https://github.com/Microsoft/vscode-eslint?tab=readme-ov-file#settings-options
- `eslint.codeActionsOnSave.enable` (default: `true`, config key in Zed:
`lsp.eslint.settings.codeActionOnSave.enable`)
- `eslint.codeActionsOnSave.mode` (default: not set by Zed, config key
in Zed: `lsp.eslint.settings.codeActionOnSave.mode`)
- `eslint.codeActionsOnSave.rules` (default: `[]`, config key in Zed:
`lsp.eslint.settings.codeActionOnSave.rules`)
Yes, in the readme it's plural: `codeActionsOnSave`, but since
`eslint-vscode` we're using this old release:
https://github.com/microsoft/vscode-eslint/releases/tag/release%2F2.2.20-Insider
We use the singular version:
https://github.com/microsoft/vscode-eslint/blob/release/2.2.20-Insider/server/src/eslintServer.ts#L461
Our schema looks like this:
```json
{
"lsp": {
"eslint": {
"settings": {
"codeActionOnSave": {
"enable": true,
"rules": ["import/order"],
"mode": "all"
}
}
},
}
}
```
We should probably fix this and upgrade to the newest version of ESLint.
Release Notes:
- Added ability for users to configure settings for ESLint's
`codeActionOnSave`, e.g. specifying `rules` that should be respected
when also using `"code_actions_on_format": {"source.fixAll.eslint":
true}`. These settings can be passed to ESLint as part of the `"lsp"`
part of the Zed settings. Example: `{"lsp": {"eslint": {"settings":
{"codeActionOnSave": { "rules": ["import/order"] }}}}}`
([#8533](https://github.com/zed-industries/zed/issues/8533)).
Demo:
https://github.com/zed-industries/zed/assets/1185253/5c0cf900-9acb-4a70-b89d-49b6eeb6f0e4
Thorsten Ball created
893e55f
Downscale source file icons to 14x14 (#8521)
Update file icon size to 14 * 14 - css - bun - erlang - terraform - php - haskell Release Notes: - N/A
Dedar Alam created
f895983
Add ability to run ESLint (and other non-primary language server) code actions on format (#8496)
This PR does two things to fix
https://github.com/zed-industries/zed/issues/4325:
1. It changes the way `code_actions_on_format` works to send the
possibly configured code actions to _all_ (and not just the primary)
languages servers. That means configured code actions can now be sent to
ESLint, tailwind, ... and other language servers.
2. It enables `codeActionsOnSave` by default for ESLint. That does
**not** mean that by default we will run something on save, but only
that we enable it for ESLint.
Users can then configure their Zed to run the `eslint` code action on
format. Example, for JavaScript:
```json
{
"languages": {
"JavaScript": {
"code_actions_on_format": {
"source.fixAll.eslint": true
}
},
}
}
```
Release Notes:
- Added ability to run ESLint fixes when formatting a buffer. Code
actions configured in
[`code_actions_on_format`](https://zed.dev/docs/configuring-zed#code-actions-on-format)
are now being sent to _all_ language servers connected to a buffer, not
just the primary one. So if a user now sets `"code_actions_on_format": {
"source.fixAll.eslint": true }` in their Zed settings, the
`source.fixAll.eslint` code action will be sent to ESLint, which is not
a primary language server. Since the formatter (prettier, or external
commands, or another language server, ...) still runs, it's important
that these code actions and the formatter don't clash.
([#4325](https://github.com/zed-industries/zed/issues/4325)).
Demo:
https://github.com/zed-industries/zed/assets/1185253/9ef03ad5-1f5c-4d46-b72a-eef611e32f39
Thorsten Ball created
2e51626
Add tests on inventory task sorting
Kirill Bulatov created
ca092fb
Move `NumericPrefixWithSuffix` into utils
Kirill Bulatov created
96d9df0
Sort tasks modal entries by last used time
Kirill Bulatov created
9f7e625
Fix formatting of code in `prettier` crate (#8526)
Came across this code, saw lots of blue squiggly lines, saw a chance to simplify the code a little bit and reduce indentation. (Kinda ironic that I'm the one formatting the prettier code, right?) Release Notes: - N/A
Thorsten Ball created
a3174be
chore: Move Location type to language (#8527)
Release Notes: - N/A
Piotr Osiewicz created
2f6b290
linux: fix invalid cross-device link error (#8437)
This PR fix the "invalid cross-device link" error occurred in linux when
trying to write the settings file atomically, like when click the
"Enable vim mode" checkbox at first start.
```plain
[2024-02-26T22:59:25+08:00 ERROR util] .../zed/crates/settings/src/settings_file.rs:135: Failed to write settings to file "/home/$USER/.config/zed/settings.json"
Caused by:
0: failed to persist temporary file: Invalid cross-device link (os error 18)
1: Invalid cross-device link (os error 18)
```
Currently the `fs::RealFs::atomic_write()` method write to a temp file
created with `NamedTempFile::new()` and then call `persist()` method to
write to the config file path, which actually do a `rename` syscall
under the hood. As the
[issue](https://github.com/Stebalien/tempfile/issues/245) said
> `NamedTempFile::new()` will create a temporary file in your system's
temporary file directory. You need `NamedTempFile::new_in()`.
The temporary file directory in linux is in `/tmp`, which is mounted to
`tmpfs` filesystem, and in most case(all case I guess)
`$HOME/.config/zed` is mounted to a different filesystem. And the
`rename` syscall between different filesystems will return a `EXDEV`
errno, as described in the man page
[rename(2)](https://man7.org/linux/man-pages/man2/renameat2.2.html):
```plain
EXDEV oldpath and newpath are not on the same mounted
filesystem. (Linux permits a filesystem to be mounted at
multiple points, but rename() does not work across
different mount points, even if the same filesystem is
mounted on both.)
```
And as the issue above said, use a different temp dir with
`NamedTempFile::new_in()` for linux platform might be a solution, since
the `rename` syscall provides atomicity.
Release Notes:
- Fix `settings.json` save failed with invalid cross-device link error
in linux
Aryan Sjet created
9906b31
fix vim repeat (#8513)
Release Notes: - vim: Fixed `.` when multiple windows are open ([#7446](https://github.com/zed-industries/zed/issues/7446)). - vim: Fixed switching to normal mode after `J`, `<` or `>` in visual mode ([#4439](https://github.com/zed-industries/zed/issues/4439)) - vim: Added `ctrl-t` and `ctrl-d` for indent/outdent in insert mode. - Fixed indent/outdent/join lines appearing to work in read-only buffers ([#8423](https://github.com/zed-industries/zed/issues/8423)) - Fixed indent with an empty selection when the cursor was in column 0
Conrad Irwin created
9a7a267
vim: `f` and `t` multiline option (#8448)
I'm not sure how compliant you're aiming to be with vim, but the `f` behavior is more useful when it can search on multiple lines instead of a single one, so I'd like to propose this change. This change is quite frequent in vim/neovim as a plugin (e.g. [clever-f](https://github.com/VSCodeVim/Vim), [improved-ft](https://github.com/backdround/improved-ft.nvim), etc), and in other vim emulations (e.g. [vscode-vim](https://github.com/VSCodeVim/Vim)).
Rom Grk created
bd8896a
Add icon support for files without extensions (#8453)
Release Notes:
- Added support for showing file icons for files without suffixes.
Before:
<img width="281" alt="image"
src="https://github.com/zed-industries/zed/assets/25414681/ab4c00ed-72c7-458f-8dda-61c68165590f">
After:
<img width="242" alt="Screenshot 2024-02-27 at 1 51 20 AM"
src="https://github.com/zed-industries/zed/assets/25414681/8f3082c4-9424-4bc3-9100-a527b9adc315">
This screenshot is to show if the file has extension, then the extension
takes precedence.
<img width="193" alt="image"
src="https://github.com/zed-industries/zed/assets/25414681/72fcebd1-361f-444b-8890-f59932963083">
<br>
- Added icons for
- Docker - https://www.svgrepo.com/svg/473589/docker
- License - https://www.svgrepo.com/svg/477704/license-1
- Heroku - https://www.svgrepo.com/svg/341904/heroku
- Updated tests
Sai Gokula Krishnan created
d545fe9
Add missing wait_for_anchors (#8509)
Release Notes: - Fixed a panic when hovering in a collaboration session
Conrad Irwin created
9765260
Upgrade palette (#8506)
This fixes the compilation stck overflow here: https://ogeon.github.io/2024/02/25/palette-0.7.5.html Release Notes: - N/A
Conrad Irwin created
9ae5366
Ensure more Zed files are formatted uniformly (#8505)
Follow-up of
https://github.com/zed-industries/zed/pull/8500#issuecomment-1967522477
Now things are much better, but I still reformat the default.json
settings file:
```diff
diff --git a/assets/settings/default.json b/assets/settings/default.json
index c60c53026..67bf4505b 100644
--- a/assets/settings/default.json
+++ b/assets/settings/default.json
@@ -75,14 +75,7 @@
// Hide the values of in variables from visual display in private files
"redact_private_values": false,
// Globs to match against file paths to determine if a file is private.
- "private_files": [
- "**/.env*",
- "**/*.pem",
- "**/*.key",
- "**/*.cert",
- "**/*.crt",
- "**/secrets.yml"
- ],
+ "private_files": ["**/.env*", "**/*.pem", "**/*.key", "**/*.cert", "**/*.crt", "**/secrets.yml"],
// Whether to use additional LSP queries to format (and amend) the code after
// every "trigger" symbol input, defined by LSP server capabilities.
"use_on_type_format": true,
```
For me, Zed's doing that with the default prettier:
```
['/Users/someonetoignore/work/zed/zed/assets/settings/default.json' with options: {"printWidth":120,"tabWidth":2,"parser":"json","plugins":[],"path":"/Users/someonetoignore/work/zed/zed/assets/settings/default.json"}](stderr: Resolved config: {}, will format file '/Users/someonetoignore/work/zed/zed/assets/settings/default.json' with options: {"printWidth":120,"tabWidth":2,"parser":"json","plugins":[],"path":"/Users/someonetoignore/work/zed/zed/assets/settings/default.json"})
```
and `!/Library/Application Support/Zed/prettier/package-lock.json`
states that I have
```
"node_modules/prettier": {
"version": "3.2.5",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz",
"integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==",
"bin": {
"prettier": "bin/prettier.cjs"
},
"engines": {
"node": ">=14"
},
"funding": {
"url": "https://github.com/prettier/prettier?sponsor=1"
}
},
```
Release Notes:
- N/A
Kirill Bulatov created
e2bcb28
Use proper buffer versions when [de]serializing hint proto requests (#8502)
During inlay hint<->proto conversions, uses proper buffer versions and
never carries them across the .await points, to fix the
```
thread 'main' panicked at 'invalid anchor Anchor { timestamp: Lamport {0: 8558}, offset: 54, bias: Right, buffer_id: Some(BufferId(8)) }. buffer id: 8, version: Global {0: 8546, 1: 8378}'
/Users/administrator/actions-runner-2/_work/zed/zed/crates/text/src/text.rs:1919
<backtrace::capture::Backtrace>::create
<backtrace::capture::Backtrace>::new
Zed::init_panic_hook::{closure#0}
std::panicking::rust_panic_with_hook
std::panicking::begin_panic_handler::{{closure}}
std::sys_common::backtrace::__rust_end_short_backtrace
_rust_begin_unwind
core::panicking::panic_fmt
<text::BufferSnapshot>::summary_for_anchor::<usize>
<multi_buffer::anchor::Anchor as multi_buffer::ToOffset>::to_offset
<editor::display_map::DisplayMap>::splice_inlays
<editor::Editor>::splice_inlay_hints
editor::inlay_hint_cache::fetch_and_update_hints::{closure#0}::{closure#0}
<async_task::raw::RawTask<<async_task::runnable::Builder<_>>::spawn_local::Checked<core::pin::Pin<alloc::boxed::Box<dyn core::future::future::Future<Output = core::result::Result<(), anyhow::Error>>>>>, core::result::Result<(), anyhow::Error>, <gpui::executor::ForegroundExecutor>::spawn::inner<core::result::Result<(), anyhow::Error>>::{closure#0}, ()>>::run
<gpui::platform::mac::platform::MacPlatform as gpui::platform::Platform>::run
Zed::main
std::sys_common::backtrace::__rust_begin_short_backtrace::<fn(), ()>
std::rt::lang_start::<()>::{closure#0}
std::rt::lang_start_internal
_main
```
class of panics.
Release Notes:
- Fixed occasional panics during collaborative editing with inlay hints
on both sides
Co-authored-by: Conrad <conrad@zed.dev>
Kirill Bulatov and Conrad created
89caf06
Move note about screenshots up in the PR template (#8501)
This PR rearranges the PR template to move the line about including screenshots or media up underneath the `Added/Fixed/Improved` section. This makes it easier to delete one section or the other depending on what kind of change you're making. Release Notes: - N/A
Marshall Bowers created
f93272e
Format default `settings.json` with Prettier (#8500)
This PR formats the default `settings.json` file with Prettier. This should help avoid unnecessary modifications in other PRs making consequential changes to this file. Release Notes: - N/A
Marshall Bowers created
cb75c57
Cleanup dependencies (part 4) (#8468)
Follow-up to #8425 . Final part - adds the CI check. Release Notes: - N/A
Dzmitry Malyshau created
ac31c82
Use numeric sorting if possible in project panel (#8486)
Previously, if you had the following files/folders in your project
1-abc
10
11-def
...
2
21-abc
that's how we'd display them.
With this change, we now try to parse them as numbers, if possible, and
use that to sort. If we can't parse a component as a number, we fall
back to normal string comparison.
End result is this:
1-abc
2
10
11-def
...
21-abc
Release Notes:
- Fixed filenames with numeric components (`1.txt`, `1/one.txt`, ...)
not being sorted as numbers, but as string.
Before:

After:

---------
Co-authored-by: Marshall <marshall@zed.dev>
Thorsten Ball and Marshall created
3036c0c
Remove dead `apply_code_actions_on_save` code (#8488)
I think this was a left-over from when Conrad and I worked on this but then it was changed to work with `format`. Release Notes: - N/A
Thorsten Ball created
83bc24b
Adjust Cargo caching in CI (#8494)
This PR adjusts the way we cache Cargo dependencies in CI. We're trying out [swatinem/rust-cache](https://github.com/swatinem/rust-cache) to see if it can improve our caching strategy such that we're able to get more cache hits on PRs. We'll only write to the cache on `main` in the hopes that it will mitigate the amount of thrashing of the cache. Release Notes: - N/A
Marshall Bowers created
7acd687
Fix copying folders into themselves to create copies (#8484)
This fixes #7314 and #7778. The problem was copying a folder into itself, which is actually quite a common operation in macOS's `Finder.app`: you select a folder, hit `cmd-c` and `cmd-v` and have a copy. That's also how it works in VS Code. The fix here is to detect when we're copying a folder into itself and treating it like we're copying a file into itself: we don't want to copy into the target, we want to copy into the folder one level higher up, which will then automatically add a ` copy` to the end of the name. Release Notes: - Fixed ability to copy folders into themselves by selecting them in project panel and hitting `copy` and `paste`. Instead of endless recursion, a copy of the folder is now created. ([#7314](https://github.com/zed-industries/zed/issues/7314)). Demo: https://github.com/zed-industries/zed/assets/1185253/2141310a-991d-491d-8498-eb766275a1f5
Thorsten Ball created
7cbdea2
Revert "Add support of auto folded directories" (#8476)
Reverts zed-industries/zed#7674 @ABckh: reverting this as it introduced a significant performance slowdown, most likely caused by iterating through all the snapshot entries to determine whether a directory is foldable/unfoldable/omitted. It would be great if you could open a new PR that reverts this revert and addresses the performance issues. Thank you! /cc: @maxbrunsfeld Release notes: - N/A
Antonio Scandurra created
ddca6a3
Debounce refresh of inlay hints on buffer edits (#8282)
I think this makes it less chaotic to edit text when the inlay hints are
on.
It's for cases where you're editing to the right side of an inlay hint.
Example:
```rust
for name in names.iter().map(|item| item.len()) {
println!("{:?}", name);
}
```
We display a `usize` inlay hint right next to `name`.
But as soon as you remove that `.` in `names.iter` your cursor jumps
around because the inlay hint has been removed.
With this change we now have a 700ms debounce before we update the inlay
hints.
VS Code seems to have an even longer debounce, I think somewhere around
~1s.
Release Notes:
- Added debouncing to make it easier to edit text when inlay hints are
enabled and to save rendering of inlay hints when scrolling. Both
debounce durations can be configured with `{"inlay_hints":
{"edit_debounce_ms": 700}}` (default) and `{"inlay_hints":
{"scroll_debounce_ms": 50}}`. Set a value to `0` to turn off the
debouncing.
### Before
https://github.com/zed-industries/zed/assets/1185253/3afbe548-dcfb-45a3-ab9f-cce14c04a148
### After
https://github.com/zed-industries/zed/assets/1185253/7ea90e42-bca6-4f6c-995e-83324669ab43
---------
Co-authored-by: Kirill <kirill@zed.dev>
Thorsten Ball and Kirill created
cbdc07d
project: enable missing project_core/test-support feature when test-support is enabled (#8471)
This fixes collab's test build failure that @ConradIrwin spotted. Release Notes: - N/A
Piotr Osiewicz created
af14bc7
Fall back to stdout if log file is inaccessible (#8415)
https://github.com/zed-industries/zed/assets/31967125/644f3524-e680-457c-bf4c-a7f11f3ec8db Fixes #8209 Defaults to env logger in case of open/access failure. Release Notes: - Improved Zed behavior when no log file access is possible ([8209](https://github.com/zed-industries/zed/issues/8209)) --------- Co-authored-by: Kirill Bulatov <mail4score@gmail.com>
Dheeraj and Kirill Bulatov created