Partially fixes https://github.com/zed-industries/zed/issues/10483 (X11
still has this issue)
Also adds some missing destroy() calls for some objects.
Thanks @phisch!
Release Notes:
- N/A
2602fc4
Match user selection when renaming (#10748)
Click to expand commit body
Initial state:
<img width="337" alt="Screenshot 2024-04-19 at 01 35 34"
src="https://github.com/zed-industries/zed/assets/2690773/1720d06c-54ed-4479-b694-ea478ac5a55a">
Before the fix:
<img width="319" alt="Screenshot 2024-04-19 at 01 35 39"
src="https://github.com/zed-industries/zed/assets/2690773/64429088-e75b-44c3-b5d4-31a841e69a1d">
After:
<img width="336" alt="Screenshot 2024-04-19 at 01 36 43"
src="https://github.com/zed-industries/zed/assets/2690773/c523e549-c546-4a70-aa33-629912598466">
Release Notes:
- Improved rename selections to match the user ones
Tooltip shows original task template's label, if it differs from the one
displayed in the modal. Also, a resolved command with args will be shown
in the tooltip if different from the modal entry text.
<img width="578" alt="Screenshot 2024-04-19 at 00 40 28"
src="https://github.com/zed-industries/zed/assets/2690773/c89369d6-8ffc-4464-ab3b-ea5e8fb7625a">
<img width="761" alt="Screenshot 2024-04-19 at 00 40 32"
src="https://github.com/zed-industries/zed/assets/2690773/b02f1518-976a-4a9b-ba7c-f88c6e056217">
<img width="738" alt="Screenshot 2024-04-19 at 00 40 56"
src="https://github.com/zed-industries/zed/assets/2690773/be502537-f4bd-4ae0-a5e7-78e37fe8fb00">
<img width="785" alt="Screenshot 2024-04-19 at 00 41 01"
src="https://github.com/zed-industries/zed/assets/2690773/9bedcd21-8729-44c8-9a17-46a5a01c7f26">
Release Notes:
- Added tooltips into task spawn modal
Kirill Bulatov
created
870a61d
Add "Open in Terminal" context menu entries for project panel, editor and tab context menus (#10741)
Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/4566
Pane tabs (does not exist for multibuffer tabs):
<img width="439" alt="Screenshot 2024-04-18 at 23 01 08"
src="https://github.com/zed-industries/zed/assets/2690773/3af79ed8-07ea-4cf2-bcf9-735b1b3be8c4">
Editor context menu:
<img width="404" alt="Screenshot 2024-04-18 at 23 01 14"
src="https://github.com/zed-industries/zed/assets/2690773/38ea7afc-df2b-45ef-8331-eb6a4588af9f">
Project panel context menu (was not shown for file entries before this):
<img width="408" alt="Screenshot 2024-04-18 at 23 01 18"
src="https://github.com/zed-industries/zed/assets/2690773/e336fce1-7da0-4671-b8d2-8d3409c23eb6">
Release Notes:
- (breaking change) Moved `project_panel::OpenInTerminal` into
`workspace::OpenInTerminal` action and add it in editors, tab context
menus and proper panel file entries
([4566](https://github.com/zed-industries/zed/issues/4566))
Kirill Bulatov
created
250b71f
Select buffer search query on follow-up cmd-f (#10745)
Click to expand commit body
https://github.com/zed-industries/zed/assets/2690773/fd754cfc-aca5-4c4d-9b42-53d1c8eca0e9
Unfortunately, the tests did not work for me, as the `FocusSearch`
action handlers were never called for me.
Release Notes:
- Improved buffer search workflow: follow-up cmd-f select query string
Kirill Bulatov
created
15c4c4a
wayland: Fix input_handler out of range access (#10724)
Click to expand commit body
The wayland implementation takes an input handler from the state, but
only puts it back if the event was an IME key. I flipped the logic to
ensure it's always put back.
This should fix both:
- #10344
- #10652
Release Notes:
- Fixed input_handler out of range access
([#10344](https://github.com/zed-industries/zed/issues/10344),
[#10652](https://github.com/zed-industries/zed/issues/10652)).
Changes the X11 platform code to use the xinput extension which allows
for smooth scrolling and horizontal scrolling.
Release Notes:
- Added smooth scrolling to X11 on Linux
- Added horizontal scrolling to X11 on Linux
Owen Law
created
bd5473a
docs: Install Windows 10/11 SDK with VS installation (#10550)
Click to expand commit body
This installation is also needed with VS installation. Only then they
would be able to target the WINDOWS SDK
Optionally, include screenshots / media showcasing your addition that
can be included in the release notes.
I was getting link.exe error before this stating that my MSVC was not
installed properly. But MSVC was perfectly installed. I went on
stackoverflow and checked for similar instances with `cargo run` on
windows and found this
https://stackoverflow.com/a/55603112/12859779
where in comment Fasis states that we need to install WINDOWS 10 SDK. I
had Windos 11 so Installed that and it worked :)
Release Notes:
- N/A
Nimit Savant
created
1fbc041
Move `lints` section to the top of `Cargo.toml`, to match the others
This introduces multiple improvements to the drop targets.
## Hitbox shape
Currently, hitboxes are rectangles, where the vertical ones reach all
the way to the ends, which reduces the space for the horizontal ones,
making the hitboxes a bit awkward in the corners. This new approach just
determines the closest side.
Visual representation:

## Hitbox size
The width of the hitbox was currently always 8 rem all around. In setups
with many columns or rows, or when the font size was very large, this
could potentially overlap the center hitbox, not allowing to drop a tab
without another split. Now the width of the hitboxes are a fraction of
the smaller size of its parents width and height. This makes sure the
hitboxes have the same width all around, but never fully block the
center hitbox.
I've also made this value configurable through the new
`drop_target_size` config which takes a `f32` fraction and is set to 0.2
by default.
Not sure if this is worth mentioning, but this technically allows to
remove the split hitboxes all together by setting it to `0.0`, or
removing the center hitbox by setting it to any value `>=0.5`. Not that
this is necessary, but it would be possible now.
## Larger visualization
The visual overlay when using one of the side hitboxes were also `8em`
wide. Since their logical size now changed, and it can't currently be
represented with GPUI (without abusing the `canvas` element), I made the
visual feedback take half of the width or height of the available space,
just like how other editors do this.
Also, the opacity/alpha value set by a theme is currently ignored. This
change now respects the themes opacity for it!
## Respect alpha value
Currently, the alpha value of `drop_target.background` is ignored. Even
the default themes set a value that is overwritten by a hard coded
value. I have removed this hard coded value and it now respects the
alpha value.
This change affects existing themes, see
https://github.com/zed-industries/zed/pull/10643#issuecomment-2059641528
## ~~No more lag while dragging over gutter~~ Extracted into #10737
~~It looks like the editor had a small optimization to drop events when
hovering the gutter. This also happens while dragging a tab over the
gutter, and causes some stuttering. Please correct me if this wasn't
just a small optimization, but I could not derive a different reason for
this code to exist.~~
Here is a video that tries to show all those changes with a before on
the left, and the after on the right:
https://github.com/zed-industries/zed/assets/1282767/f97f3420-513f-410f-a1c8-7966429ad348
Release Notes:
- Added `drop_target_size` setting. This should be a fractional percent
(e.g., `0.5`).
- Improved the hitboxes for drop targets.
- Updated drop targets to respect the alpha channel of the
`drop_target.background` color.
To work properly, needs #10119 to be merged.
https://github.com/zed-industries/zed/assets/14981363/2bb0c51b-6c70-4b29-8baa-302fb4fb9e89
Release Notes:
- N/A
This PR brings `Direct Write` to Zed. Now, Zed first trys to query
dwrite interface, if not supported, which means runing on Windows below
win10 1703), will choose `cosmic` as a fallback text system.
This direct write text system supports:
- Full font features support
- Emoji support
- Default system fonts as fallback
### Font features
https://github.com/zed-industries/zed/assets/14981363/198eff88-47df-4bc8-a257-e3acf81fd61d
### Emoji

**Note: input emoji through IME or IMM not working yet, copy paste emoji
works fine (will be fixed by #10125 )**
### Font fallback
I use `Zed mono` which dose not support chinese chars to test font
fallback
https://github.com/zed-industries/zed/assets/14981363/c97d0847-0ac5-47e6-aa00-f3ce6d1e50a5
Release Notes:
- N/A
<img width="691" alt="image"
src="https://github.com/zed-industries/zed/assets/2588851/c5e02d12-d1e4-4407-971c-72de7e6599f0">
@mikayla-maki the extension lists you as the original author.
Release Notes:
- N/A
---------
Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
jansol
and
Marshall Bowers
created
a202499
markdown preview: Update channel notes when other collaborator changes buffer (#10718)
Click to expand commit body
https://github.com/zed-industries/zed/assets/53836821/9a57885e-83b0-49fb-b3a8-0a7868566b85
Release Notes:
- Markdown preview now re-renders when another collaborator changes the
content of channel notes
Bennet Bo Fenner
created
c2428f9
git blame: Parse permalinks client side (#10714)
Click to expand commit body
Release Notes:
- N/A
Thorsten Ball
created
d5c5394
Open exactly one terminal on `workspace::NewTerminal` action (#10721)
Click to expand commit body
Fixes https://github.com/zed-industries/zed/issues/4567
Release Notes:
- Fixed multiple terminals being opened on `workspace::NewTerminal`
calls ([4567](https://github.com/zed-industries/zed/issues/4567))
Kirill Bulatov
created
bb97432
Add minimum column option to git inline blame (#10682)
Click to expand commit body
Release Notes:
- Added a setting to determine the minimum column where the inline blame
information is shown. Example: `{{"git": {"inline_blame": {"min_column":
80}}}` ([#10555](https://github.com/zed-industries/zed/issues/10555)).
Demo Video:
https://github.com/zed-industries/zed/assets/1185253/61343dbe-9002-4bd1-b0d4-403f8da79050
---------
Co-authored-by: Thorsten Ball <mrnugget@gmail.com>
Shreekar Halvi
and
Thorsten Ball
created
1b75f9d
Add a setting to show/hide the project panel button in the status bar (#10707)
Click to expand commit body
### What?
A setting has been added to control the visibility of the Project Panel
button in the status bar.
### Why?
I don't tend to use the Project Panel, but use a keyboard shortcut to
access if needed. Thus, the button in the status bar provides me little
more than visual clutter. Additionally, there is precedent for this
configurability with other panels (collaboration, chat, notification,
terminal, etc).
Release Notes:
- Added a setting to show/hide the Project Panel button in the status
bar. `{"project_panel": {"button": false}}`
David Baldwin
created
4c3178e
Have the CI server draft the release notes (#10700)
Click to expand commit body
While I don't expect these to be useful for our weekly minor releases, I
hope that this will save a step for people doing mid-week patches.
Release Notes:
- N/A
Conrad Irwin
created
41c8f2c
Attempt to fix segfault in window drop (#10690)
Click to expand commit body
By default NSWindow's release themselves when closed, which doesn't
interact well with rust's lifetime system.
Disable that behaviour, and explicitly release the NSWindow when the
window handle is dropped.
Release Notes:
- Fixed a (rare) panic when closing a window.
Conrad Irwin
created
b9e0269
project panel: do not expand collapsed worktrees on "collapse all entries" (#10687)
4f2214e
terminal: Treat paths with non-digit col/rows as paths nonetheless (#10691)
Click to expand commit body
This relaxes path parsing to allow paths like ./foo.rs:food or
./food/foo_bar.rs:2:12:food as some tools may add a suffix without
regard for col/row end.
Fixes #10688
Release Notes:
- Made path parsing in terminal (for directory links) more lenient with
regards to row/column fields.
This PR bumps the Prisma extension to v0.02.
Changes:
- The Prisma extension now provides its own `tab_size` setting
([#10296](https://github.com/zed-industries/zed/pull/10296))
Release Notes:
- N/A
Marshall Bowers
created
4f1861e
git blame: ignore uncommitted files or repos without commits (#10685)
Click to expand commit body
This fixes useless error messages popping up in case a file hasn't been
committed yet or the repo doesn't have commits yet.
Release Notes:
- Fixed git blame functionality not handling errors correctly when there
are no commits yet or when file isn't committed yet.
Thorsten Ball
created
d7becce
git: Only show inline git blame when editor is focused (#10680)
Click to expand commit body
Release Notes:
- N/A
Thorsten Ball
created
6217138
Do not show tooltip for editor controls if clicked (#10679)
Click to expand commit body
This avoids the tooltip showing up when the context menu is visible.
It fixes this:

Release Notes:
- N/A
Thorsten Ball
created
47ad010
Backport documentation for inline git blame (#10677)
Click to expand commit body
Only noticed this when editing zed.dev.
Release Notes:
- N/A
Thorsten Ball
created
06987ed
project panel: Fix alignment of entries overflowing the panel. (#10676)
Click to expand commit body
With file icons turned off, we still reserve space for an icon and make
it invisible. However, that space was marked as flex, which made it
shrink in case subsequent file name could not fit in the current width
of the project panel. Fixes #10622
https://github.com/zed-industries/zed/assets/24362066/d565a03a-3712-49d1-bf52-407e4508a8cf
Release Notes:
- Fixed project panel entries misalignment with narrow panel & file
icons turned off.
Fixes
https://github.com/zed-industries/zed/pull/9754#pullrequestreview-2005401133
Fixes
https://github.com/zed-industries/zed/pull/9754#issuecomment-2060536590
Closes https://github.com/zed-industries/zed/pull/10669
* Updates the docs to use a proper max value for the centered layout
padding (0.4 instead of 0.45)
* Makes the `center` wrapper (`h_flex`) to be of size of the `center`
element always, to ensure terminal lines are displayed correctly
The letter fix is somewhat hacky: while it does the right thing right
now, it does not prevent us from future mistakes like these, and does
not explain why the bottom dock could be of one, smaller, height, and
its contents, the terminal pane/terminal element/something else would
think that it has a larger height, thus breaking the scrolling and
rendering.
cc @alygin if you're interested to solve another layout-related thing.
Release Notes:
- N/A
Kirill Bulatov
created
2c78cf3
Regenerate git blame info when buffer's dirty bit changed (#10670)
Click to expand commit body
This fixes the https://github.com/zed-industries/zed/issues/10583 by
regenerating the blame information after the
buffer is edited. It uses a debounce of 2seconds. Meaning that undone
deletions show up again after 2secs.
Release Notes:
- Fixed `git blame` data not handling the undoing of deletions
correctly.
([#10583](https://github.com/zed-industries/zed/issues/10583)).
Thorsten Ball
created
c81eb41
Clear credentials state and delete keychain on SignOut request (#10558)
Add `./script/trigger-release {nightly|stable|preview}`
This command can be run regardless of the state of your local git
repository, and it
either triggers a workflow run of `bump_patch_version.yml` (for
stable/preview) or
it force pushes the nightly tag.
Also add some docs on releases to explain all of this.
Release Notes:
- N/A
Conrad Irwin
created
bc7eaa6
Add links to jobs page in README and in app, under help menu (#10658)
e93d554
Add Editor Controls Menu to Tool Bar (#10655)
Click to expand commit body
This PR adds an editor controls menu to the tool bar. This menu will be
used to contain controls that toggle visual features in the editor, like
toggling inlay hints, showing git status or blame, hiding the gutter,
hiding or showing elements in the tool bar, etc.
For the moment, this consolidates the new Inline Git Blame toggle and
the old Inlay Hints toggle. In the future it will contain additional
controls.
Before:

After:

---
Release Notes:
- Added an editor controls menu to the tool bar. This will contain
visual, editor-specific options like toggling inlay hints, showing git
status or blame, etc.
- Removed the top level inlay hint toggle from the tool bar due to the
above change.
- Added the ability to toggle inline git blame from the new editor
controls menu.
---------
Co-authored-by: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
Nate Butler
and
Marshall Bowers
created
775539b
Fix order of migrations from #9754 (#10657)
Click to expand commit body
This fixes a bug caused by mis-ordered database migration in #9754
Release Notes:
- N/A
This PR bumps the Gleam extension to v0.1.1.
Changes:
- #10635
Release Notes:
- N/A
Marshall Bowers
created
be2bf98
Show task summary in its terminal after it stops running (#10615)
Click to expand commit body
Based on https://github.com/alacritty/alacritty/issues/7795
Unknown error code commands (now includes the interrupted ones):

Successful command:

Unsuccessful command:

The "design", including wordings and special characters, is not final,
suggestions are welcome.
The main idea was to somehow distinguish the appended lines without
occupying extra vertical space.
Release Notes:
- Added task summary output into corresponding terminal tabs
This PR implements the Centered Layout feature (#4685):
- Added the `toggle centered layout` action.
- The centered layout mode only takes effect when there's a single
central pane.
- The state of the centered layout toggle is saved / restored between
Zed restarts.
- The paddings are controlled by the `centered_layout` setting:
```json
"centered_layout": {
"left_padding": 0.2,
"right_padding": 0.2
}
```
This allows us to support both the VSCode-style (equal paddings) and
IntelliJ-style (only left padding in Zen mode).
Release Notes:
- Added support for Centered Layout
([#4685](https://github.com/zed-industries/zed/pull/9754)).
https://github.com/zed-industries/zed/assets/2101250/2d5b2a16-c248-48b5-9e8c-6f1219619398
Related Issues:
- Part of #4382