bcf7bc9
Do not toggle hunk diffs when resizing the docks (#11489)
Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/11456
Release Notes:
- N/A
---------
Co-authored-by: Piotr <piotr@zed.dev>
Kirill Bulatov
and
Piotr
created
5a7b8f7
linux: Fix restarting by waiting for sockets to be closed (#11488)
Click to expand commit body
This fixes a race-condition that showed up when trying to restart
Nightly/Preview/...
When running with these release channels, Zed tries to ensure that
there's only one instance of Zed running.
It does that by listening on a TCP socket to which other instances can
connect on start. If the other instance receives a message, it knows
that another Zed instance is running and exits.
On Linux, though, we ran into a race condition:
1. `kill -0`, which checks whether a process is still running, returns
an error, signalling that the old Zed process has exited
2. BUT: the process was still listening on the TCP port.
It seems like that on Linux, process resources aren't guaranteed to be
cleaned up as soon as signal handling stops working for a process.
The fix is to wait until the process is no longer listening on any TCP
sockets.
There's a slight downside to this: GPUI processes that never listen on
any TCP sockets now have to pay the cost of an additional `lsof` call
when restarting. We do think that it's a reasonable tradeoff for now
though, since the other options (extending the platform interface to
provide callbacks, sharing the listening port in the framework, ...)
seem wider-reaching only to fix a very local bug.
Release Notes:
- N/A
Co-authored-by: Bennet <bennetbo@gmx.de>
Thorsten Ball
and
Bennet
created
0c11d84
editor: Move runnables querying to background thread (#11487)
Click to expand commit body
Originally reported by @mrnugget and @bennetbo
Also, instead of requerying them every frame, we do so whenever buffer
changes.
As a bonus, I modified tree-sitter query for Rust tests.
Release Notes:
- N/A
This PR adds basic runnable tests for Gleam.
Functions with names ending in `_test` will be available for running:
https://github.com/zed-industries/zed/assets/1486634/9f3f81e5-a7fa-425c-a5a2-d615062486bb
Release Notes:
- N/A
In Windows platform, using notify to watch file events.
1. in [notify windows
implement](https://github.com/notify-rs/notify/blob/3df0f65152c8585cfb29d231c880b86b9164dcfd/notify/src/windows.rs#L344),
we get the full file path, just with `path.join(file_path)`.
2. In [zed worktree
start_backgroud_scan_tasks](https://github.com/zed-industries/zed/blob/d2569afe662be93c926eed1aeb2b17d050ba90b0/crates/worktree/src/worktree.rs#L679),
`abs_path` is not unc path, so we get all file events with not unc path.
3. but in [zed worktree
process_event](https://github.com/zed-industries/zed/blob/d2569afe662be93c926eed1aeb2b17d050ba90b0/crates/worktree/src/worktree.rs#L3619),
we `strip_prefix` unc path all times, it will always print annoy error.
@mikayla-maki I can't reopen pre closed pr #10501 .
Release Notes:
- N/A
CharlesChen0823
created
88c4e0b
Add a registry for `GitHostingProvider`s (#11470)
Click to expand commit body
This PR adds a registry for `GitHostingProvider`s.
The intent here is to help decouple these provider-specific concerns
from the lower-level `git` crate.
Similar to languages, the Git hosting providers live in the new
`git_hosting_providers` crate.
This work also lays the foundation for if we wanted to allow defining a
`GitHostingProvider` from within an extension. This could be useful if
we wanted to extend the support to work with self-hosted Git providers
(like GitHub Enterprise).
I also took the opportunity to move some of the provider-specific code
out of the `util` crate, since it had leaked into there.
Release Notes:
- N/A
Marshall Bowers
created
a64e20e
Centralize project context provided to the assistant (#11471)
Click to expand commit body
This PR restructures the way that tools and attachments add information
about the current project to a conversation with the assistant. Rather
than each tool call or attachment generating a new tool or system
message containing information about the project, they can all
collectively mutate a new type called a `ProjectContext`, which stores
all of the project data that should be sent to the assistant. That data
is then formatted in a single place, and passed to the assistant in one
system message.
This prevents multiple tools/attachments from including redundant
context.
Release Notes:
- N/A
---------
Co-authored-by: Kyle <kylek@zed.dev>
This PR fixes a small issue I noticed with resize cursors. The
column/row resize cursors were missing and in a few places we were using
`ew-resize` and `ns-resize` even though the documentation mentions
`col-resize` and `row-resize`.
Finally updated the panes in the workspace to use the new column/row
resize cursors.
Before:


After:


Release Notes:
- Added column/row resize cursor styles to GPUI
- Fixed the existing references that were incorrectly using `ew-resize`
for column resize and `ns-resize` for row resize
- Updated panes to use column/row resize cursors instead on `ew-resize`
and `ns-resize`
---------
Co-authored-by: Mikayla <mikayla@zed.dev>
Soroush Mirzaei
and
Mikayla
created
f3fffc2
Don't log JSON parse errors with no settings (#11459)
Click to expand commit body
Release Notes:
- Silenced error messages on startup when no settings/keymap files
exist.
Conrad Irwin
created
2e6d044
Fix Collab context menu dismissal (#11414)
Click to expand commit body
Closes: #11413
Release Notes:
- Fixed Collab panel context menu dismissal with `Escape` key
([#11413](https://github.com/zed-industries/zed/issues/11413)).
moshyfawn
created
530bc5c
windows: Fix crash in vim normal mode when IME key is pressed (#11387)
Click to expand commit body
Fixed crash in vim normal mode when ime key press.
Release Notes:
- N/A
CharlesChen0823
created
9edd81c
Add Windows specific path parsing (#11119)
Click to expand commit body
Since Windows paths are known to be weird and currently not handled at
all (outside of relative paths that just happen to work), I figured I
would add a windows specific implementation for parsing absolute paths.
It should be functionally the same, of course there's always a chance I
missed an edge case though.
This should fix
- #10849
Note that there are still some cases that will probably break the
current implementation, namely local drives that do not have a drive
letter assigned (not sure how to handle those). There's also UNC paths
but I don't know how important those are at the moment (I'll allow
myself to assume not at all)
Release Notes:
- N/A
Fixed various small issues on Linux, mainly on Wayland.
Apart from the first commit (which should be self-describing), the other
commits have a description explaining the issue and what they do.
caadc58bead6cb654d7e1da25faaba72be79cd27 should fix
https://github.com/zed-industries/zed/issues/11037
Release Notes:
- N/A
apricotbucket28
created
fd38318
Add pkgconf to arch linux required dependencies (#11449)
This PR follows up #11314 (which removes some deprecated `callback`s)
removes the corresponding implements.
Release Notes:
- N/A
张小白
created
9a60c0a
Replace all X11 mouse events with XI2 equivalents (#11235)
Click to expand commit body
This PR replaces all pointer events on X11 with their XI2 equivalents,
which fixes problems with scroll events not being reported when a mouse
button is down. Additionally it closes #11206 by resetting the tracked
global scroll valulator position with `None` on a leave event to prevent
a large scroll delta if scrolling is done outside the window. Lastly, it
resolves the bad window issue kvark was having.
Release Notes:
- Fixed X11 Scroll snapping (#11206 ).
---------
Co-authored-by: Mikayla Maki <mikayla@zed.dev>
Adds a `SerialTracker` type which helps simplify serial handling.
Release Notes:
- N/A
apricotbucket28
created
3018a64
Wayland: Improve first click detection (#11371)
Click to expand commit body
Release Notes:
- N/A
This changes the first click detection in Wayland by requiring first
click after the keyboard loses focus, and after a `wl_pointer` enters a
window that has keyboard focus
This PR refactors the code pertaining to Git hosting providers to make
it more uniform and easy to add support for new providers.
There is now a `GitHostingProvider` trait that contains the
functionality specific to an individual Git hosting provider. Each
provider we support has an implementation of this trait.
Release Notes:
- N/A
Marshall Bowers
created
8871fec
Adjust names of negated style methods (#11453)
Click to expand commit body
This PR adjusts the names of the negated style methods by moving the
`neg_` to after the property name instead of before.
This will help keep related style methods grouped together in
completions.
It also makes it a bit clearer that the negation applies to the value.
### Before
```rs
div()
.neg_mx_1()
.neg_mt_2()
```
### After
```rs
div()
.mx_neg_1()
.mt_neg_2()
```
Release Notes:
- N/A
Trims down the project index output view in assistant2 to just list the
filenames and hideaway the query.
<img width="374" alt="image"
src="https://github.com/zed-industries/zed/assets/836375/8603e3cf-9fdc-4661-bc45-1d87621a006f">
Introduces a way for tools to render running.
Release Notes:
- N/A
---------
Co-authored-by: Max <max@zed.dev>
Kyle Kelley
and
Max
created
f658af5
Make `border` methods always require an explicit width (#11450)
Click to expand commit body
This PR makes the `border` methods require an explicit width instead of
defaulting to 1px.
This breaks convention with Tailwind, but it makes GPUI more consistent
with itself. We already have an edge case where the parameterized method
had to be named `border_width`, since `border` was taken up by an alias
for the 1px variant.
### Before
```rs
div()
.border()
.border_t()
.border_r()
.border_b()
.border_l()
.border_width(px(7.))
```
### After
```rs
div()
.border_1()
.border_t_1()
.border_r_1()
.border_b_1()
.border_l_1()
.border(px(7.))
```
Release Notes:
- N/A
Release Notes:
- N/A
Following up to #10880
TODO:
- [x] create window as transparent
- [x] X11
- [x] Wayland
- [ ] Windows
- [x] MacOS (when used with Blade)
- [x] enable GPU surface transparency
- [x] adjust the pipeline blend modes
- [x] adjust shader outputs

Blurred results from @jansol (on Wayland), who contributed to this work:

---------
Co-authored-by: Jan Solanti <jhs@psonet.com>
Fixed autoclosing and made it recognize all ZON (Zig Object Notation)
files.
- Fixed single and double quotes not autoclosing for zig
- Fixed ZON file recognition
- Removed angle brackets autoclosing in zig as they are not used
Release Notes:
- N/A
vali-pnt
created
0aab6d8
Fix race condition in editor show_hover (#11441)
Click to expand commit body
The DisplayPoint returned from the position map is only valid at the
snapshot in the position map.
Before this change we were erroneously using it to index into the
current version of the buffer.
Release Notes:
- Fixed a panic caused by a race condition in hover.
This PR updates the docs README with some notes about how to deal with
images.
Release Notes:
- N/A
Marshall Bowers
created
237cc9b
remoting: Adjust prompt level for dev server prompts (#11440)
Click to expand commit body
This changes the remoting prompts to use `PromptLevel::Warning` instead
of `PromptLevel::Destructive`.
In #11015 we decided to apply PromptLevel::Destructive to prompts other
than the new path picker. However, we did not notice that this breaks
confirmation with the keyboard, so it should really only be used in
specific situations (e.g. replacing a file with the remote "save as"
picker, because it matches the behavior of the macOS file dialog).
Release Notes:
- N/A
Bennet Bo Fenner
created
38a50a0
docs: Port over tasks docs from old docs (#11439)
Click to expand commit body
This PR ports over the changes to the "Tasks" page in the docs that were
made in the old docs.
Release Notes:
- N/A
Marshall Bowers
created
01aa768
docs: Update system requirements to note Linux and Windows can be built from source. (#11438)
Click to expand commit body
This PR updates the system requirements in the docs to note that Linux
and Windows can be built from source.
This matches the messaging we have in place on the [download
page](https://zed.dev/download).
Release Notes:
- N/A
Marshall Bowers
created
d463648
tasks: Prefer worktree tasks to global tasks in tag selection (#11427)
Click to expand commit body
Release Notes:
- Added test indicators in Rust files, backed by task system.
Piotr Osiewicz
created
29c675b
docs: Change path from `/docs2` to `/docs` (#11436)
Click to expand commit body
This PR changes the docs path from `/docs2` to just `/docs` in
preparation for release.
Release Notes:
- N/A
This PR fixes the spelling mistake cfg!(target_os = "windows")
Release Notes:
- N/A
Zelaren
created
27a9498
editor: Fix up task indicators in multibuffers (#11434)
Click to expand commit body
We were retrieving task context incorrectly with a display point row as
the location argument, and not the actual row in the buffer.
Release Notes:
- N/A
This PR allows configuring existing dev server, right now you can:
- Change the dev servers name
- Generate a new token (and invalidate the old one)
<img width="563" alt="image"
src="https://github.com/zed-industries/zed/assets/53836821/9bc95042-c969-4293-90fd-0848d021b664">
Release Notes:
- N/A
Hey guys! `emmet-language-server` author here. Thank you so much for the
amazing editor!
This PR adds more languages to the list for the `emmet-language-server`
to attach to.
I have a question though, I saw that you guys don't differentiate yet
between `JavaScript` and `JSX` files. I know that the tree-sitter parser
for `js` comes with the ability to parse both but we still need to make
that difference. Is that part of the plan? or do you have a reason for
doing that?
Aside from that, I've still added support for `JavaScript` files since
is important to have emmet completions in `JSX` files, but I would like
to know what are your thoughts on that since doing this may pollute the
completions in `.js` files.
And one last thing, the emmet language server accepts more filetypes
such as `pug`, `sass`, `scss` and `less` files, which are not currently
supported by zed. Should I create some extensions to add grammar support
to those files later? Should those extensions be part of the zed repo?
I'm just thinking that those are sort of core languages.
Aside from that, let me know if there's anything left to do on my side.
Greetings!
Fixes #10654.
Release Notes:
- N/A
José Olórtegui
created
cf6c2da
remoting: Register remote modal action when flag is present (#11426)
Click to expand commit body
Fixes #11391
Release Notes:
- N/A
Bennet Bo Fenner
created
283d424
remoting: Prevent user from creating multiple dev servers accidentally (#11425)
Click to expand commit body
Fixes #11389
Release Notes:
- N/A
Bennet Bo Fenner
created
c68b700
Fix install.sh to always install to 'zed' (#11370)
Click to expand commit body
This makes our remoting instructions work regardless of which version of
zed is installed.
Release Notes:
- N/A
Conrad Irwin
created
08c9157
Standardize TabBar `start_slot` and `end_slot` elements (#11403)
Click to expand commit body
- Unifies spacing between left and right sides of the tab bar
- Use the default icon color for `end_slot` tools. This should help more
clearly differentiate when forward or backward navigation is disabled
due to the tools on the other side not looking so much like the disabled
navigation arrows.
- Rework the TabBar implementation in `pane.rs` to directly pass in
items to the `start_slot` instead of an unneeded extra horizontal
layout.
Left side:

Right side:

Release Notes:
- Standardized some Tab Bar UI elements. You many notice some slight
spacing or color changes.