Commit log

981a143 copilot: Update root path on Windows (#11613)

Click to expand commit body
This PR updates the root path used by Copilot to be a validate path when
running on Windows.

Release Notes:

- N/A

Co-authored-by: Jason Lee <huacnlee@gmail.com>

Marshall Bowers and Jason Lee created

5e06ce4 Add `zip` extract support for Windows (#11156)

Click to expand commit body
Release Notes:

- [x] Fixed install Node.js runtime and NPM lsp installation on Windows.
- [x] Update Node runtime command to execute on Windows with no window
popup.

Ref #9619, #9424

---------

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

Jason Lee and Marshall Bowers created

3bd53d0 chore: Bump taffy version to 0.4.3 (#11606)

Click to expand commit body
Taffy 0.4 has been released 2 months ago. We've been using an older
commit from their 0.4 development branch since November.
Compared to the commit we were pinned to, the following relevant changes
have been made:
-
https://github.com/DioxusLabs/taffy/commit/563d5dcee7b9138b4c3f865155d036a8b7597e65
-
https://github.com/DioxusLabs/taffy/commit/64f8aa0fb114d939ca0d53ddc44045a03fde548d
-
https://github.com/DioxusLabs/taffy/commit/70b35712a2e79b6fdfef4cff4392ca94287cd0b1

![image](https://github.com/zed-industries/zed/assets/24362066/ffdfae03-2743-496f-bb21-7aa38462178f)

Release Notes:

- N/A

Piotr Osiewicz created

7653557 Task indicators in multibuffers (#11603)

Click to expand commit body
Following #11487 the task indicators would no longer show up in
multibuffers.
Release Notes:

- N/A

Piotr Osiewicz created

fdcedf1 editor: Do not show test indicators if a line is folded (#11599)

Click to expand commit body
Originally reported by @RemcoSmitsDev



Release Notes:

- N/A

Piotr Osiewicz created

bd6d385 gpui: Pass Style by value to request_layout (#11597)

Click to expand commit body
A minor thing I've spotted and decided to fix on the spot.
It was being cloned twice within the body of that function (one of which
was redundant even without this PR); now in most cases we go down from 2
clones to 0.
Release Notes:

- N/A

Piotr Osiewicz created

5df1481 Introduce a new `markdown` crate (#11556)

Click to expand commit body
This pull request introduces a new `markdown` crate which is capable of
parsing and rendering a Markdown source. One of the key additions is
that it enables text selection within a `Markdown` view. Eventually,
this will replace `RichText` but for now the goal is to use it in the
assistant revamped assistant in the spirit of making progress.

<img width="711" alt="image"
src="https://github.com/zed-industries/zed/assets/482957/b56c777b-e57c-42f9-95c1-3ada22f63a69">

Note that this pull request doesn't yet use the new markdown renderer in
`assistant2`. This is because we need to modify the assistant before
slotting in the new renderer and I wanted to merge this independently of
those changes.

Release Notes:

- N/A

---------

Co-authored-by: Nathan Sobo <nathan@zed.dev>
Co-authored-by: Conrad <conrad@zed.dev>
Co-authored-by: Alp <akeles@umd.edu>
Co-authored-by: Zachiah Sawyer <zachiah@proton.me>

Antonio Scandurra , Nathan Sobo , Conrad , Alp , and Zachiah Sawyer created

ddaaaee docs: Fix a typo (#11588)

Click to expand commit body
This PR fixes a typo in docs/src/development/debugging-crashes.md.

Release Notes:

- N/A

Doy Bachtiar created

9772b7a windows: Fix `Zed` freezing when resuming from sleep (#11589)

Click to expand commit body
It seems that on the first frame after the system resumes from sleep,
`dcomp_vsync_fn` mistakenly detects the `timer_stop_event` triggering
and exits the loop.

Release Notes:

- N/A

张小白 created

2e0811e windows: Improve platform clipboard (#11553)

Click to expand commit body
I thought platform clipboard should share one ctx. and fixed in vim
mode, read from clipboard crash when using `unwrap`.

Release Notes:

- N/A

CharlesChen0823 created

1b292d2 Fix crash when the length of a line is greater than 1024 chars (#11536)

Click to expand commit body
Close #11518 

Release Notes:

- N/A

张小白 created

adecbd1 Make Markdown default to `"format_on_save": "off"` (#11584)

Click to expand commit body
This PR changes the Markdown language defaults to set `format_on_save`
to be `off`.

Prettier's Markdown formatting is a bit controversial for some people,
so we turn it off by default.

To restore the previous behavior, add the following to your settings:

```json
{
  "languages": {
    "Markdown": {
      "format_on_save": "on"
    }
  }
}
```


Release Notes:

- Changed the default `format_on_save` behavior for Markdown files to be
`off`.

Marshall Bowers created

a7aa257 Implement serialization of assistant conversations, including tool calls and attachments (#11577)

Click to expand commit body
Release Notes:

- N/A

---------

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

Max Brunsfeld , Kyle , and Marshall created

24ffa0f Don't panic on failure to allocate an AtlasTile (#11579)

Click to expand commit body
Release Notes:

- Fixed a panic in graphics allocation

Conrad Irwin created

b0494d1 Pass hover position as an anchor (#11578)

Click to expand commit body
It's too easily to accidentally pass a point from one snapshot into
another

Release Notes:

- Fixed a panic in show hover

Conrad Irwin created

a89dc8c blade: Switch to linear color space (#11534)

Click to expand commit body
Release Notes:

- N/A

## What

Addresses a long-standing issue of doing the blending operations in sRGB
space. Currently, the input HSL colors are provided in sRGB space and
converted to linear in the vertex shader. Conversion back to sRGB, which
is required on most platforms today, happens at the very end of the
pipeline when writing into sRGB render target.

Note-1: in the future we may consider doing HSL -> sRGB -> Linear
transform on CPU before feeding into shaders. However, I don't expect
any significant difference here given that we are likely bound by fill
rate and pixel shaders, anyway.

Note-2: the graphics stack is programmed to detect if the platform
supports presenting in linear color space and avoids converting to sRGB
at the end in this case. However, on my Z13 laptop this isn't supported
by the RADV driver.

Closes #7684 
Closes #11462
@jansol please confirm if you can!

## Comparison

Screenshot of the Glazier theme before the change:

![glazier-old](https://github.com/zed-industries/zed/assets/107301/6a9552e1-0819-4a4e-8121-8d62ec012bf4)
Same theme after the change:

![glazier-new](https://github.com/zed-industries/zed/assets/107301/4e61c422-4a4b-4c4b-84a3-55680626d681)

Dzmitry Malyshau created

d103903 Style header for assistant2 (#11570)

Click to expand commit body
Release Notes:

- N/A

Nate Butler created

ec3aabe windows: Fix crash when saving files to disk (#11547)

Click to expand commit body
closes #11544, sorry for introduce this issue by pre pr.
Release Notes:

- N/A

CharlesChen0823 created

4b98c35 windows: Let IME early return in vim mode (#11551)

Click to expand commit body
This PR follows up #11387 , slightly changes the IME window behavior to
match macOS implementation.

Release Notes:

- N/A

张小白 created

5103995 windows: Fix incorrect font rendering (#11545)

Click to expand commit body
Previously, `DirectWrite` had been following the text system
implementation on `macOS`, using the font's postscript name to
differentiate between different font faces. However, I noticed
occasional rendering issues, such as fonts incorrectly rendering as
italics. Later, I discovered that on `Windows`, the postscript name is
**not** unique. Surprisingly, even the same font can have different
postscript names on macOS and Windows! It's hard to believe! The
postscript name of a font face should be obtained from the same font
table. Why would the same font face have different names?

For example, the postscript name of ZedMono on `macOS` is
`Zed-Mono-Bold-Extended-Italic`, while on `Windows`, it is
`Zed-Mono-Extended`, missing weight and style information, leading to
incorrect rendering.

This PR introduces a `FontIdentifier` struct to uniquely identify font
faces.

Release Notes:

- N/A

张小白 created

fb4c6db windows: Implement `ResizeColumn` and `ResizeRow` cursor style (#11533)

Click to expand commit body
This PR follows up #11406

Release Notes:

- N/A

张小白 created

91c1716 Fix horizontal scrolling direction on Windows (#11520)

Click to expand commit body
As per Microsoft documentation, positive values scroll right, not left.
GPUI was incorrectly assuming it perfectly mirrored vertical scrolling.

Fixes #11515

Release Notes:

- N/A

LoganDark created

0933426 Editor tab bar settings (#7356)

Click to expand commit body
This PR is another step to tabless editing (#6424, #4963). It adds
support for tab bar settings that allow the user to change its placement
or to hide completely.

Configuraton:

```json
"tab_bar": {
  "show": true
}
```

Placemnet options are "top", "bottom" and "no".

This PR intentionally doesn't affect tab bars of other panes (Terminal
for instance) to keep code changes small. I guess we'll do the rest in
separate PRs.

Release Notes:

- Added support for configuring the editor tab bar (part of #6424,
#4963).

---------

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

Andrew Lygin and Mikayla created

689e4ae Render messages as early as possible to show progress (#11569)

Click to expand commit body
This shows "Researching..." as placeholder text as early as possible so
that the user can see the model is working on reading/researching/etc.

This also adds on an `Option<Value>` to the `render_running` function so
that tools can hopefully render based on partially completed JSON (still
to come).

Release Notes:

- N/A

Kyle Kelley created

dbebb40 linux: Store binary path before restart to handle deleted binary file (#11568)

Click to expand commit body
This fixes restart after updates not working on Linux.

On Linux we can't reliably get the binary path after an update, because
the original binary was deleted and the path will contain ` (deleted)`.

See: https://github.com/rust-lang/rust/issues/69343

We *could* strip ` (deleted)` off, but that feels nasty. So instead we
save the original binary path, before we do the installation, then
restart.

Later on, we can also change this to be a _new_ binary path returned by
the installers, which we then have to start.


Release Notes:

- N/A

Thorsten Ball created

d2cec02 Run windows CI on our own GH-hosted windows runner (#11567)

Click to expand commit body
It's a 16-core runner.

Release Notes:

- N/A

Max Brunsfeld created

724acaa v0.136.x dev

Joseph T. Lyons created

ffa2d90 Return prettier entry back to LSP logs (#11563)

Click to expand commit body
Fixes prettier entries disappeared after
https://github.com/zed-industries/zed/pull/10788

Release Notes:

- N/A

Kirill Bulatov created

5c2ec17 docs: Fix default value for `formatter` setting (#11560)

Click to expand commit body
This PR fixes the default value for the `formatter` setting listed in
the docs.

The default value is `"auto"`:
https://github.com/zed-industries/zed/blob/194c43b84b4c2b0f2e78d8ef533bb99b6916f38c/assets/settings/default.json#L367

Resolves #11468.

Release Notes:

- N/A

Marshall Bowers created

2671b9c Fix alignment of code actions menu with narrow panes

Piotr Osiewicz created

68fe2bb Do away with display points in toggle_code_actions

Piotr Osiewicz created

65f7238 editor: Fix task indicator layout for wrapped lines

Piotr Osiewicz created

ca680f0 branch picker: Always show HEAD first (#11552)

Click to expand commit body
I think this is a lot less confusing than another branch being selected
by default when there's no query.



Release Notes:

- Changed the branch picker to always show the current branch as the
default selected entry.



https://github.com/zed-industries/zed/assets/1185253/18b50656-f6ac-4138-b4e0-9024072e1555

Thorsten Ball created

9d681bd go: support highlight regexp (#11538)

Click to expand commit body
Before:
<img width="521" alt="image"
src="https://github.com/zed-industries/zed/assets/45585937/7b87e552-0cf0-4168-933f-21d1ae84bf64">

After:
<img width="499" alt="image"
src="https://github.com/zed-industries/zed/assets/45585937/f1171375-8c22-4186-a5f1-1bdfa56cf01f">

Release Notes:

- Added go regexp highlighting

d1y created

1669ff8 editor: Fix menu::Confirm falling through to editor when confirming task entry in code actions (#11546)

Click to expand commit body
Release Notes:

- N/A

Piotr Osiewicz created

45aca34 Take local project settings into account when launching terminals (#11526)

Click to expand commit body
Fixes #7599

Use project level settings if possible, when creating terminals.

Release Notes:

- Fixed terminals ignoring project-specific settings ([7599](https://github.com/zed-industries/zed/issues/7599))

LoganDark created

07942bb Editor: Do not display code actions in task gutter menu if they belong to different line (#11506)

Click to expand commit body
This doesn't address the focus issues we saw with @maxbrunsfeld yet.

Release Notes:

- N/A

Piotr Osiewicz created

47c12c6 Make `prefer_line` the default soft-wrap behavior. (#11542)

Click to expand commit body
Stops lines from clipping at 1024 by default, returning it to the old
default behaviour where it wraps at 512. The `none` mode is only
supposed to be used for git hunks. See
https://github.com/zed-industries/zed/issues/11518#issuecomment-2099836283.

Release Notes:

- N/A

Owen Law created

63a5f46 Remember window restore size (#10429)

Click to expand commit body
Now, regardless of how the Zed window is closed, Zed can remember the
window's restore size.

- [x] Windows implementation
- [x] macOS implementation
- [x] Linux implementation (partial)
- [x] update SQL data base (mark column `fullscreen` as deprecated)

The current implementation on Linux is basic, and I'm not sure if it's
correct.

The variable `fullscreen` in SQL can be removed, but I'm unsure how to
do it.
edit: mark `fullscreen` as deprecated

### Case 1

When the window is closed as maximized, reopening it will open in the
maximized state, and returning from maximized state will restore the
position and size it had when it was maximized.



https://github.com/zed-industries/zed/assets/14981363/7207752e-878a-4d43-93a7-41ad1fdb3a06


### Case 2

When the window is closed as fullscreen, reopening it will open in
fullscreen mode, and toggling fullscreen will restore the position and
size it had when it entered fullscreen (note that the fullscreen
application was not recorded in the video, showing a black screen, but
it had actually entered fullscreen mode).



https://github.com/zed-industries/zed/assets/14981363/ea5aa70d-b296-462a-afb3-4c3372883ea3

### What's more

- As English is not my native language, some variable and struct names
may need to be modified to match their actual meaning.
- I am not familiar with the APIs related to macOS and Linux, so
implementation for these two platforms has not been done for now.
- Any suggestions and ideas are welcome.

Release Notes:

- N/A

张小白 created

6ddcff2 Show annotations more like the inline assistant (#11530)

Click to expand commit body
* compute gutter width
* show the AI icon
* borders, background, and text color for annotations

<img width="1840" alt="image"
src="https://github.com/zed-industries/zed/assets/836375/93f2e9b8-d7f7-4c25-b3e2-cf77a0c4ca36">

Release Notes:

- N/A

Kyle Kelley created

1cf40d7 Supermaven enhanced (#11521)

Click to expand commit body
Fixes #11422 by accepting just the start of the line.

Release Notes:

- N/A

---------

Co-authored-by: max <max@zed.dev>
Co-authored-by: jacob <jacob@supermaven.com>

Kyle Kelley , max , and jacob created

33a7221 assistant2: Add new conversation button, that also saves the current conversation (#11522)

Click to expand commit body
This PR updates the new assistant with a button to start a new
conversation.

Clicking on it will reset the chat and put it into a fresh state.

The current conversation will be serialized and written to
`~/.config/zed/conversations`.

Release Notes:

- N/A

Marshall Bowers created

c77dd8b docs: Add linux build command explanation (#11513)

Click to expand commit body
Just adding a short note about `cargo build --release` and the location
of the compiled binary. It helps a lot to streamline usage of Zed day to
day on Linux.

Release Notes:

- N/A

Andrei Zvonimir Crnković created

3d9f008 Do not show diffs for files with \r\n contents (#11519)

Kirill Bulatov created

6a64b73 assistant2: Add general structure for conversation history (#11516)

Click to expand commit body
This PR adds the general structure for conversation history to the new
assistant.

Right now we have a placeholder button in the assistant panel that will
toggle a picker containing some placeholder saved conversations.

Release Notes:

- N/A

Marshall Bowers created

47ca343 Add DecoratedIcon (#11512)

Click to expand commit body
This allows us to create icons with dynamic decorations drawn on top
like these:


![image](https://github.com/zed-industries/zed/assets/1714999/1d1a22df-8f90-47f2-abbd-ed7afa8fc641)

### Examples:

```rust
div()
    .child(DecoratedIcon::new(
        Icon::new(IconName::Bell).color(Color::Muted),
        IconDecoration::IndicatorDot,
    ))
    .child(
        DecoratedIcon::new(Icon::new(IconName::Bell), IconDecoration::IndicatorDot)
            .decoration_color(Color::Accent),
    )
    .child(DecoratedIcon::new(
        Icon::new(IconName::Bell).color(Color::Muted),
        IconDecoration::Strikethrough,
    ))
    .child(
        DecoratedIcon::new(Icon::new(IconName::Bell), IconDecoration::X)
            .decoration_color(Color::Error),
    )
```

Release Notes:

- N/A

Nate Butler created

768b63a Remove windows dependency from all non-windows platforms (#11510)

Click to expand commit body
Whoops

Release Notes:

- N/A

Mikayla Maki created

0d2f65a Language Model Tool for commenting in a multibuffer (#11509)

Click to expand commit body
Language Model can now open multibuffers and insert comments as block
decorations in the editor.


![image](https://github.com/zed-industries/zed/assets/836375/f4456ad0-66e7-4ad6-a2b3-63810a3223a5)


Release Notes:

- N/A

---------

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

Kyle Kelley , max , marshall , and nate created

953acb0 Document configuring pyright for pyproject.toml (#11508)

Click to expand commit body
Release Notes:

- N/A

Joseph T. Lyons created

d64106e Add development credentials provider (#11505)

Click to expand commit body
This PR adds a new development credentials provider for the purpose of
streamlining local development against production collab.

## Problem

Today if you want to run a development build of Zed against the
production collab server, you need to either:

1. Enter your keychain password every time in order to retrieve your
saved credentials
2. Re-authenticate with zed.dev every time
    - This can get annoying as you need to pop out into a browser window
- I've also seen cases where if you re-auth too many times in a row
GitHub will make you confirm the authentication, as it looks suspicious

## Solution

This PR decouples the concept of the credentials provider from the
keychain, and adds a new development credentials provider to address
this specific case.

Now when running a development build of Zed and the
`ZED_DEVELOPMENT_AUTH` environment variable is set to a non-empty value,
the credentials will be saved to disk instead of the system keychain.

While this is not as secure as storing them in the system keychain,
since it is only used for development the tradeoff seems acceptable for
the resulting improvement in UX.

Release Notes:

- N/A

Marshall Bowers created