Commit log

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

9723ca9 Vim mode: make `motion::EndOfLine` works with times. (#8591)

Click to expand commit body
Release Notes:

- Fixed `$` in Vim mode not taking a numeric argument (i.e. `2$` or
`4$`) ([#8007](https://github.com/zed-industries/zed/issues/8007)).

---------

Co-authored-by: Thorsten Ball <mrnugget@gmail.com>

Wind and Thorsten Ball created

aeed9d0 Scroll project search results to the top (#8329)

Click to expand commit body
Scroll project search results to the top after every new search.

Release Notes:

- Fixed autoscrolling of the project search results ([8237](https://github.com/zed-industries/zed/issues/8237))

Andrew Lygin created

d6492d0 Implement workspace_configuration for Dart LSP (#8568)

Click to expand commit body
This PR addressed https://github.com/zed-industries/zed/issues/8558 and
allows the [Dart Client Workspace
Configuration](https://github.com/dart-lang/sdk/blob/main/pkg/analysis_server/tool/lsp_spec/README.md#client-workspace-configuration).

Differing from the issue, the settings are used from the LSP settings
section, example:

```
{
 "lsp": {
    "dart": {
      "settings": {
        "lineLength": 200
      }
    }
  }
}
```

Note: this only works for the global settings (not folder specific)


Release Notes:

- Fixed missing client workspace configuration of Dart LSP. Those can
now be configured by setting `{"lsp": {"dart": { "settings: {
"your-settings-here": "here"} } }` in the Zed settings.
([#8858](https://github.com/zed-industries/zed/issues/8558)).

Flo created

34de33e Editor: Add shortcut to toggle line numbers (#8642)

Click to expand commit body
Following #7665, I've added a keymap to quickly hide and show gutter
line numbers.

`ctrl-l` and `cmd-l` were taken, so I've bound it to `cmd-;`. 



https://github.com/zed-industries/zed/assets/138762/365d2a7c-b775-4486-8389-edafe59b2a87

Release notes:

- Added `editor: toggle line numbers` command and default keybindings
(`cmd-;` on macOS).

---------

Co-authored-by: Thorsten Ball <mrnugget@gmail.com>

Spence and Thorsten Ball created

7f5aa1f Replace `lazy_static!` with `OnceLock` in `time_format` crate (#8648)

Click to expand commit body
This PR replaces a `lazy_static!` usage in the `time_format` 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

0d0ce95 Replace `lazy_static!` with `OnceLock` in `ai` crate (#8647)

Click to expand commit body
This PR replaces a `lazy_static!` usage in the `ai` 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

eb1ab69 Wire up Azure OpenAI completion provider (#8646)

Click to expand commit body
This PR wires up support for [Azure
OpenAI](https://learn.microsoft.com/en-us/azure/ai-services/openai/overview)
as an alternative AI provider in the assistant panel.

This can be configured using the following in the settings file:

```json
{
  "assistant": {
    "provider": {
      "type": "azure_openai",
      "api_url": "https://{your-resource-name}.openai.azure.com",
      "deployment_id": "gpt-4",
      "api_version": "2023-05-15"
    }
  },
}
```

You will need to deploy a model within Azure and update the settings
accordingly.

Release Notes:

- N/A

Marshall Bowers created

7c1ef96 Zig outline view (#8122)

Click to expand commit body
Release Notes:

- Added Zig outline view, related #7357 
- 
<img width="762" alt="image"
src="https://github.com/zed-industries/zed/assets/13052752/a879cd98-d5e0-446e-aaed-504528b99552">

Nikita Orlov created

4cc4f08 Remove ! from todo!() in comments (#8643)

Click to expand commit body
This practice makes it difficult to locate todo!s in my code when I'm
working. Let's take out the bang if we want to keep doing this.

Release Notes:

- N/A

Nathan Sobo created

dab886f Stub out support for Azure OpenAI (#8624)

Click to expand commit body
This PR stubs out support for [Azure
OpenAI](https://learn.microsoft.com/en-us/azure/ai-services/openai/overview)
within the `OpenAiCompletionProvider`.

It still requires some additional wiring so that it is accessible, but
the necessary hooks should be in place now.

Release Notes:

- N/A

Marshall Bowers created

cbcd011 Improve matches on command palette (#8515)

Click to expand commit body
Release Notes:

- Fixed consecutive spaces in command palette influencing selection.
#8184

Optionally, include screenshots / media showcasing your addition that
can be included in the release notes.



https://github.com/zed-industries/zed/assets/25414681/a4682247-f52c-4ab9-a32a-51ab5cf3dbcc

Sai Gokula Krishnan created

b3b94e6 Ensure panel and pane sizes are integral (#8619)

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

Conrad Irwin and Antonio created

db9cc42 Support Sourcehut & Codeberg in permalinks (#8616)

Click to expand commit body
Updates #5110 

Release Notes:

- Added support for repositories hosted on `git.sr.ht` (Sourcehut) and
`codeberg.org` to the `editor: copy permalink to line` and `editor: open
permalink to line` actions
([#5110](https://github.com/zed-industries/zed/issues/5110)).

---------

Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>

Rajesh Malviya and Marshall Bowers created

faa6f97 Restore signature of `build_permalink` (#8609)

Click to expand commit body
This PR restores the original signature of `build_permalink`, which
intentionally uses a params struct to avoid mixing up the various `&str`
params that could otherwise be accidentally provided in the wrong order
without being caught by the compiler.

Release Notes:

- N/A

Marshall Bowers created

dc7befb Bind ctrl-w to DeleteToPreviousWordStart (#8606)

Click to expand commit body
Even though I use Vim mode, I'd love to have this in the command
palette/fuzzy finder. It's an Emacs keybinding, but also supported by
macOS nearly everywhere.

Release Notes:

- N/A

Thorsten Ball created

5196552 Support Bitbucket.org in permalinks (#8601)

Click to expand commit body
This adds support for Bitbucket.org/Bitbucket Cloud repositories to the
`editor: copy permalink to line` and `editor: open permalink to line`
actions.

Fixes #5110.



Release Notes:

- Added support for repositories hosted on Bitbucket.org (Bitbucket
Cloud) to the `editor: copy permalink to line` and `editor: open
permalink to line` actions.
([#5110](https://github.com/zed-industries/zed/issues/5110)).

Thorsten Ball created

47bcb30 Use `Pointer` cursor style on Recent Projects, VCS Menu. (#8595)

Click to expand commit body
Release Notes:

- Improved to use `Pointer` style cursor on VCS and Recent Projects
menu.



https://github.com/zed-industries/zed/assets/5518/4f638c6a-00b8-4fa8-b469-4d3109827bc2

Jason Lee created

953bc5e Fix post-merge issue from the old branch PR (#8590)

Click to expand commit body
Follow-up of https://github.com/zed-industries/zed/pull/6924/files that
had old code in CI that worked, but fresh `main` had different code that
needed small changes.


Release Notes:

- N/A

Kirill Bulatov created

c94852b Go to reference when there's only one (#6924)

Click to expand commit body
Fixes #4796

- Improved Go To Definition usability when there's a single reference ([4796](https://github.com/zed-industries/zed/issues/4796))

---------

Co-authored-by: Kirill Bulatov <kirill@zed.com>

Yangze Luo and Kirill Bulatov created

81886a9 Fix default Vim keybinds for GoTo(Type)DefinitionSplit (#8587)

Click to expand commit body
Follow-up to #8574

Release Notes:

- N/A

Thorsten Ball created

225dd0f Improve extensions UI detail (#8578)

Click to expand commit body
Release Notes:

- Improved "Extensions" UI details to tidy layout, add border, add
placeholder to search input.


## Before


![SCR-20240229-fbk](https://github.com/zed-industries/zed/assets/5518/a62608e2-8f79-48fe-9e1c-87d6eb59ddc9)

## After


![SCR-20240229-fhz](https://github.com/zed-industries/zed/assets/5518/d5c97711-ff93-4944-8e23-39b60dda88fc)

![SCR-20240229-fg9](https://github.com/zed-industries/zed/assets/5518/a24ad839-3b69-4ca7-813f-00375a81a008)

![SCR-20240229-fbb](https://github.com/zed-industries/zed/assets/5518/ff45d6c3-93a3-431c-81f5-edc9e7aa68d6)

---------

Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>

Jason Lee and Marshall Bowers created

778b6fb Add OpenExcerptsSplit (#8574)

Click to expand commit body
I would like to keep diagnostics open on one side, and process them on
the other.


Release Notes:

- Added `editor::OpenExcerptsSplit` (bound to `cmd-k enter`) to open the
selected excerpts in the adjacent pane
- vim: Added `ctrl-w d`, `ctrl-w shift-d` and `ctrl-w space` for
`editor::GoTo{,Type}Definition` and `editor::OpenExcerptsSplit`

Conrad Irwin created

b7429bf Added `menu::UseSelectedQuery` command that populates task modal query with the selected task name (#8572)

Kirill Bulatov created

9bd5ebb Revert "Introduce a new `ToggleGraphicsProfiler` command (#7607)" (#8567)

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

Conrad Irwin created

ac30ded Allow .zed/tasks.json local configs (#8536)

Click to expand commit body
![image](https://github.com/zed-industries/zed/assets/2690773/e1511777-b4ca-469e-8636-1e513b615368)

Follow-up of
https://github.com/zed-industries/zed/issues/7108#issuecomment-1960746397

Makes more clear where each task came from, auto (re)load
.zed/config.json changes, properly filtering out other worktree tasks.

Release Notes:

- Added local task configurations

Kirill Bulatov created

7f954cb linux: improve key translation (#8560)

Click to expand commit body
This PR brings linux XKB key translation more in line with the macOS
logic, which fixes quite a few key bindings.

Rom Grk created

c07237d Add other vkcube command to Linux docs (#8543)

Click to expand commit body
Add other vkcube command to Linux docs

Release Notes: 

- N/A

Rajas Paranjpe created

387c161 Add libssl-dev for apt dependencies (#8512)

Click to expand commit body
While building on Ubuntu (arm64). I had to manually install
`libssl-dev`.
Just added that in `script/linux`.

hamza72x created

b76e0d9 Linux: Rewrite the event loop using calloop (#8314)

Click to expand commit body
This PR unifies the event loop code for Wayland and X11. On Wayland,
blocking dispatch is now used. On X11, the invisible window is no longer
needed.

Release Notes:

- N/A

---------

Co-authored-by: Dzmitry Malyshau <kvark@fastmail.com>
Co-authored-by: Tadeo Kondrak <me@tadeo.ca>
Co-authored-by: Mikayla Maki <mikayla@zed.dev>
Co-authored-by: julia <julia@zed.dev>

Roman , Dzmitry Malyshau , Tadeo Kondrak , Mikayla Maki , and julia created

198dfe0 Maybe make cherry-pick-bot better

Conrad Irwin created

16eb17e Enable cherry-pick-bot (#8561)

Click to expand commit body
You will now be able to say `/cherry-pick v0.123.x` to cherry-pick to a
different branch.

Release Notes:

- N/A

Conrad Irwin created