Commit log

ca9d5a2 Enable `clippy::needless_borrowed_reference` (#8746)

Click to expand commit body
This PR enables the
[`clippy::needless_borrowed_reference`](https://rust-lang.github.io/rust-clippy/master/index.html#/needless_borrowed_reference)
rule and fixes the outstanding violations.

Release Notes:

- N/A

Marshall Bowers created

bd00aed Enable `clippy::drain_collect` (#8745)

Click to expand commit body
This PR enables the
[`clippy::drain_collect`](https://rust-lang.github.io/rust-clippy/master/index.html#/drain_collect)
rule and fixes the outstanding violations.

Release Notes:

- N/A

Marshall Bowers created

4097e88 Enable `clippy::needless_arbitrary_self_type` (#8743)

Click to expand commit body
This PR enables the
[`clippy::needless_arbitrary_self_type`](https://rust-lang.github.io/rust-clippy/master/index.html#/needless_arbitrary_self_type)
rule and fixes the outstanding violations.

Release Notes:

- N/A

Marshall Bowers created

008c505 Enable `clippy::unit_arg` (#8742)

Click to expand commit body
This PR enables the
[`clippy::unit_arg`](https://rust-lang.github.io/rust-clippy/master/index.html#/unit_arg)
rule and suppresses the false positive that it flags.

Release Notes:

- N/A

Marshall Bowers created

2bfc646 Enable `clippy::filter_map_identity` (#8741)

Click to expand commit body
This PR enables the
[`clippy::filter_map_identity`](https://rust-lang.github.io/rust-clippy/master/index.html#/filter_map_identity)
rule and fixes the outstanding violations.

Release Notes:

- N/A

Marshall Bowers created

3e28791 Enable `clippy::unnecessary_find_map` (#8740)

Click to expand commit body
This PR enables the
[`clippy::unnecessary_find_map`](https://rust-lang.github.io/rust-clippy/master/index.html#/unnecessary_find_map)
rule and fixes the outstanding violations.

Release Notes:

- N/A

Marshall Bowers created

503beba Enable `clippy::manual_flatten` (#8739)

Click to expand commit body
This PR enables the
[`clippy::manual_flatten`](https://rust-lang.github.io/rust-clippy/master/index.html#/manual_flatten)
rule and fixes the outstanding violations.

Release Notes:

- N/A

Marshall Bowers created

f79f56f Enable `clippy::unnecessary_filter_map` (#8738)

Click to expand commit body
This PR enables the
[`clippy::unnecessary_filter_map`](https://rust-lang.github.io/rust-clippy/master/index.html#/unnecessary_filter_map)
rule and fixes the outstanding violations.

Release Notes:

- N/A

Marshall Bowers created

a17c207 Enable `clippy::manual_find` (#8737)

Click to expand commit body
This PR enables the
[`clippy::manual_find`](https://rust-lang.github.io/rust-clippy/master/index.html#/manual_find)
rule and fixes the outstanding violations.

Release Notes:

- N/A

Marshall Bowers created

fc8e515 Enable `clippy::too_many_arguments` (#8734)

Click to expand commit body
This PR enables the
[`clippy::too_many_arguments`](https://rust-lang.github.io/rust-clippy/master/index.html#/too_many_arguments)
rule.

I opted to add `#[allow(clippy::too_many_arguments)]` on the individual
violations, as reworking them to take fewer arguments is a more involved
task.

Release Notes:

- N/A

Marshall Bowers created

eaf2fbb Enable `clippy::map_flatten` (#8733)

Click to expand commit body
This PR enables the
[`clippy::map_flatten`](https://rust-lang.github.io/rust-clippy/master/index.html#/map_flatten)
rule and fixes the outstanding violations.

Release Notes:

- N/A

Marshall Bowers created

8bc35c3 Enable `clippy::to_string_in_format_args` (#8732)

Click to expand commit body
This PR enables the
[`clippy::to_string_in_format_args`](https://rust-lang.github.io/rust-clippy/master/index.html#/to_string_in_format_args)
rule and fixes the outstanding violations.

Release Notes:

- N/A

Marshall Bowers created

52052f3 Enable `clippy::map_identity` (#8731)

Click to expand commit body
This PR enables the
[`clippy::map_identity`](https://rust-lang.github.io/rust-clippy/master/index.html#/map_identity)
rule and fixes the outstanding violations.

Release Notes:

- N/A

Marshall Bowers created

d7962aa Add license to Gleam extension (#8730)

Click to expand commit body
This PR adds a license to the Gleam extension crate, since the bundling
script was unhappy that it didn't have one.

Since extensions like this one may ultimately live outside of Zed
itself, I went with the Apache 2.0 license.

Release Notes:

- N/A

Marshall Bowers created

9735912 Enable `clippy::clone_on_copy` (#8728)

Click to expand commit body
This PR enables the
[`clippy::clone_on_copy`](https://rust-lang.github.io/rust-clippy/master/index.html#/clone_on_copy)
rule and fixes the outstanding violations.

Release Notes:

- N/A

Marshall Bowers created

5935681 Enable `clippy::single_char_pattern` (#8727)

Click to expand commit body
This PR enables the
[`clippy::single_char_pattern`](https://rust-lang.github.io/rust-clippy/master/index.html#/single_char_pattern)
rule and fixes the outstanding violations.

Release Notes:

- N/A

Marshall Bowers created

12440d5 terminal: Make `rgb_for_index` take a `u8` instead of a `&u8` (#8726)

Click to expand commit body
This PR makes the `rgb_for_index` take a `u8` instead of a `&u8`.

`u8` is `Copy` and is only 1 byte, so there really isn't any reason to
pass a reference to it.

Release Notes:

- N/A

Marshall Bowers created

4b81b15 Enable `clippy::useless_conversion` (#8724)

Click to expand commit body
This PR enables the
[`clippy::useless_conversion`](https://rust-lang.github.io/rust-clippy/master/index.html#/useless_conversion)
rule and fixes the outstanding violations.

Release Notes:

- N/A

Marshall Bowers created

87efb75 Enable `clippy::bind_instead_of_map` (#8723)

Click to expand commit body
This PR enables the
[`clippy::bind_instead_of_map`](https://rust-lang.github.io/rust-clippy/master/index.html#/bind_instead_of_map)
rule and fixes the outstanding violations.

Release Notes:

- N/A

Marshall Bowers created

bf666af Deny all Clippy warnings (#8720)

Click to expand commit body
This PR makes Clippy deny all warnings across the workspace.

We now enumerate all of the rules that have violations and temporarily
allow them, with the goal being to drive the list down over time.

On Windows we don't yet use `--deny warnings`, as the Windows build
still has some warnings.

Release Notes:

- N/A

Marshall Bowers created

c9a509c Add `cargo xtask clippy` (#8722)

Click to expand commit body
This PR sets up a `cargo xtask clippy` command for running `cargo
clippy` with our defined set of options.

The intent is to make this easier to manage as we start enabling more
Clippy rules.

Release Notes:

- N/A

Marshall Bowers created

c19587d Fix Clippy warnings in `util` crate (#8721)

Click to expand commit body
This PR fixes a number of Clippy warnings in the `util` crate.

Release Notes:

- N/A

Marshall Bowers created

0ac203b Fix Clippy warnings in `client` crate (#8719)

Click to expand commit body
This PR fixes a number of Clippy warnings in the `client` crate.

Release Notes:

- N/A

Marshall Bowers created

5de7492 Add flex_wrap_* and content_* to GPUI (#8710)

Click to expand commit body
Now with GPUI you can auto-layout something like this:

<img width="560" alt="Screenshot 2024-03-02 at 13 56 50"
src="https://github.com/zed-industries/zed/assets/226244/8ec4b683-dd7d-41f8-8b09-4be66ecec9a0">

Tommi Pisto created

f9dc871 Fix Clippy warnings in `theme` crate (#8715)

Click to expand commit body
This PR fixes a number of Clippy warnings in the `theme` crate.

Release Notes:

- N/A

Marshall Bowers created

6fcd57a Expose more errors from rust-analyzer on invalid Cargo.toml contents (#8356)

Click to expand commit body
Release Notes:

- Fixed ([#7574](https://github.com/zed-industries/zed/issues/7574)).

Zephaniah Ong created

0903062 Fix unsafe precondition violation when building with nightly `rustc` (#8691)

Click to expand commit body
Fixes #8658

Release Notes:

- N/A

Liam Murphy created

e5e6c7f Fix Clippy warnings in `fuzzy` crate (#8701)

Click to expand commit body
This PR fixes a number of Clippy warnings in the `fuzzy` crate.

Release Notes:

- N/A

Marshall Bowers created

ca2cda8 Remove unneeded `'static` lifetimes on `&str`s in constants (#8698)

Click to expand commit body
This PR removes unneeded `'static` lifetimes on `&str`s stored in
`const` declarations.

This addresses some Clippy lints about
[`redundant_static_lifetimes`](https://rust-lang.github.io/rust-clippy/master/index.html#/redundant_static_lifetimes).

In item-level `const` declarations we can rely on lifetime elision and
use the default `'static` lifetime.

Note that associated constants still require an explicit `'static`
lifetime, as explained in
https://github.com/rust-lang/rust/issues/115010.

Release Notes:

- N/A

Marshall Bowers created

5c2bd81 Fix Clippy warnings in `settings` crate (#8700)

Click to expand commit body
This PR fixes a number of Clippy warnings in the `settings` crate.

Release Notes:

- N/A

Marshall Bowers created

26fdd14 Fix Clippy warnings in `fs` (#8696)

Click to expand commit body
This PR fixes various Clippy warnings in the `fs` crate.

Release Notes:

- N/A

Marshall Bowers created

486f0ae Remove `expect`s when constructing Clickhouse client (#8697)

Click to expand commit body
This PR removes the `expect`s when constructing the Clickhouse client
while still retaining the less-noisy behavior from before.

Release Notes:

- N/A

Marshall Bowers created

cfe90c3 Document `release_channel` crate (#8695)

Click to expand commit body
This PR documents the `release_channel` crate.

Release Notes:

- N/A

Marshall Bowers created

e3608af Use long flags in `script/clippy` for readability (#8694)

Click to expand commit body
This PR modifies the `script/clippy` script to use long flags, as these
are better for readability.

Release Notes:

- N/A

Marshall Bowers created

8c3ae8b Upgrade `bitflags` to v2.4.2 (#8693)

Click to expand commit body
This PR upgrades our [`bitflags`](https://crates.io/crates/bitflags)
dependency to v2.4.2.

This also fixes an error that was seen when running `clippy`:

```
error: &-masking with zero
  --> crates/fsevent/src/fsevent.rs:19:1
   |
19 | / bitflags! {
20 | |   #[repr(C)]
21 | |   pub struct StreamFlags: u32 {
22 | |     const NONE = 0x00000000;
...  |
46 | |   }
47 | | }
   | |_^
   |
   = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bad_bit_mask
   = note: `#[deny(clippy::bad_bit_mask)]` on by default
   = note: this error originates in the macro `__impl_bitflags` which comes from the expansion of the macro `bitflags` (in Nightly builds, run with -Z macro-backtrace for more info)
```

Fixes #8681.

Release Notes:

- N/A

Marshall Bowers created

b2cc617 Allow overriding player colors via `experimental.theme_overrides` (#8692)

Click to expand commit body
This PR extends the `experimental.theme_overrides` to allow overriding
the player colors.

Release Notes:

- Added the ability to override player colors using
`experimenta.theme_overrides`.

Marshall Bowers created

a84a3c0 docs: Fix "it's" typos that should be "its" (#8690)

Click to expand commit body
These all meant to use the possessive "its" rather than the contraction
of "it is".

Brian Donovan created

03f1805 Add Void Linux support to `script/linux` (#8664)

Click to expand commit body
add support for the xbps package manager in the system library setup
script

aryal created

26103e8 Clean up and refactor X11 refresh loop (alternative) (#8655)

Click to expand commit body
Associates every window with its own refresh event. Removes the use of
X11 present.
Alternative to #8592.
Instead of doing the rendering on idle and then involving a hack for
polling X11 events, this PR just tries to do the rendering inside the
main loop. This guarantees that we continue to poll for events after the
draw, and not get screwed by the driver talking to X11 via the same file
descriptor.

Release Notes:
- N/A

Dzmitry Malyshau created

b7784d4 When clicking the checkbox, toggle open the LSP trace logs (#8689)

Click to expand commit body
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

268fa1c Add initial support for defining language server adapters in WebAssembly-based extensions (#8645)

Click to expand commit body
This PR adds **internal** ability to run arbitrary language servers via
WebAssembly extensions. The functionality isn't exposed yet - we're just
landing this in this early state because there have been a lot of
changes to the `LspAdapter` trait, and other language server logic.

## Next steps

* Currently, wasm extensions can only define how to *install* and run a
language server, they can't yet implement the other LSP adapter methods,
such as formatting completion labels and workspace symbols.
* We don't have an automatic way to install or develop these types of
extensions
* We don't have a way to package these types of extensions in our
extensions repo, to make them available via our extensions API.
* The Rust extension API crate, `zed-extension-api` has not yet been
published to crates.io, because we still consider the API a work in
progress.

Release Notes:

- N/A

---------

Co-authored-by: Marshall <marshall@zed.dev>
Co-authored-by: Nathan <nathan@zed.dev>
Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>

Max Brunsfeld , Marshall , Nathan , and Marshall Bowers created

f3f2225 Improve Ruby Grammar for superclasses (#8544)

Click to expand commit body
Release Notes:

- Improved Ruby grammar to allow targeting of super classes including
namespaces classes

Ben Hamment created

242f032 Fix documentation for use_system_clipboard (#8635)

Click to expand commit body
Release Notes:

- Fixed documentation for vim.use_system_clipboard

Tim Havlicek created

5523a51 Allow reconnect before disconnect (#8684)

Click to expand commit body
Co-Authored-By: Max <max@zed.dev>



Release Notes:

- Improved handling of reconnections during calls

---------

Co-authored-by: Max <max@zed.dev>

Conrad Irwin and Max created

3efb871 Add a way to change what `menu::Confirm` does in the recent projects modal (#8688)

Click to expand commit body
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

37f7957 Setting to show/hide terminal title (#8559)

Click to expand commit body
This PR adds settings for hiding title (breadcrumbs) from the terminal
toolbar. If the title is hidden, the toolbar disappears completely.

Example:

```json
"terminal": {
  "toolbar": {
    "title": true,
  }
}
```

[The PR that added the "toolbar"
setting](https://github.com/zed-industries/zed/pull/7338) didn't affect
toolbars of the terminals that are placed in the editor pane. This PR
fixes that.


Release Notes:

- Added support for configuring the terminal toolbar ([8125](https://github.com/zed-industries/zed/issues/8125))

Andrew Lygin created

400fb12 Make collab quieter on startup (#8685)

Click to expand commit body
Fix initialization of minio to happen on service start instead of
bootstrap,
don't log errors if extensions are empty or if clickhouse is disabled

Release Notes:

- N/A

Conrad Irwin created

64460e4 Upload crashes to collab directly (#8649)

Click to expand commit body
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

cdf702a Prompt to save files on recent project selection (#8673)

Kirill Bulatov created

91d1146 Replace `lazy_static!` with `OnceLock` in `collab` crate (#8677)

Click to expand commit body
This PR replaces a `lazy_static!` usage in the `collab` crate with
`OnceLock` from the standard library.

This allows us to drop the `lazy_static` dependency from this crate.

Release Notes:

- N/A

Marshall Bowers created