Commit log

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

77974a4 Stubbing unix-dependent values on Windows (#8036)

Click to expand commit body
Release Notes:

- N/A

白山風露 created

0037f0b Avoid dependencies build errors on Windows (#7827)

Click to expand commit body
This is a compilation of fixes for errors that appeared in dependent
crates in Windows.

- wezterm (zed-industries/wezterm#1)
- tree-sitter-svelte (Himujjal/tree-sitter-svelte#54)
- tree-sitter-uiua (shnarazk/tree-sitter-uiua#25)
- tree-sitter-haskell (I sent a PR, but upstream source is regenerated
and no longer errors.)

Release Notes:

- N/A

白山風露 created

37f6a70 Invalidate Linux build caches more agressively (#8031)

Click to expand commit body
We run Linux CI on regular GitHub Action runners, which have ~30GB of
disk space. This is nothing for Rust builds and, due to Cargo.lock
perturbations, we tend to accumulate enough artifacts to fill the disk
entirely since `restore-keys` alowed to keep the cache for different
lockfiles.

Instead, try to invalidate the cache more aggressively (which will cost
us more frequent ~30min Linux CI runs) to see how this will work in
comparison.

Release Notes:

- N/A

Kirill Bulatov created

f4bafd5 Dart support (#7220)

Click to expand commit body
This is my first contribution, feedback is welcome.

Release Notes:

- Added Dart language support
([#5343](https://github.com/zed-industries/zed/issues/5343)).

Abdullah Alsigar created

b3d3a00 chore: Add missing LICENSE-GPL files

Piotr Osiewicz created

0a5df7d Fix `jk` not working in Vim bindings (#8023)

Click to expand commit body
Fixes #8006.

Release Notes:

- Fixed two-character bindings in Vim insert mode (e.g. `j k` or `j j`)
not working.
([#8006](https://github.com/zed-industries/zed/issues/8006))

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

Thorsten Ball and Conrad created

4d1585b Don't drop key bindings (#8019)

Click to expand commit body
Fixes: #7748



Release Notes:

- Fixed a bug where keystrokes could be lost after focus changes
([#7748](https://github.com/zed-industries/zed/issues/7748)).

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

Conrad Irwin and Antonio created

99559f3 Add another runnables_ui/Cargo.toml field to satisfy license checks

Kirill Bulatov created

5783497 Add missing license field to runnables_ui

Kirill Bulatov created

e27c2fc Fix seed-db script by passing it the correct admin file path (#8022)

Click to expand commit body
Release Notes:

- N/A

Kirill Bulatov created

f17d0b5 Add static Runnables (#8009)

Click to expand commit body
Part of #7108

This PR includes just the static runnables part. We went with **not**
having a dedicated panel for runnables.
This is just a 1st PR out of N, as we want to start exploring the
dynamic runnables front. Still, all that work is going to happen once
this gets merged.

Release Notes:

- Added initial, static Runnables support to Zed. Such runnables are defined in
`runnables.json` file (accessible via `zed: open runnables` action) and
they can be spawned with `runnables: spawn` action.

---------

Co-authored-by: Kirill Bulatov <kirill@zed.dev>
Co-authored-by: Pitor <pitor@zed.dev>
Co-authored-by: Beniamin <beniamin@zagan.be>

Piotr Osiewicz , Kirill Bulatov , Pitor , and Beniamin created

ca251ba Drop `Box<dyn PlatformWindow>` when the OS closes the native window (#8016)

Click to expand commit body
Closes #7973 

This fixes a leak in GPUI when the user didn't override
`on_should_close_window`.

Release Notes:

- N/A

---------

Co-authored-by: Thorsten <thorsten@zed.dev>

Antonio Scandurra and Thorsten created

c33efe8 recent projects: cleanup ui (#7528)

Click to expand commit body
As the ui for the file finder was recently changed in #7364, I think it
makes sense to also update the ui of the recent projects overlay.

Before:

![image](https://github.com/zed-industries/zed/assets/53836821/8a0f5bef-9b37-40f3-a974-9dfd7833cc71)

After:

![image](https://github.com/zed-industries/zed/assets/53836821/7e9f934a-1ac3-4716-b7b6-67a7435f3bde)


Release Notes:

- Improved UI of recent project overlay

Bennet Bo Fenner created

2b56c43 Wayland: Keyboard input improvements (#7989)

Click to expand commit body
Release Notes:

- N/A

---

Right now the Wayland backend is using `xkb::State::key_get_utf8` as the
`key`, when it should be used as the `ime_key`. It also manages
pressing/releasing modifiers manually when this should be managed by the
display server.

This allows modifier combinations to work in more cases, making it an
alternative to https://github.com/zed-industries/zed/pull/7975, which
interprets what is now only used as the `ime_key` value as a `key`
value.

Tadeo Kondrak created

bd137b0 Wayland fractional scaling (#7961)

Click to expand commit body
This PR adds support for fractional scaling on Wayland.

Release Notes:

- N/A

Roman created

4e1e26b blade: Fix initialization of atlas textures used for path rasterization (#8000)

Click to expand commit body
Generally the BladeAtlas logic has been deferring all the texture
initializations and updates till `begin_frame`. This doesn't work for
path rasterization, since a texture needs to be allocated after
`begin_frame` and used immediately.

Fixed validation error:
> UNASSIGNED-CoreValidation-DrawState-InvalidImageLayout(ERROR / SPEC):
msgNum: 1303270965 - Validation Error: [
UNASSIGNED-CoreValidation-DrawState-InvalidImageLayout ] Object 0:
handle = 0x60ce301b9010, name = main, type =
VK_OBJECT_TYPE_COMMAND_BUFFER; Object 1: handle = 0x51820000000007b,
name = atlas, type = VK_OBJECT_TYPE_IMAGE; | MessageID = 0x4dae5635 |
vkQueueSubmit(): pSubmits[0].pCommandBuffers[0] command buffer
VkCommandBuffer 0x60ce301b9010[main] expects VkImage
0x51820000000007b[atlas] (subresource: aspectMask 0x1 array layer 0, mip
level 0) to be in layout VK_IMAGE_LAYOUT_GENERAL--instead, current
layout is VK_IMAGE_LAYOUT_UNDEFINED.
    Objects: 2
        [0] 0x60ce301b9010, type: 6, name: main
        [1] 0x51820000000007b, type: 10, name: atlas

Release Notes:
- N/A

Dzmitry Malyshau created

12b12ba Add syntax highlighting and LSP for Dockerfiles(#6905) (#7977)

Click to expand commit body
Release Notes:

- Added Dockerfile syntax highlighting and LSP support

---------

Co-authored-by: Bryce Palmer <bpalmer@redhat.com>
Co-authored-by: Kirill Bulatov <mail4score@gmail.com>

d1y , Bryce Palmer , and Kirill Bulatov created

8acd4d1 Fix git_commit grammar name typo (#7982)

Click to expand commit body
Release Notes:

- Fixed git_commit highlights not working

d1y created

2512189 Add editor::OpenUrl action and bind to `gx` in Vim mode (#7972)

Click to expand commit body
This adds one feature I've been missing a lot in Vim mode: `gx` to open
the URL under the cursor.

Technically, in Vim, `gx` opens more "paths", not just URLs, but I think
this is a good start.

Release Notes:

- Added `gx` to Vim mode to open the URL under the cursor.

Demo:


https://github.com/zed-industries/zed/assets/1185253/6a19490d-b61d-40b7-93e8-4819599f6977

Thorsten Ball created

3ca6f75 Add more documentation about base keymaps (#7953)

Click to expand commit body
Release Notes:

- Clarify base keymap settings better in the docs

Victor created

b91d6da Remove Beancount as a built-in language (#7934)

Click to expand commit body
This PR removes Beancount as a built-in language, as it is now available
as an [extension](https://github.com/zed-extensions/beancount).

Release Notes:

- Removed built-in support for Beancount, as it is now provided by an
[extension](https://github.com/zed-extensions/beancount).

Marshall Bowers created

a041e07 Hide Inline Assist button if assistant.button is disabled (#7932)

Click to expand commit body
This PR adds check for `assistant.button` setting in quick bar, to hide
it when the setting is set to false. It seems that the setting can be a
separate one, I would be happy to add it if needed.

Release Notes:

- Improved `assistant.button` setting so that `Inline Assist` button in
editor quick bar is also hidden
([#4500](https://github.com/zed-industries/zed/issues/4500)).

Aleksei Trifonov created

6d9b8cc Clear search results on invalid query input (#7958)

Click to expand commit body
Fixes a bug in the buffer search bar: Clears results of a previous
successfull search when the user enters invalid search request.

Steps to reproduce the bug:
1. Switch to Regex search mode.
2. Enter a valid search query that produces several matches.
3. Add a symbol to the search query that makes it an invalid regexp.
4. Switch to the editor and walk through the code back and forth.

Expected result: All the match highlightings after step 2 are cleared,
search bar indicates absence of the last search matches.

Actual: The results from the last valid search are highlighted, search
bar indicates presence of matches.

Potentially, the same effect may occur when searching in the simple text
mode, or when clearing the search query in some circumstances, so I made
the fix for all those cases, though I wasn't able to reproduce them
manually.

The bug:


https://github.com/zed-industries/zed/assets/2101250/1c50b98c-ae8e-4a9c-8ff5-1e5c63027ec3

After the fix:


https://github.com/zed-industries/zed/assets/2101250/e3eedf8c-2e3e-41ee-81cc-c2c9d919fba3

Release Notes:
- Clear search results on invalid query input

Andrew Lygin created

4c781b6 vim netrw (#7962)

Click to expand commit body
- Tidy up vim netrw bindings (c.f.
https://github.com/zed-industries/zed/issues/4270,
https://github.com/zed-industries/zed/pull/7757)
- Add vim commands for panels

Release Notes:

- vim: add commands to toggle panels `:E[xplore]`, `:C[ollab]`,
`:Ch[at]`, `:N[otification]`, `:A[I]`, `:te[rm]` (or `:T[erm]`).

Conrad Irwin created