Commit log

54e29d8 zed 0.124.6

Marshall Bowers created

3940593 Use `SystemClock` in `EventCoalescer` (#8317)

Click to expand commit body
This PR updates the `EventCoalescer` to use the `SystemClock` trait to
abstract over the clock.

This allows us to test the advancement of time without relying on the
caller passing in the current time.

Release Notes:

- N/A

Marshall Bowers created

df42d5b Expose extensions API from api.zed.dev (#8307)

Click to expand commit body
This avoids the need to pay for bandwidth

Co-Authored-By: Marshall <marshall@zed.dev>



Release Notes:

- N/A

Co-authored-by: Marshall <marshall@zed.dev>

Conrad Irwin and Marshall created

5844fcc Log HTTP path in http logs (#8305)

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


Release Notes:

- N/A

Co-authored-by: Marshall <marshall@zed.dev>

Conrad Irwin and Marshall created

cd01276 collab: Log HTTP requests (#8297)

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



Release Notes:

- N/A

---------

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

Conrad Irwin , Marshall , and Marshall Bowers created

e62717e oops

Conrad Irwin created

e2c459a Only spawn the extensions reconciliation task in the collab service (#8301)

Click to expand commit body
This PR makes it so the background task that reconciles the extensions
database with the blob store only runs on the `collab` service.

This avoids us having multiple of these jobs running at once.

Release Notes:

- N/A

Marshall Bowers created

b9cc649 Fix collab (#8298)

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

We broke it by deploying two servers simultaneously.

Release Notes:

- N/A

Co-authored-by: Marshall <marshall@zed.dev>

Conrad Irwin and Marshall created

cbc7645 Fix error logging (#8295)

Click to expand commit body
and some more clickhouse type mismatches,

Co-Authored-By: Marshall <marshall@zed.dev>

Release Notes:

- N/A

Co-authored-by: Marshall <marshall@zed.dev>

Conrad Irwin and Marshall created

50ff0d7 Deploy the ZED_CLIENT_CHECKSUM_SEED too (#8289)

Click to expand commit body
Release Notes:

- N/A

Conrad Irwin created

012aa33 Adjust Kubernetes manifests for deploying API service (#8281)

Click to expand commit body
This PR adjusts our Kubernetes manifests for deploying the new API
service.

Release Notes:

- N/A

---------

Co-authored-by: Conrad <conrad@zed.dev>

Marshall Bowers and Conrad created

5e63526 Add telemetry events backend for collab (#8220)

Click to expand commit body
Send telemetry to collab not zed.dev

Release Notes:

- N/A

---------

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

Conrad Irwin , Marshall , and Marshall Bowers created

197a812 Add `SystemClock` (#8239)

Click to expand commit body
This PR adds a `SystemClock` trait for abstracting away the system
clock.

This allows us to swap out the real system clock with a
`FakeSystemClock` in the tests, thus allowing the fake passage of time.

We're using this in `Telemetry` to better mock the clock for testing
purposes.

Release Notes:

- N/A

Marshall Bowers created

a1e6258 zed 0.124.5

Kirill Bulatov created

2b4e6e7 Switch LSP prompts to use a non-blocking toast (#8312)

Click to expand commit body
This fixes a major degradation in usability that some users ran into.

Fixes https://github.com/zed-industries/zed/issues/8255 
Fixes https://github.com/zed-industries/zed/issues/8229

Release Notes:

- Switch from using platform prompts to toasts for LSP prompts.
([8255](https://github.com/zed-industries/zed/issues/8255),
[8229](https://github.com/zed-industries/zed/issues/8229))

<img width="583" alt="Screenshot 2024-02-23 at 2 40 05 PM"
src="https://github.com/zed-industries/zed/assets/2280405/1bfc027b-b7a8-4563-88b6-020e47869668">

Co-authored-by: Marshall <marshall@zed.dev>

Mikayla Maki and Marshall created

b4be47b zed 0.124.4

Conrad Irwin created

dae95e0 Disable swift for now (#8291)

Click to expand commit body
It causes segfaults on load

Release Notes:

- Fixed a segfault opening a Swift file with the Swift extension
installed.

Conrad Irwin created

4faf3ac zed 0.124.3

Conrad Irwin created

9e9ea6f Allow typing space in workspace::SendKeystrokes (#8288)

Click to expand commit body
Fixes #8222

Release Notes:

- N/A

Conrad Irwin created

e3d5a0f Fix for toggles on the Welcome page (#8159)

Click to expand commit body
Release Notes:

The issue is that when welcome page appears settings.json file is not
created yet. So the idea of this fix is to create the file in case it is
not there yet.

- Fixed the toggles on the welcome screen not working if no settings
file exists yet.
([#8153](https://github.com/zed-industries/zed/issues/8153)).

---------

Co-authored-by: Thorsten Ball <mrnugget@gmail.com>
Co-authored-by: Marshall <marshall@zed.dev>

Uladzislau Kaminski , Thorsten Ball , and Marshall created

bd317ee zed 0.124.2

Conrad Irwin created

77cdc28 Fix a panic in the assistant panel (#8244)

Click to expand commit body
Release Notes:

- Fixed a panic in the assistant panel when the app is shutting down.

Conrad Irwin created

1ba3376 fix vim panics (#8245)

Click to expand commit body
Release Notes:

- vim: Fixed a panic when using H/M/L when scrolled beyond the end of
the buffer

Conrad Irwin created

292d32e Pick up more home dir shell env when spawning (#8273)

Click to expand commit body
Release Notes:

- Improved how Zed picks up shell environment when spawned.

Thorsten Ball created

10df9df Detect and possibly use user-installed `gopls` / `zls` language servers (#8188)

Click to expand commit body
After a lot of back-and-forth, this is a small attempt to implement
solutions (1) and (3) in
https://github.com/zed-industries/zed/issues/7902. The goal is to have a
minimal change that helps users get started with Zed, until we have
extensions ready.

Release Notes:

- Added detection of user-installed `gopls` to Go language server
adapter. If a user has `gopls` in `$PATH` when opening a worktree, it
will be used.
- Added detection of user-installed `zls` to Zig language server
adapter. If a user has `zls` in `$PATH` when opening a worktree, it will
be used.

Example:

I don't have `go` installed globally, but I do have `gopls`:

```
~ $ which go
go not found
~ $ which gopls
/Users/thorstenball/code/go/bin/gopls
```

But I do have `go` in a project's directory:

```
~/tmp/go-testing φ which go
/Users/thorstenball/.local/share/mise/installs/go/1.21.5/go/bin/go
~/tmp/go-testing φ which gopls
/Users/thorstenball/code/go/bin/gopls
```

With current Zed when I run `zed ~/tmp/go-testing`, I'd get the dreaded
error:

![screenshot-2024-02-23-11 14
08@2x](https://github.com/zed-industries/zed/assets/1185253/822ea59b-c63e-4102-a50e-75501cc4e0e3)

But with the changes in this PR, it works:

```
[2024-02-23T11:14:42+01:00 INFO  language::language_registry] starting language server "gopls", path: "/Users/thorstenball/tmp/go-testing", id: 1
[2024-02-23T11:14:42+01:00 INFO  language::language_registry] found user-installed language server for Go. path: "/Users/thorstenball/code/go/bin/gopls", arguments: ["-mode=stdio"]
[2024-02-23T11:14:42+01:00 INFO  lsp] starting language server. binary path: "/Users/thorstenball/code/go/bin/gopls", working directory: "/Users/thorstenball/tmp/go-testing", args: ["-mode=stdio"]
```

---------

Co-authored-by: Antonio <antonio@zed.dev>

Thorsten Ball and Antonio created

57426b9 Ensure default prettier installs correctly when certain FS entries are missing (#8261)

Click to expand commit body
Fixes https://github.com/zed-industries/zed/issues/7865

* bind default prettier (re)installation decision to
`prettier_server.js` existence
* ensure the `prettier_server.js` file is created last, after all
default prettier packages installed
* ensure that default prettier directory exists before installing the
packages
* reinstall default prettier if the `prettier_server.js` file is
different from what Zed expects

Release Notes:

- Fixed incorrect default prettier installation process

Kirill Bulatov created

e12d617 zed 0.124.1

Kirill Bulatov created

ca1a95e Require prerelease eslint version (#8197)

Click to expand commit body
Fixes https://github.com/zed-industries/zed/issues/7650

Release Notes:

- Fixed eslint diagnostics not showing up due to old eslint version used

Kirill Bulatov created

bc8e7e0 v0.124.x preview

Joseph T. Lyons created

f895d66 Make language server id more explicit in unhandled message logs (#8131)

Click to expand commit body
Before:
```
[2024-02-21T18:55:55+02:00 INFO  language::language_registry] starting language server "eslint", path: "/Users/someonetoignore/Downloads/eslint-configs-demo", id: 2
[2024-02-21T18:55:56+02:00 INFO  lsp] 2 unhandled notification window/logMessage:
{
  "type": 3,
  "message": "ESLint server running in node v18.15.0"
}
[2024-02-21T18:55:56+02:00 INFO  lsp] 2 unhandled notification eslint/confirmESLintExecution:
{
  "scope": "local",
  "uri": "file:///Users/someonetoignore/Downloads/eslint-configs-demo/index.js",
  "libraryPath": "/Users/someonetoignore/Downloads/eslint-configs-demo/node_modules/eslint/lib/api.js"
}
```

After:
```
[2024-02-21T18:57:31+02:00 INFO  language::language_registry] starting language server "eslint", path: "/Users/someonetoignore/Downloads/eslint-configs-demo", id: 2
[2024-02-21T18:57:32+02:00 INFO  lsp] Language server with id 2 sent unhandled notification window/logMessage:
{
  "type": 3,
  "message": "ESLint server running in node v18.15.0"
}
[2024-02-21T18:57:32+02:00 INFO  project::prettier_support] Fetching default prettier and plugins: [("prettier-plugin-tailwindcss", "0.5.11"), ("prettier", "3.2.5")]
[2024-02-21T18:57:32+02:00 INFO  lsp] Language server with id 2 sent unhandled notification eslint/confirmESLintExecution:
{
  "scope": "local",
  "uri": "file:///Users/someonetoignore/Downloads/eslint-configs-demo/index.js",
  "libraryPath": "/Users/someonetoignore/Downloads/eslint-configs-demo/node_modules/eslint/lib/api.js"
}
```

We have to pass a name there too, but the problem here is that the
unhandled message callback is created very early, along with the binary,
but the server name is received from the LSP initialize response, which
is a totally separate piece of code.
I plan to refactor that code next, but so far, improve the logs at least
slightly.

Release Notes:

- N/A

Kirill Bulatov created

7bf16f2 Fix a bug when extension loading is failed after it's folder is viewed by MacOS finder (#8111)

Click to expand commit body
Fixes #8096

# Bug description

I was experimenting with adding extensions and almost went crazy trying
to make my demo extension work. It appeared that I was copying files
with Finder that creates hidden `.DS_Store` files which interfered with
Zed's loading logic. It assumes that `languages/` directory contains
only directories and never files and so it crashes when meets
`.DS_Store`. This makes any extension stop working after it has been
viewed via Finder

# Change

Check if path is directory when loading extension languages (so it will
skip .DS_Store files)

Ivan Buryak created

d3745a3 Document new theme options (#7899)

Click to expand commit body
Added documentation for
[#4970](https://github.com/zed-industries/zed/issues/4970), a feature
added in the latest update. Will need to modify `Default Settings` to
reflect the new default theme example.

Release Notes:

- N/A

Kyber created

0c939e5 Add task docs and default keybindings (#8123)

Click to expand commit body
Also group task source modules together

Release Notes:

- N/A

---------

Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>

Kirill Bulatov and Piotr Osiewicz created

b9151b9 Runnables: remove version field from the format (#8118)

Click to expand commit body
This changes the format of runnables slightly (the top-level object is
now a sequence, not a map).
The 2nd commit pulls in aliases from .zshrc and co.
Release Notes:

- N/A

Piotr Osiewicz created

2679457 Rename runnables into tasks (#8119)

Click to expand commit body
Release Notes:

- N/A

Kirill Bulatov created

45e2c01 Copilot: handle "ok" status message when no user is set (#8116)

Click to expand commit body
In #6954 a user has trouble using copilot. We haven't gotten to the
bottom of the problem, but one problem is that apparently sometimes (I'm
going to find out when) copilot sends an `"OK"` status message without a
username. This is from the user's logs:

2024-02-20T15:28:41-03:00 [ERROR] failed to deserialize response from
language server: missing field `user`. Response from language server:
"{\"status\":\"OK\"}"

The official `copilot.vim` plugin handles this as if the user is not
authenticated (!= authorized):


https://github.com/github/copilot.vim/blob/1a284014d2e0baf367706a94b2a9ee5fd56fd457/autoload/copilot.vim#L574-L579

So that's what I'm doing here too.

Release Notes:

- Fixed wrong handling of Copilot sign-in status in rare cases.

Thorsten Ball created

fd98238 Tiny change: use consistent casing in log message (#8115)

Click to expand commit body
Release Notes:

- N/A

Thorsten Ball created

d5aba27 Log when starting language servers (#8075)

Click to expand commit body
This should help us debug more failures because we can now see what
exactly was started.

Release Notes:

- N/A

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

Thorsten Ball , Nathan , and Max created

92b2e56 Fix crash when closing last zed window (#8102)

Click to expand commit body
Fixes: #8100

Release Notes:

- N/A

Joseph T. Lyons created

c58d72e Improve automatic indentation in Gleam code files (#8098)

Click to expand commit body
Release Notes:

- Improved automatic indentation in Gleam code files
([#7295](https://github.com/zed-industries/zed/issues/7295)).

Joseph T. Lyons created

58a5a1e Automatically indent the cursor when adding a newline after a `{` in Gleam code files (#8097)

Click to expand commit body
Fixes: https://github.com/zed-industries/zed/issues/7295

Release Notes:

- Fixed a bug where adding a newline after a `{` would not automatically
indent the cursor in Gleam code files
([#7295](https://github.com/zed-industries/zed/issues/7295)).

Joseph T. Lyons created

cd640a8 Improve key handling on x11, sharing wayland implementation (#8094)

Click to expand commit body
Makes keyboard shortcuts work on x11.

Release Notes:

- N/A

gmorenz created

c97ecc7 Add initial CI job for Windows target (#8088)

Click to expand commit body
Clippy is disabled for now, due to many warnings in both `gpui` and
other code, see
https://github.com/zed-industries/zed/actions/runs/7980269779/job/21789529800
for more details.

Also, due to `#!/usr/bin/env bash` shebang in the `script/clippy`, it
starts in Windows CI with `shell: C:\Program Files\Git\bin\bash.EXE
-euxo pipefail {0}`

https://github.com/zed-industries/zed/actions/runs/7980269779/job/21789529800#step:4:3
It seems more appropriate to use PowerShell instead.

See `todo!("windows")` for all stubbed places currently.

Release Notes:

- N/A

Kirill Bulatov created

48f0f38 Update docs for building Zed (#8092)

Click to expand commit body
This PR updates the docs for building Zed to fix the links in the
sidebar after the addition of the Linux-specific docs in #8083.

Release Notes:

- N/A

Marshall Bowers created

2ec910f Runnables: Add oneshot runnables (#8061)

Click to expand commit body
/cc @SomeoneToIgnore 
Fixes #7460 and partially addresses #7108 
Release Notes:

- N/A

Piotr Osiewicz created

8a73bc4 Vim: enable sending multiple keystrokes from custom keybinding (#7965)

Click to expand commit body
Release Notes:

- Added `workspace::SendKeystrokes` to enable mapping from one key to a
sequence of others
([#7033](https://github.com/zed-industries/zed/issues/7033)).

Improves #7033. Big thank you to @ConradIrwin who did most of the heavy
lifting on this one.

This PR allows the user to send multiple keystrokes via custom
keybinding. For example, the following keybinding would go down four
lines and then right four characters.

```json
[
  {
    "context": "Editor && VimControl && !VimWaiting && !menu",
    "bindings": {
      "g z": [
        "workspace::SendKeystrokes",
        "j j j j l l l l"
      ],
    }
  }
]
```

---------

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>

N and Conrad Irwin created

8f5d7db First pass at making a linux keymap (#8082)

Click to expand commit body
Undoubtedly not perfect, but this should be something we can work off
of.

Note that matching keybindings with ctrl in them is currently broken on
linux (or at least x11). This keymap might just manage to be less useful
than using the macos one on linux until that is fixed... the proximate
cause of this is that the `key` field of the `Keystroke` struct looks
like `"\u{e}"` instead of `"n"` when `ctrl-n` is pressed.

Release Notes:

- N/A

gmorenz created

389d26d Linux(Wayland): translate enter and pageup/down from keysym (#8089)

Click to expand commit body
enter and pagedown/pageup weren't working now they do
Release Notes:
- N/A

Gabriel Dinner-David created

e580e2f Update `Cargo.lock` (#8085)

Click to expand commit body
This PR updates `Cargo.lock`, since it was missed in #8059.

Release Notes:

- N/A

Marshall Bowers created

3d9503a Fix cx.windows() to return borrowed windows (#8086)

Click to expand commit body
Fixes #8068

Release Notes:

- Fixed an error message when joining a project twice
([#8068](https://github.com/zed-industries/zed/issues/8068)).

Conrad Irwin created