Commit log

6c5dfd1 Add terminal icon for Nu file (#8399)

Click to expand commit body
Nu is a shell language so it should has the `terminal` icon.

Release Notes:

- N/A

<img width="241" alt="Capture d’écran 2024-02-25 à 18 49 43"
src="https://github.com/zed-industries/zed/assets/24520681/0adcd8fd-f5b0-4688-b301-5c49c376c7a0">

Howins created

6ef3237 Add `command_palette_hooks` crate (#8398)

Click to expand commit body
This PR introduces a new `command_palette_hooks` crate that contains the
types used to hook into the behavior of the command palette.

The `CommandPaletteFilter` was previously extracted to the `copilot`
crate in #7095, solely because that was the earliest ancestor of the
crates that depended on it.

The `CommandPaletteInterceptor` was still defined in `command_palette`
itself.

Both of these types were consumed by other crates wanting to influence
the behavior of the command palette, but required taking a dependency on
the entire `command_palette` crate in order to gain access to these
hooks.

By moving them out into their own crate, we can improve the compile
order and make crates like `vim` able to begin building sooner without
having to wait for `command_palette` to finish compiling.

Here's a comparison of the compilation graph before and after (ignore
the timings):

#### Before

<img width="332" alt="Screenshot 2024-02-25 at 12 42 29 PM"
src="https://github.com/zed-industries/zed/assets/1486634/a57c662e-fbc2-41ab-9e30-cca17afa6c73">

#### After

<img width="362" alt="Screenshot 2024-02-25 at 12 51 15 PM"
src="https://github.com/zed-industries/zed/assets/1486634/c1a6d29c-b607-4604-8f1b-e5d318bf8849">

Release Notes:

- N/A

Marshall Bowers created

b299461 Hoist `languages` crate's dependencies to the workspace level (#8394)

Click to expand commit body
This PR hoists all of the dependencies of the `languages` crate to the
workspace level.

Release Notes:

- N/A

Marshall Bowers created

368fec2 Format scripts with Prettier (#8393)

Click to expand commit body
This PR does a one-off format of some of our scripts using Prettier.

Release Notes:

- N/A

Marshall Bowers created

934af6a recent projects: fix list flashing/empty (#8376)

Click to expand commit body
If the list is large (size > overdraw + available height) the
`all_rendered` check was preventing the list from returning an inferred
size. Theoretically we can now report heights which are actually too
small (because not all items were affected during layout), this can be
manually adjusted using the overdraw parameter. In this case its fine
because the picker is inside a max_height which should never be more
then the overdraw we specify (1000 px), and the list will shrink down
either way when the request_measured_layout callback is called again.

Release Notes:

- Fixed flashing of recent projects list when there were a lot of
projects in the list
([#8364](https://github.com/zed-industries/zed/issues/8364#issuecomment-1962849393)).

Bennet Bo Fenner created

053b6cc Rework extension filtering to use a `ToggleButton` (#8387)

Click to expand commit body
This PR reworks the extension filtering to use a `ToggleButton`, since
the filter states are mutually-exclusive.

<img width="1136" alt="Screenshot 2024-02-25 at 10 04 59 AM"
src="https://github.com/zed-industries/zed/assets/1486634/52c621da-201c-42b9-805d-62e3ab66f94b">

Release Notes:

- N/A

Marshall Bowers created

37a12a3 Fix double menu item separator in "Help" section of app menu (#8351)

Click to expand commit body
I've modified the code at `crates/zed/src/app_menus.rs` as it looks like
there was a typo and instead of one
`MenuItem::separator()` there were two.

It would be something like this:

<img width="1512" alt="Captura de pantalla 2024-02-25 a las 16 12 10"
src="https://github.com/zed-industries/zed/assets/93369643/d35d5b57-247c-4a1f-b65a-a1b68cd302b9">

Hugo Urías created

633e31a Allow extensions to be filtered on installed and not installed (#8375)

Click to expand commit body
Partially resolves: https://github.com/zed-industries/zed/issues/7785

Right now, we can engage `Only show installed`, but I've been wanting to
be able to filter down to just uninstalled extensions too, so I can
browse things I don't have. I changed this to have 2 checkboxes,
`Installed` and `Not installed` and both are on by default. You deselect
them to filter down.

<img width="1608" alt="SCR-20240225-etyg"
src="https://github.com/zed-industries/zed/assets/19867440/e2267651-ff86-437b-ba59-89f3d338ea02">

Release Notes:

- Allow extensions list to be filtered down to both installed and not
installed.

Joseph T. Lyons created

882cd6e Revert "Bump tree-sitter, wasmtime (#8306)" (#8373)

Click to expand commit body
This reverts commit d4973846c0f38d8d6dcd4bba9d5d096dec94a073.

Fixes https://github.com/zed-industries/zed/issues/8360 and
https://github.com/zed-industries/zed/issues/8362


Release Notes:

- N/A

Kirill Bulatov created

83f493b Clean up deps for file_finder, language_selector, task, rpc, storybook (#8353)

Click to expand commit body
Following-up on #8330

Invocation
```bash
cargo-machete --with-metadata --skip-target-dir --fix
````

There is more stuff to fix, but it chokes on `async-lock`:
```
cargo-machete found the following unused dependencies in /x/Code/zed:
rpc -- /x/Code/zed/crates/rpc/Cargo.toml:
        async_lock
        prost_build
        serde_derive
Error: Dependency async_lock not found
```

Release Notes:
- N/A

Dzmitry Malyshau created

dbe1f48 ocaml: Small query improvements and fix autoclose brackets (#7769)

Click to expand commit body
Turns out auto-closing words was a bad idea. win**do**w, **struct**ure,
**sig**n and so on

They don't serve any purpose in `config.toml` nor `brackets.scm` at this
point, so I removed them>

Release Notes:
- N/A

rmu created

401798d Remove unused plugin crates (#8350)

Click to expand commit body
This PR removes the unused crates for plugin support.

We're currently exploring Wasm-based extensions, and it's unlikely that
we'll be reusing any of this existing work.

Release Notes:

- N/A

Marshall Bowers created

35bec98 Clean up dependencies of call,lsp,project,settings,vim,welcome, and workspace (#8330)

Click to expand commit body
Based on the product of
[cargo-machete](https://blog.benj.me/2022/04/27/cargo-machete/):

[dependencies.txt](https://github.com/zed-industries/zed/files/14392213/dependencies.txt)

Release Notes:
- N/A

Dzmitry Malyshau created

d497384 Bump tree-sitter, wasmtime (#8306)

Click to expand commit body
Fixes
https://github.com/zed-industries/zed/issues/8296#issuecomment-1961957369

Release Notes:

- Fixed a crash that would happen when loading an extension that added a
grammar that was generated using a very old version of Tree-sitter
([#8296](https://github.com/zed-industries/zed/issues/8296)).

---------

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

Max Brunsfeld , Conrad , and Marshall created

16d826a Show keybindings instead of the action names in the recent project modal

Kirill Bulatov created

c29ea9b Allow using context in the `placeholder_text` method

Kirill Bulatov created

cf3b875 Add icon for R files (#8223)

Click to expand commit body
Add an icon from https://www.svgrepo.com/svg/340612/logo-r-script for .r

<img width="1392" alt="307467014-63f68791-9d74-4bd1-8065-3698665f7c15"
src="https://github.com/zed-industries/zed/assets/93369643/ce24615c-6946-479a-8660-663bf83a7dde">

Credits For Image: @moshyfawn

Release Notes:

- Added R logo

Hugo Urías created

3ddf2f2 Add bun file icon (#8322)

Click to expand commit body
Add bun file icon, source from https://bun.sh/press-kit

![Screenshot 2024-02-24 at 12 32
12](https://github.com/zed-industries/zed/assets/56961917/ebc731a6-5c78-481e-99da-f78f03574fad)

Release Notes:

- Added a bun file icon

Ngô Quốc Đạt created

d1b5860 Add plus and dollar sign to terminal paths (#8321)

Click to expand commit body
After fix (file path is now clickable):
<img width="1019" alt="Screenshot 2024-02-23 at 8 59 45 PM"
src="https://github.com/zed-industries/zed/assets/63214891/cbdcb0f5-cd58-436b-9980-f657436f2bc0">

Before fix:
<img width="936" alt="Screenshot 2024-02-23 at 9 15 25 PM"
src="https://github.com/zed-industries/zed/assets/63214891/72d27155-a708-4b8d-a0b6-85d1e9031627">

Release Notes:

- Fixed an issue with terminal paths not allowing links when the path
included `+` or `$` symbols.
([#8256](https://github.com/zed-industries/zed/issues/#8256)).

Chase Bellisime created

d895388 linux: profile text system functions

Dzmitry Malyshau created

7619669 Fix unused warning in time_format

Dzmitry Malyshau created

ba4e169 Rename `ZedHttpClient` for clarity (#8320)

Click to expand commit body
This PR renames the `ZedHttpClient` to `HttpClientWithUrl` to make it
slightly clearer that it still is holding a `dyn HttpClient` as opposed
to being a concrete implementation.

Release Notes:

- N/A

Marshall Bowers created

58463b2 Add icon for GraphQL files (#8213)

Click to expand commit body
Add an icon from https://graphql.org/brand/ for `.graphql`


![Examples@2x](https://github.com/zed-industries/zed/assets/4057095/9751a509-0dca-4611-b98f-277307c4bfe7)

Ivan Buryak created

03b0764 Replace `time_format` license with symlink

Marshall Bowers created

c59aab5 Adjust labels of buttons in extension list based on status (#8319)

Click to expand commit body
This PR makes the labels of the buttons in the extension list adapt to
reflect the current status.

Release Notes:

- Changed the button labels in the extension list to reflect the current
status.

Marshall Bowers created

2e616f8 Add new `argument` vim text object (#7791)

Click to expand commit body
This PR adds a new `argument` vim text object, inspired by
[targets.vim](https://github.com/wellle/targets.vim).

As it's the first vim text object to use the syntax tree, it needed to
operate on the `Buffer` level, not the `MultiBuffer` level, then map the
buffer coordinates to `DisplayPoint` as necessary.

This required two main changes:
1. `innermost_enclosing_bracket_ranges` and `enclosing_bracket_ranges`
were moved into `Buffer`. The `MultiBuffer` implementations were updated
to map to/from these.
2. `MultiBuffer::excerpt_containing` was made public, returning a new
`MultiBufferExcerpt` type that contains a reference to the excerpt and
methods for mapping to/from `Buffer` and `MultiBuffer` offsets and
ranges.

Release Notes:
- Added new `argument` vim text object, inspired by
[targets.vim](https://github.com/wellle/targets.vim).

vultix created

dc7e14f Respect user preferences when formatting timestamp (#7994)

Click to expand commit body
This is a follow up to #7945. The current behaviour reads the locale and
infers from that which type of time format should be used (12 hour/24
hour).
However, in macOS you can override this behaviour, e.g. you can use
en_US locale but still use the 24 hour clock format (Can be customized
under Settings > General > Date & Format > 24-hour time). You can even
customize the date format.

This PR uses the macOS specific `CFDateFormatter` API, which outputs
time format strings, that respect those settings.

Partially fixes #7956 (as its not implemented for linux)

Release Notes:

- Added localization support for all macOS specific date and time
configurations in chat

Bennet Bo Fenner created

7599933 Fix uploads to `edit_events` table (#8318)

Click to expand commit body
This PR fixes uploads the `edit_events` table.

We were trying to insert into a column that didn't exist:

```
HTTP error 500 Internal Server Error: failed to upload to table 'edit_events'

Caused by:
    bad response: Code: 16. DB::Exception: No such column os_name in table default.edit_events
```

Release Notes:

- N/A

Marshall Bowers created

622cae1 Fix alignment of traffic lights (#8128)

Click to expand commit body
closes #7339

Max created

e06ff5f 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

9b44ba9 linux/text: fix invalid span creation (#8286)

Click to expand commit body
This fixes a crash when showing completions.

Release Notes:

- N/A

Paul Berg created

aef299b CI: Enable clippy on Windows (#8240)

Click to expand commit body
Release Notes:

- N/A

白山風露 created

885ae2d linux/x11: prioritize input in the event loop (#8253)

Click to expand commit body
With this change, interaction with Zed is actually real-time and usable
:rocket: :tada:

The gist of it is - trying to process all of the input events before
rendering anything.

Release Notes:
- N/A

**Note**: this can be further improved in a follow-up.
Currently, once the input and runnables are processed, we'd try to draw
+ render a frame.
Presentation starts with acquiring a new frame. We currently have FIFO
presentation method, so acquiring a frame is blocking on that swapchain
image to become available. As the result, presentation takes around 16
ms, most of which is just busy wait.
Ideally, we'd be able to process more input in this time frame, instead.

**Note2**: it's a bit laggy in Debug for me, but that's just because of
the extra-long `draw` times, which is unrelated to rendering (or
platform support, for the matter). I'm curious how come on MacOS the
`draw()` times in Debug are more modest.

Dzmitry Malyshau created

cab8b5a 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

d993dd3 Add .cljc, .edn, & .bb to Clojure filename extensions (#8285)

Click to expand commit body
Release Notes:

- Added .cljc, .edn, & .bb to Clojure filename extensions
([#7845](https://github.com/zed-industries/zed/issues/7845)).

Wes Morgan created

351e6a5 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

41949d7 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

0fbd0d6 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

69c7d0e oops

Conrad Irwin created

d3a38c6 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

7c514d0 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

a11ebe0 Fix Flashing Hover Popover (#8238)

Click to expand commit body
Release Notes:

- Use an inclusive range for local range containment check to match LSP
behavior & fix popover flashing while the cursor moves over the last
character of a symbol.


https://github.com/zed-industries/zed/assets/17223924/6c3ddc9c-04fb-4414-812f-025ede5ecaf7

ethan created

c5bb032 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

58fd843 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

008d99d Wayland: implement key repeat (#8038)

Click to expand commit body
Wayland requires the client to implement key repetition. This PR
implements the functionality as it's supposed to, but I don't see the
`repeat_info` event come in so the feature uses the default values (but
my system is configured for a much smaller `delay` and a much faster
`rate`). But this is good enough for now.

https://wayland-book.com/seat/keyboard.html#key-repeat


[Kooha-2024-02-20-20-42-12.webm](https://github.com/zed-industries/zed/assets/1423607/fb9fc327-efb7-43d1-9b53-1f8a3d9ba608)

Rom Grk created

3bc7cd6 Allow typing space in workspace::SendKeystrokes (#8288)

Click to expand commit body
Fixes #8222

Release Notes:

- N/A

Conrad Irwin created

b0872b5 Deploy the ZED_CLIENT_CHECKSUM_SEED too (#8289)

Click to expand commit body
Release Notes:

- N/A

Conrad Irwin created

602fd58 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

ed3bb68 Do not display inlay hints as bold (#8283)

Click to expand commit body
I think bold is the least fitting font weight for inlay hints, which
should be subtle hints and not, well, bold.

If someone feels strongly about this, I can revert, but only if we add
the ability to change this per theme.

Until then: beautiful, thin, subtle inlay hints!

Release Notes:

- Improved styling of inlay hints by not making them bold in the editor.


![screenshot-2024-02-23-17 30
29@2x](https://github.com/zed-industries/zed/assets/1185253/89c2a162-76bb-45cd-8b45-2a5bdf8ca87b)

Thorsten Ball created

522176d 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