44ac6ca
ci: fix-up upload path in upload-nightly for aarch64 (#9409)
Click to expand commit body
mea culpa Release Notes: - N/A
Piotr Osiewicz created
44ac6ca
ci: fix-up upload path in upload-nightly for aarch64 (#9409)
mea culpa Release Notes: - N/A
Piotr Osiewicz created
487ae73
Fix sharp corners on images (#9408)
Release Notes: - N/A
Mikayla Maki created
b38e3f1
gpui: img element object-fit (#9393)
Release Notes: - Added [object-fit API](https://developer.mozilla.org/en-US/docs/Web/CSS/object-fit) to the `img` element. This allows the user to decide how the image is scaled within the element bounds. - Fixes corner radius not working as expected on overflowing elements.
Matthias Grandl created
55f4c8e
Encapsulate `CommandPaletteFilter` and `CommandPaletteInterceptor` (#9402)
This PR refactors the `CommandPaletteFilter` and `CommandPaletteInterceptor` to better encapsulate their internals. Previously these globals and their fields were publicly accessible, which meant that there was a lot of reaching in and making modifications. These changes should make it easier to add additional consumers of these hooks (right now they're primarily used by Vim mode). Release Notes: - N/A
Marshall Bowers created
d311a4b
[WIP] chore: Distribute non-universal binaries on Mac (#9284)
Related: #6837, #8671 Release Notes: - Zed now ships as a non-universal binary, reducing binary size by ~50%.
Piotr Osiewicz created
dcdd1ec
Small improvements of the task terminal spawn behavior (#9399)
* Add a `reveal: always|never` field in task definitions from tasks.json , allowing to customize task terminal behavior on spawn * Ensure reveal: always reveals the terminal even if the old task is already running Release Notes: - Added a `reveal: always|never` (`always` is a default) field in task definitions from tasks.json , allowing to customize task terminal behavior on spawn --------- Co-authored-by: Piotr Osiewicz <piotr@zed.dev>
Kirill Bulatov and Piotr Osiewicz created
276139f
Implement updating for node-based language servers (#9361)
Fixes: https://github.com/zed-industries/zed/issues/9234 This doesn't address `vue` as it has a slightly different install code, but it should be fairly simple to add - I'll add it in in a follow-up. This PR will allow all (except `vue`) node-based language servers to update. It is mostly just throwing in a method into the `NodeRuntime` trait that is used for checking if a package doesn't exist locally, or is out of date, by checking the version against what's newest, and installing. If any parsing of the `package.json` data fails along the way, it assumes something has gone awry on the users system, logs the error, and then proceeds with trying to install the package, so that users don't get stuck on version if their package has some bad data. Outside of adding this method, it just adds that check in all of the language server's individual `fetch_server_binary` methods. Release Notes: - Added updating for node-based language servers ([#9234](https://github.com/zed-industries/zed/issues/9234)).
Joseph T. Lyons created
cb16003
Fill context menu of Zed macOS dock icon with recent projects (#8952)
Fixes https://github.com/zed-industries/zed/issues/8416 Release Notes: - Added recent projects into Zed's macOS dock icon context menu ([8416](https://github.com/zed-industries/zed/issues/8416)) --------- Co-authored-by: Kirill Bulatov <kirill@zed.dev>
Daniel Zhu and Kirill Bulatov created
5bf0c8e
Revert "windows: better looking titlebar" and follow-up (#9392)
This reverts #9053 and #9375 because they introduced a regression on `main` that broke the titlebars on macOS:  Two things are off: - Left padding is missing - Titlebar height is less than it was before, which means the traffic-light buttons are not centered vertically What @as-cii and I noticed while looking into this: the `cfg!(macos)` macros that were used don't work like that. You need to check for `cfg!(target = "macos")` etc. Means that on macOS we never used the macOS-specific code because the condition was always false. Overall height, we're not sure about. Release Notes: - N/A
Thorsten Ball created
5ae1451
Fix flickering when interacting with the language server logs (#9390)
Fixes https://github.com/zed-industries/zed/issues/9340 The flickering was caused by the pane trying to restore focus on a `FocusHandle` that wasn't being rendered anymore. This commit uses the new `WeakFocusHandle` to avoid retaining a reference to focus handles that don't exist anymore. Release Notes: - Fixed a bug that caused flickering when interacting with the language server logs ([#9340](https://github.com/zed-industries/zed/issues/9340)).
Antonio Scandurra created
b9f7a37
Add option to collapse all folders in root (#9372)
Release Notes: - Added option to root project folder to collapse all subfolders
Jack T created
badcd3f
Remove `Copy` trait for enum Operator (#9378)
In this commit, the Copy trait has been removed from Operator. This change was necessary due to the value of operator may wish to attach a motion type, which is not compatible with the Copy trait. All instances where Operator was previously copied have been updated to use the clone() or cloned() method instead. This includes function parameters, variable assignments, and closures.
Hans created
ee26091
Improve TS and JSON syntax highlighting (#9302)
Successor to #7767. Release Notes: - Improved syntax highlighting for TS/TSX and JSON.
Robin Pfäffle created
27bcb7f
Fix#9253 Duplicate menu item for "Emojis & Symbols" (#9377)
Fix #9253
Hans created
de1db8b
Rework/redesign message replies (#9049)
Hello! This PR proposes a redesigned replying system in Zeds chat panel, inspired by chat applications like [Slack](https://slack.com) and [Discord](https://discord.com). Feedback and suggestions are welcome! 😄 ### TODOs - [x] Handle replies to removed messages - [x] Add replied user's profile picture to reply indicator - [x] Highlight the message that's been selected for replying -------- ### Current Status https://github.com/zed-industries/zed/assets/146845123/4ed2c2d7-a586-48bd-973c-0d3f033e2c6b -------- Release Notes: - Redesigned message replies in the chat panel --------- Co-authored-by: Thorsten Ball <mrnugget@gmail.com>
Evren Sen and Thorsten Ball created
71aaefc
Add `multi_cursor_modifier` setting (#9014)
this PR allows users to use `cmd` instead of `alt` as the `multi_cursor_modifier` for creating multiple cursors/selections closes #4339 --------- Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Max and Conrad Irwin created
e836a97
vim: Add Multi Replace mode in Vim (#8469)
For #4440, I've only added support for normal, if it's visual mode, would we like this to delete the current selection row and enter insert mode? --------- Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Hans and Conrad Irwin created
72d36d0
Foundations for Open All the Things (#9353)
This is the beginning of setting up a flexible way to open items beyond the text buffer -- think notebooks, images, GeoJSON, etc. The primary requirement to allow opening an arbitrary file is `try_open` on the `project::Item` trait. Now we can make new `Item`s for other types with their own ways to render. Under the hood, `register_project_item` uses this new opening scheme. It supports a dynamic array of opener functions, that will handle specific item types. By default, a `Buffer` should be able to be able to open any file that another opener did not. A key detail here is that the order of registration matters. The last item has primacy. Here's an example: ```rust workspace::register_project_item::<Editor>(cx); workspace::register_project_item::<Notebook>(cx); workspace::register_project_item::<ImageViewer>(cx); ``` When a project item (file) is attempted to be opened, it's first tried with the `ImageViewer`, followed by the `Notebook`, then the `Editor`. The tests are set up in a way that should make it _hopefully_ easy to learn how to write a new opener. First to go after should probably be image files. Release Notes: N/A --------- Co-authored-by: Antonio Scandurra <me@as-cii.com> Co-authored-by: Mikayla Maki <mikayla@zed.dev>
Kyle Kelley , Antonio Scandurra , and Mikayla Maki created
f9b9123
chore: cleanup more windows use (#9376)
Ezekiel Warren created
ff8a4a8
Add outlines for CSS (#8706)
Add outlines for .css files
⚠️I also added `workspace = { workspace = true, features =
["test-support"] }` to dev deps of 'languages' crate to make unit tests
work.

Ivan Buryak created
8c43e10
whoops (#9375)
Release Notes: - N/A
Mikayla Maki created
948b382
windows: better looking titlebar (#9053)
~~work in progress. not ready for review. made for visibility only, but feel free to comment :)~~ TODO: - [x] add close/min/max buttons (to be rendered with gpui) - [x] snap layout support - [x] fix issues with clicking items in titlebar - [x] cleanup/document Release Notes: - Added custom windows titlebar  --------- Co-authored-by: Mikayla <mikayla@zed.dev>
Ezekiel Warren and Mikayla created
6bbc5e2
windows: cleanup window crate uses (#9374)
Ezekiel Warren created
a92dccc
Enable `clippy::non_canonical_clone_impl` (#9373)
This PR enables the [`clippy::non_canonical_clone_impl`](https://rust-lang.github.io/rust-clippy/master/index.html#/non_canonical_clone_impl) rule and fixes the outstanding violations. Release Notes: - N/A
Marshall Bowers created
845eb64
Windows: IME support (#9188)
Waiting for #9180 to be merged. The behavior of IME windows is consistent with VS Code. https://github.com/zed-industries/zed/assets/14981363/14913219-7345-4fec-9cc5-623d0c60acc9 Release Notes: - N/A
张小白 created
c2d27c4
Use Windows native API to impl dispatcher (#9280)
Using `Threadpool` and `TimerQueue` which are provided by the native Windows APIs, to implement the corresponding interfaces, we do not need to sort tasks ourselves as Windows will handle it in a relatively more efficient manner, I guess. I am unsure if Zed would welcome this PR, and suggestions are welcome. Release Notes: - N/A
张小白 created
4939d23
Enable `clippy::derive_ord_xor_partial_ord` (#9371)
This PR enables the [`clippy::derive_ord_xor_partial_ord`](https://rust-lang.github.io/rust-clippy/master/index.html#/derive_ord_xor_partial_ord) rule and fixes the outstanding violations. Release Notes: - N/A
Marshall Bowers created
35c9216
Fix window restoration bugs (#9358)
- [x] fixes https://github.com/zed-industries/zed/issues/9349 - [x] fixes https://github.com/zed-industries/zed/issues/4656 - [x] fixes https://github.com/zed-industries/zed/issues/8345 Release Notes: - TODO
Mikayla Maki created
14cdafb
Enable `clippy::eq_op` (#9369)
This PR enables the [`clippy::eq_op`](https://rust-lang.github.io/rust-clippy/master/index.html#/eq_op) rule and fixes the outstanding violations. Enabling this rule seems to have caught two bugs! Release Notes: - N/A
Marshall Bowers created
404adbc
Encode rem values derived from pixels using `rems_from_px` (#9367)
This PR adds a new `rems_from_px` helper function that can be used to compute rem values based on a pixel value. This is something we do fairly commonly, where we want to express a size that is a given pixel size at the base rem size (e.g., "14px when the rem size is 16px"). `rems_from_px` helps make the intent more explicit, as well as prevent the base rem size from being duplicated everywhere. Note: Ideally we would want `rems_from_px` to be `const`, but that depends on https://github.com/rust-lang/rust/issues/57241. Release Notes: - N/A
Marshall Bowers created
a78576a
Allow `clippy::single_range_in_vec_init` as a permanent rule (#9366)
This PR promotes the allowance of the [`clippy::single_range_in_vec_init`](https://rust-lang.github.io/rust-clippy/master/index.html#/single_range_in_vec_init) rule to a permanent one. This rule complains about a pretty common pattern we use that doesn't seem to have any adverse effects, so we're going to continue allowing this rule. Release Notes: - N/A
Marshall Bowers created
7f3f296
Enable `clippy::await_holding_lock` (#9362)
This PR enables the [`clippy::await_holding_lock`](https://rust-lang.github.io/rust-clippy/master/index.html#/await_holding_lock) rule and fixes the outstanding violations. Release Notes: - N/A
Marshall Bowers created
b0ce25b
Log numbers as numbers (#9363)
Release Notes: - N/A
Conrad Irwin created
61225ec
Enable `clippy::never_loop` (#9006)
Three changes: two of which are changing `while let` construct to `if let` as they unconditionally broke and one of which was removing a loop in the `start_default_prettier` as it unconditionally broke in the control flow for match installation task: the diff for this is larger than needed as removing the loop changed a lot of indentation for `rustfmt`.
Kirpal Grewal created
df27e78
Update Homebrew installation instructions (#9356)
This PR updates the README to include Homebrew installation instructions for the preview version and adds a link to the Homebrew homepage. Release Notes: - N/A --------- Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
Klaus Hipp and Marshall Bowers created
60044a5
Fix panic by preventing opening local files in a remote project (#9304)
Release Notes: - Fixed a panic caused by allowing the CLI to re-use workspaces Co-authored-by: Marshall <marshall@zed.dev>
Conrad Irwin and Marshall created
cbf960e
Windows: make `fs` to use workspace `windows` crate (#9350)
Release Notes: - N/A
张小白 created
a183c33
Prevent long extension descriptions from overflowing (#9348)
This PR fixes an issue where long extension descriptions could take up more room than intended, pushing the GitHub repository icon off the screen. <img width="901" alt="Screenshot 2024-03-14 at 12 54 14 PM" src="https://github.com/zed-industries/zed/assets/1486634/befce468-f8df-4183-b3cc-9d088dd53b4e"> Fixes #9331. Release Notes: - Fixed an issue where long extension descriptions could push the GitHub repository icon off the screen ([#9331](https://github.com/zed-industries/zed/issues/9331)).
Marshall Bowers created
3610b07
Restore `--all-targets` for clippy (#9346)
This PR restores the `--all-targets` flag when running `cargo clippy`. Without it, there are areas that Clippy does not check, as evidenced by the violations that were caught once the flag was re-added. Release Notes: - N/A
Marshall Bowers created
5f02ef7
fs: Remove unused import (#9344)
Followup to #9341 as I've noticed a CI failure on bundling step of my other PR (https://github.com/zed-industries/zed/actions/runs/8283419386/job/22666698264) Release Notes: - N/A
Piotr Osiewicz created
fab5548
Fix project search filtering on projects with multiple worktrees (#9337)
Fixes #9285 Release Notes: - Fixed a bug that broke search filtering when searching a project with multiple worktrees ([#9285](https://github.com/zed-industries/zed/issues/9285)). --------- Co-authored-by: Thorsten <thorsten@zed.dev>
Antonio Scandurra and Thorsten created
7629c16
Always read files to string on a background thread (#9341)
We noticed that when you open a lot of files (i.e. project-wide search with multi-buffer) that the main thread can become unresponsive, because while we are async, we still load these files on the main thread. What this change does is it uses `smol::unblock` to load files on a different thread. Release Notes: - Improved responsiveness when loading files into memory. Co-authored-by: Antonio <antonio@zed.dev> Co-authored-by: Kirill <kirill@zed.dev>
Thorsten Ball , Antonio , and Kirill created
c015baa
Do not start searching if query is empty (#9333)
This avoids the problem of a search being kicked off involuntarily and potentially using a large amount of CPU when toggling on the `Search Ignored Files` option. What would happen is that someone would turn the option on, we'd kick off a search, and go through all of the files in, say, `node_modules`. Even if no query was given. This avoids that. Release Notes: - Fixed an empty search being kicked off involuntarily if no query was typed in yet but an option was toggled.
Thorsten Ball created
f142568
Allow navigating back to multibuffers (#9334)
Fixes https://github.com/orgs/zed-industries/projects/14/views/1?pane=issue&itemId=56263346 Fixes a state where Zed multi buffers were not reachable after going to an excerpt inside it (with alt-enter). I suspect, we will have to come back to multi buffer history and check the way it behaves on inner excerpts clicking, but now this change seems to restore the main thing: multi buffers not being shown in the history at all. Release Notes: - Fixes "go backwards" not considering multibuffers in history
Kirill Bulatov created
b795b0e
editor: Do not autoindent on line removals in vim mode. (#9332)
Fixes #8942 Release Notes: - Fixed overeager auto-indentation on line removals in Vim mode.
Piotr Osiewicz created
51261c5
Fix double-clicking titlebar to zoom (#9323)
Fixes https://github.com/zed-industries/zed/issues/9300 This was a regression caused by not inserting a hitbox when a div only had click listeners on it. Release Notes: - Fixed a regression that disabled double-clicking on the titlebar to zoom the window. ([#9300](https://github.com/zed-industries/zed/issues/9300)) (preview-only)
Antonio Scandurra created
bffde43
Improve vim undo (#9317)
The important change here is to ensure that undo never lands you in visual mode; but we also take care to restore the selection the same way vim does (visual line goes to beginning of line, visual block to the top left, etc.). To help make this behaviour feel right we also group any deletions that started insert mode with the first text inserted. Fixes: #7521 Release Notes: - vim: Improved undo. It will now restore you to normal mode in the same position as vim, and group deletions caused by `c` or `s` with the concomitant insert. ([#7521](https://github.com/zed-industries/zed/issues/7521)).
Conrad Irwin created
6ae5274
Scrollbar markers enhancements (#9080)
Several improvements in how various markers are displayed in the editor scrollbar, as described in #9070, if you're ok with the proposal: - Scrollbar has three columns: - 1st is for git markers - 2nd is for selections and search resulta highlightings - 3rd is for diagnostics - Height of all markers is scaled, but there's a minimal allowed height of 2px. - Right border removed from both the scrollbar and thumb to make more room for markers. Release Notes: - Improved scrollbar markers visualization (#9070).
Andrew Lygin created
b65aa7e
Fix accidental leak of text stack between frames (#9297)
Co-Authored-By: Max <max@zed.dev> Co-Authored-By: Marshall <marshall@zed.dev> Release Notes: - Fixed a bug where text styles could leak between frames (preview only) Co-authored-by: Max <max@zed.dev> Co-authored-by: Marshall <marshall@zed.dev>
Conrad Irwin , Max , and Marshall created
3274cc9
Windows: impl `WindowsDisplay` (#9287)
Tested on my laptop, and I've noticed that when I move the window, `WindowsPlatform::displays()` is being continuously called. Is this intended? Release Notes: - N/A
张小白 created