Commit log

c686c4c v0.142.x preview

Peter Tripp created

5d766f6 linux: Fix some panics related to xkb compose (#13529)

Click to expand commit body
Release Notes:

- N/A

Fixed #13463 Fixed crash when the locale was non UTF-8 and fixed the
fallback locale.
Fixed #13010 Fixed crash when `compose.keysym()` was `XKB_KEY_NoSymbol`

I also extracted the `xkb_compose_state` to a single place

Fernando Tagawa created

18b4573 Fix font feature tag validation (#13542)

Click to expand commit body
The previous implementation that I implemented had two issues:
1. It did not throw an error when the user input some invalid values
such as "panic".
2. The feature tag for OpenType fonts should be a combination of letters
and digits. We only checked if the input was an ASCII character, which
could lead to undefined behavior.

Closes #13517 

Release Notes:

- N/A

张小白 created

d044dc8 Update Docker Compose configuration (#13530)

Click to expand commit body
- Fix Docker Compose obsolete setting

## Remove `version`

Fix the following error:

```
WARN[0000] /docker-compose.yml: `version` is obsolete
```

see also.
https://github.com/compose-spec/compose-spec/blob/master/spec.md#version-top-level-element-obsolete

## Rename: docker-compose.yml -> compose.yml

The preferred file name is now `compose.yml`.

> The default path for a Compose file is compose.yaml (preferred)

ref.
https://docs.docker.com/compose/compose-application-model/#the-compose-file

Release Notes:

- N/A

Toshimaru created

f00bea5 docs: Fix Decrease buffer font size key binding (#13453)

Click to expand commit body
Release Notes:

- N/A

Alexander Mankuta created

b43df60 Add an input example to gpui (#13534)

Click to expand commit body
Add a single-line text input example to gpui

(I'm hoping to be able to debug keyboard issues without rebuilding the
whole
app every time)

Release Notes:

- N/A

Conrad Irwin created

eb91468 Fix multi-cursor copy/paste on linux (#13523)

Click to expand commit body
The clipboard library we use for X11 doesn't yet support multiple
formats on the clipboard, so for now we just store this in memory for
the current zed process, as we do for Wayland.

Fixes: #11971

Release Notes:

- N/A

---------

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

Conrad Irwin and Mikayla Maki created

5b7e31c Add metrics_id to editor_events (#13525)

Click to expand commit body
Release Notes:

- N/A

Joseph T. Lyons created

922fcaf Add the ability to customize available models for OpenAI-compatible services (#13276)

Click to expand commit body
Closes #11984, closes #11075.

Release Notes:

- Added the ability to customize available models for OpenAI-compatible
services ([#11984](https://github.com/zed-industries/zed/issues/11984))
([#11075](https://github.com/zed-industries/zed/issues/11075)).


![image](https://github.com/zed-industries/zed/assets/32017007/01057e7b-1f21-49ad-a3ad-abc5282ffaf0)

ᴀᴍᴛᴏᴀᴇʀ created

9f88460 Move token count in prompt editor (#13524)

Click to expand commit body
Moves the token count back up to the editor header.

Release Notes:

- N/A

Nate Butler created

e5d1cf8 Fix 9263 (#13521)

Click to expand commit body
Fix #9263

Release Notes:

- N/A

Mikayla Maki created

41d2c52 Adjust keybindings for deletion in the project panel (#13326)

Click to expand commit body
- Improve compatibility keybindings (Atom, JetBrains, TextMate)
- Revert MacOS cmd+backspace regression. Should trash without prompting (like MacOS)

Co-authored-by: Peter Tripp <peter@zed.dev>

Mikayla Maki and Peter Tripp created

d1a55d6 Change `window_min_size` from `Size<Pixels>` to `Option<Size<Pixels>>` (#13501)

Click to expand commit body
Now we can set `window_min_size` to `None` instead of `Size::default()`.
I think this makes more sense.

Release Notes:

- N/A

张小白 created

db06244 typescript: Pass `hostInfo` to `tsserver` (#12055)

Click to expand commit body
- Added `hostInfo` property to zed's typescript plugin. This can be
useful for telemetry (for e.g. identifying the usage of editors based on
typescript usage) when building typescript plugins.

- VSCode / IntelliJ based editors already set this property
([see](https://github.com/microsoft/vscode/blob/aa31bfc9fd1746626b3efe86f41b9c172d5f4d23/extensions/typescript-language-features/src/typescriptServiceClient.ts#L574))

The config option as available —
https://github.com/typescript-language-server/typescript-language-server/blob/master/docs/configuration.md#initializationoptions

Release Notes:

- N/A

Shubham Kanodia created

597469b Remove blank line (#13519)

Click to expand commit body
This PR removes an extra blank line that was missed in #13518.

Release Notes:

- N/A

Marshall Bowers created

e0c192d Clean up `json!` literal for `vtsls` configuration (#13518)

Click to expand commit body
This PR cleans up the formatting of the `json!` literal used to provided
`vtsls` configuration.

Release Notes:

- N/A

Marshall Bowers created

b2a0a7f Fix a bug introduced by #13479 (#13516)

Click to expand commit body
Fixes a bug introduced by
https://github.com/zed-industries/zed/pull/13479 where dot files might
not be processed in the correct order.

Release Notes:

- N/A

Mikayla Maki created

0b1a589 keymap: Allow modifiers as keys (#12047)

Click to expand commit body
It is sometimes desirable to allow modifers to serve as keys themselves
for the purposes of keybinds. For example, the popular keybind in
jetbrains IDEs `shift shift` which opens the file finder.

This change treats modifers in the keymaps as keys themselves if they
are not accompanied by a key they are modifying.

Further this change wires up they key dispatcher to treat modifer change
events as key presses which are considered for matching against
keybinds.


Release Notes:

- Fixes #6460

---------

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

Dov Alperin and Conrad Irwin created

7e694d1 Fix an issue where provider settings were lost when switching between Ollama models (#13402)

Click to expand commit body
Closes #13399.

Release Notes:

- Fixed an issue where provider settings were lost when switching
between Ollama models
([#13399](https://github.com/zed-industries/zed/issues/13399)).

ᴀᴍᴛᴏᴀᴇʀ created

8904432 Prompt Library Refinements (#13470)

Click to expand commit body
TODO:

- [x] Moving the cursor out of the title editor should unselect any
selected text

Release Notes:

- N/A

---------

Co-authored-by: Antonio Scandurra <me@as-cii.com>
Co-authored-by: Richard <richard@zed.dev>

Nate Butler , Antonio Scandurra , and Richard created

b014f9f docs: Fix some typos (#13509)

Click to expand commit body
Minor fixes I came across while reading the docs.

Release Notes:

- N/A

Gilles Peiffer created

f40d231 Use string interpolation (#13482)

Click to expand commit body
Release Notes:

- N/A

---------

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

Hamir Mahal and Marshall Bowers created

2dee4f8 windows: Fix title bar font for Windows 10 (#13425)

Click to expand commit body
This should fix the title bar font for Windows 10 as `Segoe Fluent
Icons` is only for Windows 11 and Windows 10 should be using `Segoe MDL2
Assets`, I haven't tested this myself on a Windows 10 machine but the
fonts work fine.

Release Notes:

- N/A

Matin Aniss created

54afa6f Bump image crate (#13397)

Click to expand commit body
Bumping the image crate for better support of image formats.

The latest version does not have a `BGRA` type it only has `RGBA` it
doesn't really matter as the size is the same but the type name is a
little confusing as we need it as `BGRA`. Also there is no `into_bgra8`
but we can use `into_rgba8` but then it must be converted before
creating the `ImageData`.

Release Notes:

- N/A

Matin Aniss created

55511d1 JSON: Show package.json dependency tooltips on hover (#13481)

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

Release Notes:

- Added package version tooltips when hovering over package.json
dependency entries.

Piotr Osiewicz created

6c0cb9e project panel: Respect y offset of a click-and-drag on a scrollbar (#13506)

Click to expand commit body
Previously we've always snapped the scrollbar to the cursor position,
without regard for the position of the thumb.



Release Notes:

- N/A

Piotr Osiewicz created

24e7b69 Rust: fix module names not showing in completion list (#13505)

Click to expand commit body
This is a regression from
https://github.com/zed-industries/zed/issues/13043

Fixes https://github.com/zed-industries/zed/issues/13494



Release Notes:

- Fix crate names not being shown in Rust completions menu.

Piotr Osiewicz created

a4cdca5 Refine UX for assistants (#13502)

Click to expand commit body
<img width="1652" alt="image"
src="https://github.com/zed-industries/zed/assets/482957/376d1915-1e15-4d6c-966e-48f55f7cb249">


Release Notes:

- N/A

Antonio Scandurra created

86cd87e indent guides: Fix edge case when line is folded (#13498)

Click to expand commit body
https://github.com/zed-industries/zed/assets/53836821/6c79cdc8-c0e1-4f5e-807e-be4a4bde32c3



Release Notes:

- Fixed an edge case where some indent guides would disappear when a
folded line is the first visible line on screen

Bennet Bo Fenner created

88000eb Fix bug with inline assist and indentation on empty lines (#13489)

Click to expand commit body
Fix a minor bug when the inline assistant model spits out an empty line
with leading indentation on it. This happens sometimes with Claude 3.5
Sonnet and currently it causes the following line to have the wrong
indentation.

Release Notes:

- N/A

Tristan Hume created

ab5a462 Use likely-newer KeyPress serial for wl clipboard (#13483)

Click to expand commit body
The KeyEnter serial will be too old if another client replaces the
selection before the user unfocuses and refocuses the window (i.e.,
triggers another KeyEnter event).
The KeyPress event is more likely to be new enough.

Release Notes:

- Fixed setting clipboard sometimes not working on wayland
([#13445](https://github.com/zed-industries/zed/issues/13445)).

Matt Fellenz created

79430fc vim: Fix panic in search (#13487)

Click to expand commit body
Release Notes:

- vim: Fixed a panic when searching after focusing search bar with mouse

Conrad Irwin created

f96e4ba Add "Select Enclosing Symbol" command (#13435)

Click to expand commit body
I use this for a much faster workflow with inline assist when using fast
models.

Release Notes:

- Added "Select Enclosing Symbol" command based on tree-sitter outline.
Useful in combination with inline assist to rewrite a function.

Tristan Hume created

7be1ffb Add cross-compilation support from MacOS to Windows (#13382)

Click to expand commit body
- Modify `build.rs` to use environment variables instead of `cfg`
directive to make cross-compilation to Windows possible
- Make `embed-resource` a global build-dependency for cross-compilation

Release Notes:

- N/A

SELO created

93a5d0c Add limit to minimum window size (#13126)

Click to expand commit body
Release Notes:

- Add a limit to the minimum window size on macOS.

Here's the minimum window before change:
<img width="121" alt="image"
src="https://github.com/zed-industries/zed/assets/38318044/9e907194-42e5-457e-91ea-96613426b479">

After change:
<img width="410" alt="image"
src="https://github.com/zed-industries/zed/assets/38318044/6e9c3057-9860-4f4b-9a73-c158ebac5ba9">

Aaron Ruan created

328d98d windows: Make IME input on Windows consistent with that on macOS + some small fixs (#13386)

Click to expand commit body
### Before

![Screenshot 2024-06-22
180000](https://github.com/zed-industries/zed/assets/14981363/9efc3ccd-553c-4fe8-ada5-1b54f80bfbd5)

### After

![Screenshot 2024-06-22
175850](https://github.com/zed-industries/zed/assets/14981363/172675ca-9fda-45ae-bd97-59c33573a766)


Release Notes:

- N/A

张小白 created

76ab9e4 macOS: Fix IME action when deleting last char (#13385)

Click to expand commit body
Closes #12862 


https://github.com/zed-industries/zed/assets/14981363/170b1206-5894-4b90-bd5c-79761073d8f2


Release Notes:

- Fixed deleting the last character during IME composition would
mistakenly delete other characters.(#12862)

张小白 created

c477c12 x11: Fix handling of shift key (#13485)

Click to expand commit body
Fixes: #13306

Release Notes:

- N/A

Conrad Irwin created

1ffd87b Fix dev server projects reconnect (#13484)

Click to expand commit body
Release Notes:

- Improved handling of client reconnects for dev-servers (alpha group
only)

Conrad Irwin created

df11b64 Fix Linux search issues (#13479)

Click to expand commit body
In some rare cases, we wouldn't pick up .gitignore files in the right
order, causing performance issues for the project search and the file
finder

Release Notes:

- N/A

Mikayla Maki created

ed94bd4 Reorganize Quick Action Bar (#13476)

Click to expand commit body
This PR:

- Moves the selection menu to the end with the editor settings menu
- Tidies up labels in the settings menu
- Minor spacing updates

Release Notes:

- Improved organization in the Quick Action Bar

Nate Butler created

8949460 fix cli welcome screen (#13474)

Click to expand commit body
Release Notes:

- Fixed first launch via cli

---------

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

Conrad Irwin and Mikayla created

c6c5907 Fix unnecessary gitignore status updates due to failure to clear 'needs update' flag (#13471)

Click to expand commit body
I found this bug while investigating
https://github.com/zed-industries/zed/issues/13176. When running zed
with `RUST_LOG=worktree=trace`, I realized we were updating all
gitignore statuses on every file change. This was due to a logic error
where we were marking a gitignore as up-to-date on a temporary *clone*
of our snapshot, but not in the `BackgroundScanner` itself.

Release Notes:

- Fixed a bug that caused unnecessary computations to happen on every
file-system event.

Max Brunsfeld created

dea928b vim: Allow count and repeat for "r" and "shift-r" action (#13287)

Click to expand commit body
Fixing the "r" action just involved adapting `normal_replace` to replace
multiple characters.

Fixing the "shift-r" command was less straightforward. The bindings for
`vim::BeforeNormal` in replace mode were being overwritten and several
other steps required for action repetition were not performed. Finally,
the cursor adjustment after re-entering normal mode was duplicated
(`vim::BeforeNormal` was now triggered correctly) so I removed the
special case for replace mode.

Release Notes:

- Fixed vim "r" action to accept a count argument
- Fixed vim "shift-r" action to accept a count argument and allow
repetition

---------

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

Benjamin Davies and Conrad Irwin created

77b2da2 vim: Surround in visual mode (#13347)

Click to expand commit body
Adds support for surrounding text in visual/visual-line/visual-block
mode by re-using the `AddSurrounds` operator. There is no default
binding though so the user must follow the instructions to enable it.

Note that the behaviour varies slightly for the visual-line and
visual-block modes. In visual-line mode the surrounds are placed on
separate lines (the vim-surround extension also indents the contents but
I opted not to as that behaviour is less important with the use of code
formatters). In visual-block mode each of the selected regions is
surrounded and the cursor returns to the beginning of the selection
after the action is complete.

Release Notes:

- Added action to surround text in visual mode (no default binding).

Fixes #13122

Benjamin Davies created

5a8c2a4 linux/x11: Prioritize rendering in X11 event loop (#13468)

Click to expand commit body
This is a small change that aims to address frames being dropped when we
get a ton of X11 input events.

What it does, in short, is to first read all X11 input events and then
prioritize the rendering.

In my testing, it causes less frames to be dropped when the system is
under heavy load and lots of input events are being created.

Release Notes:

- N/A

Thorsten Ball created

d46e494 chore: Take down codegen-units in dev builds to 16 (#13466)

Click to expand commit body
codegen-units determines how many object files are used when building a
single crate. By default it is set to 256 in dev builds and to 16 in
release builds. Higher values can get in the way of optimizations, but
they should help when performing an incremental build (as higher
granularity means that it's less likely we'd have to rebuild the whole
crate). When we were tinkering with Linux builds we found that we're
spreading ourselves too thin at times; large values of codegen-units
were making builds of smaller crates, such as file_finder, redundantly
long, where some CGs were miniscule. This PR significantly reduces the #
of CGs we use in dev builds. This means that an incremental build of a
crate might have to rebuild a bit more, but overall, we should be
spending *less* time in multicrate builds.

As a result of this change, incremental build of gpui (`cargo build;
touch crates/gpui/src/gpui.rs; cargo build`) goes down from 29-32s to
22s on my machine. Same scenario for editor: 13s to 11s. I've ran `cargo
clean` before executing each run



Release Notes:

- N/A

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

Piotr Osiewicz and Thorsten created

8243507 Revert "linux/x11: Reduce input latency and ensure rerender priority (#13355)" (#13465)

Click to expand commit body
This reverts commit f69c8ca74eb934f37d29cbe2f6ee31f94c7aaf63 after it
has already been partially reverted in
https://github.com/zed-industries/zed/pull/13458.

Why the revert?

The changes in that commit/PR fix one type of problem — dropping of
frames when being blasted with input events — but trades it for another
one that I can't explain yet: when the system is under load, then input
becomes _laggy_ and input events seem to be delayed.

Two examples of how that shows up:

1. When the system is under load* and you hold down the `down` key to
scroll, then lift the finger, the cursor stops sometimes. If you then
produce another input event by jiggling the mouse cursor you'll see more
`down`-key events coming up and the cursor moving down. It feels as if
the event loop is not being woken up even though there are still events.
I suspect it might have something to do with XIM, because if it's
disabled, it seems as if problems become less severe.
2. When the system is under load* and you click-and-drag a selection in
the editor, you can see how the selection is delayed and takes 500ms-1s
to catch up to where the cursor is.

* system under load: start Zed, then in another terminal window create a
release build of Zed, for example.

With the changes reverted, the failure mode looks different: we skip
frames. But that, I think, is the better of two bad options, because
skipping frames means that you see what's happening vs. input events
seemingly still coming in seconds after you stopped using the keyboard.

Release Notes:

- N/A

Thorsten Ball created

40748b0 autosave: Respect project autosave settings per file (#13369)

Click to expand commit body
This fixes #13316 by checking whether there are any local workspace
settings for a given file.

Release Notes:

- Fixed `autosave` settings in project-specific settings file being
ignored. ([#13316](https://github.com/zed-industries/zed/issues/13316)).

Co-authored-by: Bennet <bennet@zed.dev>

Thorsten Ball and Bennet created

3ee3c6a cargo: Add release-fast profile (#13464)

Click to expand commit body
This saves us ~1min of linking time on my Linux machine.

Release Notes:

- N/A

Co-authored-by: Piotr <piotr@zed.dev>

Thorsten Ball and Piotr created