Commit log

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

5c7cec9 Add linux to readme (#8083)

Click to expand commit body
Release Notes:

- N/A

Mikayla Maki created

b028231 linux/x11: disable Vulkan validation in Debug (#8044)

Click to expand commit body
Turns out this validation requirement is confusing new users.

Release Notes:
- N/A

Dzmitry Malyshau created

f7d2cb1 Project search bar layout improvements (#7963)

Click to expand commit body
The PR matches project search layout with the recent changes in the
buffer project layout.

https://github.com/zed-industries/zed/assets/2101250/91b905ea-aed8-4740-9e60-67f3052885e2


Release Notes:

- Improve project search bar layout, match it with the buffer search bar ([7722](https://github.com/zed-industries/zed/issues/7722))

Andrew Lygin created

78dcd72 Fix display of links in lists (markdown_preview) (#8073)

Click to expand commit body
![markdown_preview](https://github.com/zed-industries/zed/assets/67913738/d8e4800f-d549-42e7-90b4-001d98aa39d2)

Release Notes:

- Fixed display of long links in lists not fully visible in markdown
preview.

Robin Pfäffle created

d51a0b6 linux/x11: send XCB requests asynchronously (#8045)

Click to expand commit body
With `send_and_check_request` we'd be blocking both the main loop and
the caller. `send_request` is only going to be blocking on the main loop
when processing the request.

Release Notes:
- N/A

Based on a flamegraph from `perf`/`hotspot`, we are spending 40% of time
redrawing, another 40% of time downloading stuff (i.e. rust toolchain),
and the rest on text rendering, layout and such. This is with Vulkan
Validation (see https://github.com/zed-industries/zed/pull/8044).

I'm also wondering if it would be better with #7758, but regardless we
should have no problem rendering at 60-120 fps and processing user
input. More follow-ups are expected here.

Dzmitry Malyshau created

8178d34 Change default Markdown tab size (#8080)

Click to expand commit body
Following up to #8079, this PR changes the default Markdown tab size to
2 spaces.

This should produce less surprising formatting for lists when using
Prettier.

Release Notes:

- Changed default Markdown tab size to 2 spaces.

Marshall Bowers created

33ecb42 Adjust tab size for Markdown (#8079)

Click to expand commit body
This PR sets the `tab_size` for Markdown to 2 spaces.

This should prevent Prettier from adding a bunch of leading whitespace
when formatting Markdown lists.

Release Notes:

- N/A

Marshall Bowers created

91b9738 bump tree-sitter-nu to latest (#8059)

Click to expand commit body
This PR bumps the tree-sitter-nu commit to the latest supported by the
nushell team. It also includes the latest highlights.scm

Release Notes:

Bumped `nu` tree sitter dependency and highlights.scm

Darren Schroeder created

0a40a21 Timeout while waiting for server to shutdown and kill it

Julia created

b14d576 Follower simplification (#8026)

Click to expand commit body
Release Notes:

- Improved reliability of following

Conrad Irwin created

db0eaca Rename scrollbar_thumb to be consistent with other style properties (#8004)

Click to expand commit body
This small inconsistency was mentioned on the discord. This fixes it.

Release Notes:

- Themes: Renamed `scrollbar_thumb.background` to
`scrollbar.thumb.background` to be consistent with other style
properties.

---------

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

Philipp Schaffrath and Marshall Bowers created

80db468 go: better logging if `go install gopls` fails (#8060)

Click to expand commit body
Release Notes:

- Improved logging if installing `gopls` fails

Thorsten Ball created

0d2ad67 Add settings to configure terminal scroll limit (#8063)

Click to expand commit body
Fixes https://github.com/zed-industries/zed/issues/7550
Also set maximum allowed to runnables' terminals.


Release Notes:

- Added settings to configure terminal scroll limit
([7550](https://github.com/zed-industries/zed/issues/7550))

Kirill Bulatov created

7065d6c Use proper template for initial runnables config contents (#8064)

Click to expand commit body
Release Notes:

- N/A

Kirill Bulatov created

6c714c1 Fix markdown preview heading overflows no wrap (#8052)

Click to expand commit body
![Kapture 2024-02-20 at 18 27
15](https://github.com/zed-industries/zed/assets/8416130/87d4dcea-e2f0-44ba-88a4-06829dbb0e89)

Release Notes:

- Improved markdown preview wrapping ([#8047](https://github.com/zed-industries/zed/issues/8047)).

Hourann created

c54d6af Properly ignore missing/empty runnables config

Kirill Bulatov created

48a6fb9 Fix runnables-related hickups (#8058)

Click to expand commit body
* never error on absent/empty runnables file
* always activate terminal tab on runnable (re)schedule

Release Notes:

- N/A

Kirill Bulatov created

e9f400a rust-analyzer check command is `check` and not `checkOnSave` (#8054)

Click to expand commit body
Reference: https://rust-analyzer.github.io/manual.html#configuration

Release Notes:

- N/A

Ali Servet Donmez created

fc101c1 Log when failed to deserialize response from language server (#8046)

Click to expand commit body
This should probably help us debug when language servers don't start up
properly.

Release Notes:

- N/A

Thorsten Ball created

4616d66 Download right language server binary for OS (#8040)

Click to expand commit body
Release Notes:

- Download right language server binary for OS

bbb651 created

3ef8a99 chat: auto detect links (#8028)

Click to expand commit body
@ConradIrwin here's our current implementation for auto detecting links
in the chat.
We also fixed an edge case where the close reply to preview button was
cut off (rendered off screen).

Release Notes:

- Added auto detection for links in the chat panel.

---------

Co-authored-by: Remco Smits <62463826+RemcoSmitsDev@users.noreply.github.com>

Bennet Bo Fenner and Remco Smits created

1e44bac Add Ruby method visibility in outline view (#7954)

Click to expand commit body
Release Notes:

- Improved ([#7849
](https://github.com/zed-industries/zed/issues/7849)).

<img width="897" alt="image"
src="https://github.com/zed-industries/zed/assets/7274458/a2b0db84-1971-45c0-a5a2-68de651e342b">

Ben Hamment created

aad7761 Add an indicator to the channel chat to see all the messages that you missed (#7781)

Click to expand commit body
This pull requests add the following features:
- Show indicator before first unseen message
- Scroll to last unseen message

<img width="241" alt="Screenshot 2024-02-14 at 18 10 35"
src="https://github.com/zed-industries/zed/assets/62463826/ca396daf-7102-4eac-ae50-7d0b5ba9b6d5">


https://github.com/zed-industries/zed/assets/62463826/3a5c4afb-aea7-4e7b-98f6-515c027ef83b

### Questions: 
1. Should we hide the indicator after a couple of seconds? Now the
indicator will hide when you close/reopen the channel chat, because when
the last unseen channel message ID is not smaller than the last message
we will not show it.

Release Notes:
- Added unseen messages indicator for the channel chat.

Remco Smits created

0422d43 Linux: Add support for MouseButton::Navigate in GPUI (wayland and x11) (#7996)

Click to expand commit body
Release Notes:

- N/A

Based on wgpu implementation (which I wrote).

---------

Co-authored-by: Mikayla Maki <mikayla@zed.dev>

bbb651 and Mikayla Maki created

b00b65b linux/x11: implement window focus (#8002)

Click to expand commit body
Release Notes:
- N/A

Dzmitry Malyshau created

fddb778 Enable server side decorations on wayland (#8037)

Click to expand commit body
This PR enables server side decorations on Wayland if possible. This is
stopgap solution, so that the window can be moved, resized and dragged
on Wayland sessions at all.


![image](https://github.com/zed-industries/zed/assets/25827180/3dc9af53-76c0-4664-8746-ed6a6e5eafe7)

Since Wayland compositors can decide to force either mode (as in,
forcing server or client side decorations), this requires additional
handling in zed. Since zed doesn't provide any of that handling as of
now, as a temporary solution server side decorations are always
requested.

Janrupf created