Commit log

5361a4d Windows: Better cursor (#9451)

Click to expand commit body
Moved `SetCursor` calls to `WM_SETCURSOR`, which occurs when OS is
requires set cursor.

Release Notes:

- N/A

白山風露 created

053d05f Bump Tree-sitter for inclusion of strncat in wasm c stdlib

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

Max Brunsfeld and Marshall created

0981c97 extension_cli: Clear out existing manifest collections for old `extension.json` (#9780)

Click to expand commit body
This PR fixes an issue in the extension CLI when building extensions
using the old manifest schema (`extension.json`).

If there were values provided for the `languages`, `grammars`, or
`themes` collections, these could interfere with the packaging process.

We aren't expecting these fields to be set in the source
`extension.json` (just in the generated one), so we can clear them out
when building up the manifest.

Release Notes:

- N/A

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

Marshall Bowers and Max created

eec8660 Use `.is_some_and()` instead of `.is_some() && .unwrap()` (#9704)

Click to expand commit body
That's nicer & more readable.

(I just noticed that this looks weird while trying to understand why zed
changes my cursor, so decided to make a quick fix (btw the issue with
the cursor is that zed always loads cursor named "default" on wayland))

Release Notes:

- N/A

---------

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

Waffle Maybe and Marshall Bowers created

e3894a4 Document main workspace structs (#9772)

Kirill Bulatov created

f838845 Change maximum height of TitleBar (#9758)

Click to expand commit body
<img width="209" alt="image"
src="https://github.com/zed-industries/zed/assets/38318044/0dcc4d0b-db9e-4eba-aa36-5c35f185e7e3">

Release Notes:

- Fixed alignment of items in the title bar
([#9709](https://github.com/zed-industries/zed/issues/9709)).

Aaron Ruan created

a7047f6 chore: Revert "gpui: update dependencies" (#9774)

Click to expand commit body
Reverts zed-industries/zed#9741

/cc @niklaswimmer it looks like that PR change broke our rendering of
avatars (as @bennetbo found out) - they have a blue-ish tint now, which
I suppose might have to do with change between BGRA and RGBA. I'm gonna
revert it for now, let's reopen it though.


![image](https://github.com/zed-industries/zed/assets/24362066/3078d9c6-9638-441b-8b32-d969c46951e0)

Release Notes:

- N/A

Piotr Osiewicz created

6776688 Fix Prisma indentation size (#9753)

Click to expand commit body
This PR fixes #9567 

Release Notes:

- Changed default indentation for Prisma files to 2 spaces
([#9567](https://github.com/zed-industries/zed/issues/9567)).

Ko created

7f9355e windows: update text system to new cosmic version

Click to expand commit body
The same changes have been used on linux here 500350403124a8faffc67a5162bc7745a1bac6af
and here 34832d49b09071846ff6f55f8ca1df019980a1df.

Signed-off-by: Niklas Wimmer <mail@nwimmer.me>

Niklas Wimmer created

6a22c8a gpui: Update image dependency

Click to expand commit body
The latest update to resvg bumped some transitive dependencies
which lead to duplicates. The update to the image dependency
unifies most of their versions again.

Most notably, gif and kurbo are still duplicated, which is best fixed
downstream however.

Signed-off-by: Niklas Wimmer <mail@nwimmer.me>

Niklas Wimmer created

007acc4 gpui: Update cosmic-text and resvg dependency

Click to expand commit body
This unifies the rustybuzz dependency to the same version.

Signed-off-by: Niklas Wimmer <mail@nwimmer.me>

Niklas Wimmer created

97f1d61 gpui: make build dependencies mac only

Click to expand commit body
This removes bindgen and cbindgen from the dependency graph on non-macos
systems, improving compile times on those systems.

Signed-off-by: Niklas Wimmer <mail@nwimmer.me>

Niklas Wimmer created

50ab60b gpui: update ashpd and open dependency

Click to expand commit body
The ashpd update removes the dependency on an older zbus version which
decreases compile times.

Signed-off-by: Niklas Wimmer <mail@nwimmer.me>

Niklas Wimmer created

4785520 Support newline and tab literals in regex search-and-replace operations (#9609)

Click to expand commit body
Closes #7645

Release Notes:

- Added support for inserting newlines (`\n`) and tabs (`\t`) in editor
Regex search replacements
([#7645](https://github.com/zed-industries/zed/issues/7645)).

Mayfield created

eb3264c change HashSet to BTreeSet (#9734)

Click to expand commit body
I found that there may be some minor problems here, in editor.edit may
be more dependent on the order of operations, if the same set of
operations, different execution orders may lead to some different
results, so maybe we need to use BTreeSet instead of HashSet, because
HashSet may not be able to ensure that the same set of data order is
consistent, but maybe my worries are too much

Release notes:

- N/A

Hans created

e77d313 markdown preview: Improve task list visuals (#9695)

Click to expand commit body
Instead of using some arbitrary unicode characters to render a task as
completed/not completed, I feel that using an actual checkbox from the
components crate makes it look more polished.

Before:

![image](https://github.com/zed-industries/zed/assets/53836821/700de8f8-2e01-4e03-b237-e3da2971f039)

After:

<img width="883" alt="image"
src="https://github.com/zed-industries/zed/assets/53836821/f63d56c3-bfbb-41c8-b150-8ebf973f75e2">


Release Notes:

- Improved visuals of task lists inside the markdown preview

Bennet Bo Fenner created

5181d3f Workspace configuration for elixir-ls LSP (#9330)

Click to expand commit body
This allows the workspace configuration settings to be passed to the
elixir-ls LSP via lsp settings.

This following example settings disable dialyzer in the LSP:

```
"lsp": {
  "elixir-ls": {
    "settings": {
      "dialyzerEnabled": false
    }
  }
}
```

It follows the same pattern used in
[#8568](https://github.com/zed-industries/zed/pull/8568) and resolves
[#4260](https://github.com/zed-industries/zed/issues/4260).

Zed's language server logs show the settings are being sent to the
language server:

```
Received client configuration via workspace/configuration
%{"dialyzerEnabled" => false}
Registering for workspace/didChangeConfiguration notifications
Starting build with MIX_ENV: test MIX_TARGET: host
client/registerCapability succeeded
Registering for workspace/didChangeWatchedFiles notifications
client/registerCapability succeeded
Received workspace/didChangeConfiguration
Received client configuration via workspace/didChangeConfiguration
%{"dialyzerEnabled" => false}
```

Release Notes:

- Added workspace configuration settings support for elixir-ls language
server. Those can now be configured by setting `{"lsp": {"elixir-ls": {
"settings: { "your-settings-here": "here"} } }` in Zed settings.
[#4260](https://github.com/zed-industries/zed/issues/4260).

Richard Taylor created

6d78737 markdown preview: Insert missing line break on hard break (#9687)

Click to expand commit body
Closes #8990

For this input
```
Test \
Test
```

pulldown_cmark reports
```
Start(Paragraph)
Text(Borrowed("Test "))
HardBreak
Text(Borrowed("Test"))
End(Paragraph)
```

Previously `Event::HardBreak` just marked the paragraph block as
completed and ignored all the remaining text inside the paragraph.

Before:
See https://github.com/zed-industries/zed/issues/8990#issue-2173197637

After:

![image](https://github.com/zed-industries/zed/assets/53836821/48237ea6-d749-4207-89a3-b0f146b0e544)


Release Notes:

- Fixed markdown preview not handling hard breaks (e.g. `\`) correctly
([#8990](https://github.com/zed-industries/zed/issues/8990)).

Bennet Bo Fenner created

7367350 Use upstream cargo-about

Max Brunsfeld created

478e2a2 Add license symlinks for svelta and uiua extensions

Max Brunsfeld created

6ebe599 Fix issues with extension API that come up when moving Svelte into an extension (#9611)

Click to expand commit body
We're doing it. Svelte support is moving into an extension. This PR
fixes some issues that came up along the way.

Notes

* extensions need to be able to retrieve the path the `node` binary
installed by Zed
* previously we were silently swallowing any errors that occurred while
loading a grammar
* npm commands ran by extensions weren't run in the right directory
* Tree-sitter's WASM stdlib didn't support a C function (`strncmp`)
needed by the Svelte parser's external scanner
* the way that LSP installation status was reported was unnecessarily
complex

Release Notes:

- Removed built-in support for the Svelte and Gleam languages, because
full support for those languages is now available via extensions. These
extensions will be suggested for download when you open a `.svelte` or
`.gleam` file.

---------

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

Max Brunsfeld and Marshall created

4459eac Improve the clarity of multi buffer headers (#9722)

Click to expand commit body
<img width="544" alt="Screenshot 2024-03-22 at 3 23 09 PM"
src="https://github.com/zed-industries/zed/assets/2280405/83fde9ad-76e1-4eed-a3f2-bc25d5a88d84">

Release Notes:


- Improved the clarity of the UI for diagnostic and search result
headers

Mikayla Maki created

16a2013 Update to vscode-eslint 2.4.4 & support flat config file extensions (#9708)

Click to expand commit body
This upgrades to vscode-eslint 2.4.4 to support flat configs, in
multiple configuration files, ending in `.js`, `.cjs`, `.mjs`.

We changed the code to not use the GitHub release because we actually
don't need the artifacts of the release, we just need the source code,
which we compile anyway.

Fixes #7271.

Release Notes:

- Added support for ESLint flat config files.
([#7271](https://github.com/zed-industries/zed/issues/7271)).

Co-authored-by: Kristján Oddsson <koddsson@gmail.com>

Thorsten Ball and Kristján Oddsson created

c6d4797 Add setting to allow disabling the Assistant (#9706)

Click to expand commit body
This PR adds a new `assistant.enabled` setting that controls whether the
Zed Assistant is enabled.

Some users have requested the ability to disable the AI-related features
in Zed if they don't use them. Changing `assistant.enabled` to `false`
will hide the Assistant icon in the status bar (taking priority over the
`assistant.button` setting) as well as filter out the `assistant:`
actions.

The Assistant is enabled by default.

Release Notes:

- Added an `assistant.enabled` setting to control whether the Assistant
is enabled.

Marshall Bowers created

4dc61f7 Extensions registering tasks (#9572)

Click to expand commit body
This PR also introduces built-in tasks for Rust and Elixir. Note that
this is not a precedent for future PRs to include tasks for more
languages; we simply want to find the rough edges with tasks & language
integrations before proceeding to task contexts provided by extensions.

As is, we'll load tasks for all loaded languages, so in order to get
Elixir tasks, you have to open an Elixir buffer first. I think it sort
of makes sense (though it's not ideal), as in the future where
extensions do provide their own tasks.json, we'd like to limit the # of
tasks surfaced to the user to make them as relevant to the project at
hand as possible.

Release Notes:

- Added built-in tasks for Rust and Elixir files.

Piotr Osiewicz created

cb4f868 remoting (#9680)

Click to expand commit body
This PR provides some of the plumbing needed for a "remote" zed
instance.

The way this will work is:
* From zed on your laptop you'll be able to manage a set of dev servers,
each of which is identified by a token.
* You'll run `zed --dev-server-token XXXX` to boot a remotable dev
server.
* From the zed on your laptop you'll be able to open directories and
work on the projects on the remote server (exactly like collaboration
works today).

For now all this PR does is provide the ability for a zed instance to
sign in
using a "dev server token". The next steps will be:
* Adding support to the collaboration protocol to instruct a dev server
to "open" a directory and share it into a channel.
* Adding UI to manage these servers and tokens (manually for now)

Related #5347

Release Notes:

- N/A

---------

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

Conrad Irwin and Nathan created

f56707e Assign OPENAI_API_KEY from a k8s secret in the collab deployment (#9703)

Click to expand commit body
Merging this eagerly because it's just a configuration change, and I want to test it on staging.

Nathan Sobo created

ce57db4 chat panel: Fix tooltips not working for links (#9691)

Click to expand commit body
Closes #9418 

Noticed a difference in the `cx.set_tooltip(...)` calls between `div`
and `InteractiveText`. `div` calls `cx.set_tooltip(...)` inside
`after_layout`, but `InteractiveText` was calling this inside `paint`. I
believe as #9012 was merged, we need to call `cx.set_tooltip` inside
`after_layout`, as inserting inside `paint` does not seem to be
supported anymore.

I moved the code for setting the tooltip to `after_layout` and hovering
over links inside the chat seems to bring up the tooltips again.

Before:

See https://github.com/zed-industries/zed/issues/9418#issue-2189398784

After:


![image](https://github.com/zed-industries/zed/assets/53836821/a623164c-1ce0-40d7-bc53-020f176fba4a)


Release Notes:

- Fixed tooltip not showing up when hovering over links inside the chat
panel ([#9418](https://github.com/zed-industries/zed/issues/9418))

Bennet Bo Fenner created

945d8c2 Revert "Revert "chore: Bump Rust version to 1.77 (#9631)"" (#9672)

Click to expand commit body
Reverts zed-industries/zed#9658, as the Docker image is now available.

Release notes:

- N/A

Piotr Osiewicz created

ae6f138 Fix `compute_width_for_char` (#9643)

Click to expand commit body
Release Notes:

- N/A

张小白 created

6d5787c Hard code max token counts for supported models (#9675)

Nathan Sobo created

441677c Fix typo (mimized -> minimized) (#9674)

Daniel Zhu created

95b2f4c linux: fix word move/select shortcuts (#9673)

Click to expand commit body
`alt+left/right` are never used on Linux.
The Linux keymap still has some other issues, but these shortcuts in
particular are really common when editing text.

Release Notes:

- N/A

apricotbucket28 created

0f15fd3 windows: User installed language server support (#9606)

Click to expand commit body
Release Notes:

- N/A

Ezekiel Warren created

4183805 windows: fix window activate action (#9664)

Click to expand commit body
Now, the window activation event can be triggered correctly. As shown in
the video, when the window is activated, the caret blinks; when the
window loses activation due to me clicking on the PowerShell window, the
caret stops blinking.



https://github.com/zed-industries/zed/assets/14981363/4c1b2bec-319d-4f21-879e-5a0af0a00d8e



Release Notes:

- N/A

张小白 created

eaa8032 Fix error handling in buffer open (#9667)

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

Release Notes:

- N/A

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

Conrad Irwin , Max , and Marshall created

caed275 Revert "language: Remove buffer fingerprinting (#9007)"

Click to expand commit body
This reverts commit 6f2f61c9b1bf7a7285ba2a27d10c4c7a6022e670.

Conrad Irwin created

35e3935 Fix invalid highlight position for `(edited)` text (#9660)

Click to expand commit body
This pull request fixes a bug that was inserting the wrong position for
the `(edited)` text. This is only an issue when you have other styling
inside the markdown that causes the `richt_text.text.len()` to increase.

**Before**
<img wdth="234" alt="Screenshot 2024-03-21 at 19 53 34"
src="https://github.com/zed-industries/zed/assets/62463826/bf9e7fec-1563-415b-9b14-f7b95fc7d784">
**After**
<img width="234" alt="Screenshot 2024-03-21 at 19 53 48"
src="https://github.com/zed-industries/zed/assets/62463826/c0b7ba3a-5bdc-4b9e-a4f2-c3df4064f0ec">

Release Notes:

- N/A

Remco Smits created

3b7cd9c Remove incorrect venv base directory used (#9661)

Click to expand commit body
Follow-up of https://github.com/zed-industries/zed/pull/8444

Release Notes:

- N/A

Stanislav Alekseev created

1e543b9 windows: implement `IME` caret movement and editing while composing (#9659)

Click to expand commit body
https://github.com/zed-industries/zed/assets/14981363/598440f7-0364-4053-9f44-710291f8aa92



Release Notes:

- N/A

张小白 created

d557f8e Revert "chore: Bump Rust version to 1.77 (#9631)" (#9658)

Click to expand commit body
This reverts commit 6184278faf3a4c4034b3b3488a5ec71ef50b5274.

We can't upgrade to Rust 1.77 until there are Rust 1.77 Docker images
available
(https://github.com/docker-library/official-images/pull/16457).


Release Notes:

- N/A

Marshall Bowers created

b6201a3 Check for user installed clangd (#9605)

Click to expand commit body
Release Notes:

- Improved C/C++ support using user installed clangd when available

Ezekiel Warren created

85fdcef Do not enable venv in terminal for bash-like oneshot task invocations (#8444)

Click to expand commit body
Release Notes:
- Work around #8334 by only activating venv in the terminal not in tasks
(see #8440 for a proper solution)
- To use venv modify your tasks in the following way:
```json
{
  "label": "Python main.py",
  "command": "sh",
  "args": ["-c", "source .venv/bin/activate && python3 main.py"]
}
```

---------

Co-authored-by: Kirill Bulatov <kirill@zed.dev>

Stanislav Alekseev and Kirill Bulatov created

cd61297 collab: Bump minimal client version to 0.127.3 (#9649)

Click to expand commit body
Release Notes:

- N/A

Piotr Osiewicz created

e07192e Implement is_minimized for macOS (#9651)

Click to expand commit body
Release Notes:

- N/A

Mikayla Maki created

adcb591 extension_cli: Populate grammars from `grammars` directory for legacy extension formats (#9650)

Click to expand commit body
This PR makes the extension CLI populate the grammars in the manifest
from the contents of the `grammars` directory for legacy extensions
using the `extension.json` format (`schema_version == 0`).

This allows us to continue packaging these older extensions until they
can be migrated to the new schema version.

Release Notes:

- N/A

Marshall Bowers created

d89905f Fix `IME` window position with scale factor greater than 1.0 (#9637)

Click to expand commit body
In #9456 I forgot to handle this...

Release Notes:

- N/A

张小白 created

e1d1d57 Windows: Fix XButton direction (#9629)

Click to expand commit body
Release Notes:

- N/A

白山風露 created

3fd62a2 windows: display icon (#9571)

Click to expand commit body
Now `Zed` can display icons. The image below shows the icon of the
`zed.exe` file and the icon in the right-click properties.

![Screenshot 2024-03-20
181054](https://github.com/zed-industries/zed/assets/14981363/8f1ccc7f-aab0-46cf-8c32-a3545ba710a3)

I used the `crates\zed\resources\app-icon@2x.png` file to generate the
`.ico` file. Due to some blank space around the logo in the original
file, the logo appears slightly smaller on Windows compared to other
software.

![Screenshot 2024-03-20
181155](https://github.com/zed-industries/zed/assets/14981363/874c5ed3-6796-428c-9a91-f91231bb6510)

The current `.ico` file contains logo files of multiple sizes: 16x16,
24x24, 32x32, 48x48, 64x64, 96x96, 128x128, 256x256, 512x512.

Release Notes:

- N/A

张小白 created

f179158 windows: Avoid recording minimized position to database (#9407)

Click to expand commit body
Minimizing window records strange position to DB. When Zed is restarted,
the window goes far away.
<img width="975" alt="image"
src="https://github.com/zed-industries/zed/assets/6465609/98dbab71-fdbb-4911-b41a-9c3e498e5478">

So I fixed.

Release Notes:

- N/A

白山風露 created