9fdfe5c
Don't hide last symbol under the scrollbar (#11696)
Click to expand commit body
This PR adds an extra scrollbar-wide margin to the right side of the
editor. This prevents hiding the last character under the scrollbar.
Fixes #7098
Release Notes:
- Fixed hiding of the last character under the scrollbar (#7098).
Andrew Lygin
created
4446c38
docs: Add link for "Configuring Zed" mention (#11723)
Click to expand commit body
Release Notes:
- N/A
Danilo Leal
created
692afdc
Remove deploy artifacts after uploads (#11726)
Click to expand commit body
Release Notes:
- N/A
Kirill Bulatov
created
6657e30
Update reference to keymap.json in tasks docs (#11711)
Click to expand commit body
I assume this was an older file name or just a typo as I can't find any
other references to a `keybindings.json` file. Either way it was
confusing for a bit :)
Release Notes:
- N/A
Erik Simmler
created
f990f70
Bring the Tool Calling README up to date (#11683)
This cleans up the neovim-backed vim tests:
- removed exempted tests (we'll rely on bug reports to find missing edge
cases)
- moved all assertions into non-async fn's so that failures are
reporting on the right file/line
- removed the NeovimBackedBindingTestContext
- renamed a few things to make them clearer
- reduced the number of permutations tested in some cases to reduce
slowest test from 60s to 5s
Release Notes:
- N/A
Conrad Irwin
created
48cba32
Revert "Use sha in the names of Linux nightly archives (#11693)"
Click to expand commit body
This reverts commit 6a64360ec82d5309890e042c5305edfebb9ae59a.
Kirill Bulatov
created
6a64360
Use sha in the names of Linux nightly archives (#11693)
Click to expand commit body
Release Notes:
- N/A
Kirill Bulatov
created
fa04f75
chore: Improve dev build startup time (#11692)
Click to expand commit body
RustEmbed repeatedly compiled regexes for handling of
'include='/'exclude' statements in a hot loop, which caused each call to
Assets::iter() to take 600ms. Since it is being called twice on our
startup path, that alone contributed over a second to startup time in
debug builds. I've filed a PR with them
https://github.com/pyrossh/rust-embed/pull/244 which brings down the
time for a single iter() call to 6ms.
Release Notes:
- N/A
this updates ring dependency to 0.17.x version, which has Windows on ARM
support
Release Notes:
- N/A
Maksim Bondarenkov
created
b8a8344
editor: Support walking through overlapping diagnostics (#11139)
Click to expand commit body
While looking into how to implement #4901, noticed that the current
`Goto next/previous diagnostic` behaved a bit weirdly. That is, when
there are multiple errors that have overlapping ranges, only the first
one can be chosen to be active by the `go_to_diagnostic_impl`.
### Previous behavior:
https://github.com/zed-industries/zed/assets/71292737/95897675-f5ee-40e5-869f-0a40066eb8e3
Doesn't go through all the diagnostics, and going backwards and forwards
doesn't show the same diagnostic always.
### New behavior:
https://github.com/zed-industries/zed/assets/71292737/81f7945a-7ad8-4a34-b286-cc2799b10500
Should always go through the diagnostics in a consistent manner.
Release Notes:
* Improved the behavioral consistency of "Go to Next/Previous
Diagnostic"
Kalle Ahlström
created
c71cfd5
Change `ToolOutput` to `ToolView` (#11682)
Click to expand commit body
Additionally, the internal `ToolView` trait used by the registry is now
called `InternalToolView`.
This should make it a bit easier to understand that the `ToolView` is
intended for a `gpui::View` (implementing `Render`). It does still feel
like more could be merged here but I think the built tools are now a bit
clearer.
Release Notes:
- N/A
This avoids the CLI linking libssl etc...
Release Notes:
- N/A
Conrad Irwin
created
df41435
Introduce DisplayRow, MultiBufferRow newtypes and BufferRow type alias (#11656)
Click to expand commit body
Part of https://github.com/zed-industries/zed/issues/8081
To avoid confusion and bugs when converting between various row `u32`'s,
use different types for each.
Further PRs should split `Point` into buffer and multi buffer variants
and make the code more readable.
Release Notes:
- N/A
---------
Co-authored-by: Piotr <piotr@zed.dev>
Improves the descriptions for some of the tools. I wish we had metrics
to back up changes in how the model responds to tool schema changes so
anecdotally I'm just going to say this _seems_ improved.
Release Notes:
- N/A
This PR adds the `embedded_template` grammar to the Ruby extension, as
we need it present for ERB.
Release Notes:
- N/A
Marshall Bowers
created
451727d
Create release archive in the target dir (#11675)
Click to expand commit body
Release Notes:
- N/A
Conrad Irwin
created
c73d650
Make block_with_timeout more robust (#11670)
Click to expand commit body
The previous implementation relied on a background thread to wake up the
main thread,
which was prone to priority inversion under heavy load.
In a synthetic test, where we spawn 200 git processes while doing a 5ms
timeout, the old version blocked for 5-80ms, the new version blocks for
5.1-5.4ms.
Release Notes:
- Improved responsiveness of the main thread under high system load
This PR removes the references to initializing Git submodules as part of
building Zed.
These are no longer needed, as our only submodule was removed in #11672.
Release Notes:
- N/A
This PR vendors the protobuf files from the LiveKit protocol so that we
don't need to have that entire LiveKit protocol repo as a submodule.
---
Eventually I would like to replace this with the
[`livekit-protocol`](https://crates.io/crates/livekit-protocol) crate,
but there is some churn that needs to happen for that.
The main problem is that we're currently on a different version of
`prost` used by `livekit-protocol`, and upgrading our version of `prost`
means that we now need to source `protoc` ourselves (since it is no
longer available to be compiled from source as part of `prost-build`).
Release Notes:
- N/A
This is my stab at #7709
I realize the code is flawed. There's no test coverage, I'm using
`clone()` and there are probably better ways to hook into the events.
Also, I didn't know what context to use for the keybinding. But maybe
with some pointers from someone who actually know what they're doing, I
can get this shippable.
Release Notes:
- vim: Added ctrl-6 for
[alternate-file](https://vimhelp.org/editing.txt.html#CTRL-%5E) to
navigate back and forth between two buffers.
https://github.com/zed-industries/zed/assets/261929/2d10494e-5668-4988-b7b4-417c922d6c61
---------
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Robert Falkén
and
Conrad Irwin
created
0d26beb
Add configurable low-speed timeout for OpenAI provider (#11668)
Click to expand commit body
This PR adds a setting to allow configuring the low-speed timeout for
the Assistant when using the OpenAI provider.
The `low_speed_timeout_in_seconds` accepts a number of seconds that the
HTTP client can go below a minimum speed limit (currently set to 100
bytes/second) before it times out.
```json
{
"assistant": {
"version": "1",
"provider": { "name": "openai", "low_speed_timeout_in_seconds": 60 }
},
}
```
This should help the case where the `openai` provider is being used with
a local model that requires higher timeouts.
Issue: https://github.com/zed-industries/zed/issues/9913
Release Notes:
- Added a `low_speed_timeout_in_seconds` setting to the Assistant's
OpenAI provider
([#9913](https://github.com/zed-industries/zed/issues/9913)).
Marshall Bowers
created
19994fc
ruby: Move injections to extension (#11664)
Click to expand commit body
This PR moves the Ruby injections added in #8796 to the right location,
since Ruby support was extracted into an extension in #11360.
Release Notes:
- N/A
This adds support for Ruby heredoc's syntax highlighting. The injection
was directly taken from the tree-sitter
[documentation](https://tree-sitter.github.io/tree-sitter/syntax-highlighting#language-injection).
It is quite simple, but has the drawback of only showing highlighting
once the heredoc is fully written and next line is started. This is due
to the fact that we use the last line of the heredoc to determine the
language. As using the first one would require some cleaning up that we
cannot do trivially. (I might have not fully understood the behaviour of
the `#match?` predicate, which could help us)
Fixes #4473
Release Notes:
- Added Ruby language injections
([#4473](https://github.com/zed-industries/zed/issues/4473)).
<img width="359" alt="image"
src="https://github.com/zed-industries/zed/assets/11378424/5115b875-a32d-4f28-b21f-471495169266">
This PR extracts Ruby and ERB support into an extension and removes the
built-in Ruby and Ruby support from Zed.
As part of this, the new extension is prepared for adding support for
the `Ruby LSP` which has some blockers. See
https://github.com/zed-industries/zed/pull/8613 I was thinking of adding
an initial support for Ruby LSP but I think it would be better to start
with extracting the Ruby extension for now.
The implementation, as the 1st step, matches the bundled version but
with 3 differences:
1. Added signature output to the completion popup. See my comment below.

3. Use the shell environment for starting the `solargraph` executable.
See my comment below.
4. Bumped the tree sitter version for Ruby to the latest available
version.
Additionally, I plan to tweak this extension a bit in the future but I
think we should do this bit by bit. Thanks!
Release Notes:
- Removed built-in support for Ruby, in favor of making it available as
an extension.
---------
Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
We reverted bump to taffy 0.4.3 following an issue spotted by
@maxdeviant where chat text input was not being rendered correctly:

This was an issue with the previous attempt to upgrade to taffy 0.4.0 as
well. We bail early in `compute_auto_height_layout` due to a missing
width:
https://github.com/zed-industries/zed/blob/df190ea84621837c44fa50c62837bdbea04b9e22/crates/editor/src/element.rs#L5266
The same issue is visible in story for auto-height editor (or rather,
the breakage is visible - the editor simply does not render at all
there).
I tracked down the breakage to
https://github.com/DioxusLabs/taffy/pull/573 ; it looks like it
specifically affects editors with auto-height. In taffy <0.4 which we
were using previously, we'd eventually get a proper width for
auto-height EditorElement after having initially computed the size. With
taffy 0.4 however (and specifically that PR mentioned earlier), we're
getting `Size::NONE` in layout phase [^1].
I've noticed though that even with taffy <0.3, the
`known_dimensions.width` was always equal to `available_space.width` in
layout phase. Hence, I went with falling back to `available_space.width`
when it is a definite value and we don't have a
`known_dimensions.width`.
Done this way, both chat input and auto-height story render correctly.
/cc @as-cii
Related:
https://github.com/zed-industries/zed/pull/11606
https://github.com/zed-industries/zed/pull/11622
https://github.com/zed-industries/zed/pull/7868
https://github.com/zed-industries/zed/pull/7896
[^1]: This could possibly be related to change in what gets passed in
https://github.com/DioxusLabs/taffy/pull/573/files#diff-60c916e9b0c507925f032cecdde6ae163e41b84b8e4bc0a6c04f7d846b0aad9eR133
, though I'm not sure if editor is a leaf node in this case
Release Notes:
- N/A
Piotr Osiewicz
created
df190ea
vcs menu: Use project's repositories, do not open directly (#11652)
Click to expand commit body
I ran into this when trying to get #11550 working: the VCS menu would
open repositories on its owned, based on paths, instead of going through
the worktree on which we already store the git repositories.
Release Notes:
- N/A
Thorsten Ball
created
b3dc31d
tasks: Filter out run indicators outside of excerpt bounds instead of using saturating_sub (#11634)
Click to expand commit body
This way we'll display run indicators around excerpt boundaries
correctly.
Release Notes:
- N/A
Piotr Osiewicz
created
358bc2d
Replace `rich_text` with `markdown` in `assistant2` (#11650)
Click to expand commit body
We don't implement copy yet but it should be pretty straightforward to
add.
https://github.com/zed-industries/zed/assets/482957/6b4d7c34-de6b-4b07-aed9-608c771bbbdb
/cc: @rgbkrk @maxbrunsfeld @maxdeviant
Release Notes:
- N/A
Release Notes:
- vim: Added support for the changelist. `g;` and `g,` to the
previous/next change
- vim: Added support for the `'.` mark
- vim: Added support for `gi` to resume the previous insert
- [x] Build out cli on linux
- [x] Add support for --dev-server-token sent by the CLI
- [x] Package cli into the .tar.gz
- [x] Link the cli to ~/.local/bin in install.sh
Release Notes:
- linux: Add cli support for managing zed
While these would match how macOS handles this scenario, they crash on
Catalina, and require mouse clicks to interact.
cc @bennetbo
Release Notes:
- N/A
Release Notes:
- vim: Added support for buffer-local marks (`'a-'z`) and some builtin
marks `'<`,`'>`,`'[`,`']`, `'{`, `'}` and `^`. Global marks (`'A-'Z`),
and other builtin marks (`'0-'9`, `'(`, `')`, `''`, `'.`, `'"`) are not
yet implemented. (#5122)
---------
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Zachiah Sawyer
and
Conrad Irwin
created
9cef0ac
Cleanup tool registry API surface (#11637)
Click to expand commit body
Fast followups to #11629
Release Notes:
- N/A
---------
Co-authored-by: Max <max@zed.dev>
Stream characters in for tool calls to allow rendering partial input.
https://github.com/zed-industries/zed/assets/836375/0f023a4b-9c46-4449-ae69-8b6bcab41673
Release Notes:
- N/A
---------
Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Co-authored-by: Marshall <marshall@zed.dev>
Co-authored-by: Max <max@zed.dev>
Kyle Kelley
,
Max Brunsfeld
,
Marshall
, and
Max
created
27ed0f4
assistant2: Render saved conversations inline instead of in a modal (#11630)
Click to expand commit body
This PR reworks how saved conversations are rendered in the new
assistant panel.
Instead of rendering them in a modal we now display them in the panel
itself:
<img width="402" alt="Screenshot 2024-05-09 at 6 18 40 PM"
src="https://github.com/zed-industries/zed/assets/1486634/82decc04-cb31-4d83-a942-7e8426e02679">
Release Notes:
- N/A
Marshall Bowers
created
a3e7554
Reduce serializability of project delete (#11628)
Click to expand commit body
This may reduce locks when deleting projects.
Release Notes:
- N/A
Fixes: #10842
Release Notes:
- vim: Fix pasting with a count (#10842)
Conrad Irwin
created
bca639b
Use larger runners for Linux CI steps (#11574)
Click to expand commit body
To speed up Linux CI builds, use a set of self-hosted Linux machines and
use them to run all slow CI steps for Linux: "tests", bundling and
nightly builds.
Also adds a set of dev icons as Linux bundling script required them for
`run-bundling`-tagged builds from regular PRs.
Same icons as for Preview were used, but, ideally, something different
could be created.
Release Notes:
- N/A
From now on, only top-level captures are treated as runnable tags and
the rest is appended to task context as custom environmental variables
(unless the name is prefixed with _, in which case the capture is
ignored). This is most likely gonna help with Pest-like test runners.
Release Notes:
- N/A
---------
Co-authored-by: Remco <djsmits12@gmail.com>
This PR leverages a more modern Windows API to implement
`WindowsDispatcher`, aligning its implementation more closely with that
of the `macOS` platform. The following improvements have been made:
1. Similar to `macOS`, there is no longer a need to use `sender` and
`receiver` to dispatch a `Runnable` on the main thread.
2. There is also no longer a need to use an `Event` for synchronization.
3. Consistent with #7506 and #11269, `Runnable` is now executed with
high priority.
However, this PR raises the minimum Windows version requirement of
`GPUI` to Windows 10, specifically Windows 10 Fall Creators Update
(10.0.16299). However, the `alacritty_terminal` dependency in Zed relies
on `conPTY` on Windows, an API introduced in the Windows 10 Fall
Creators Update. Therefore, the impact of this PR on Zed should be
minimal. I'd like to hear your voices about this PR, especially about
the minimum Windows version bumping.
Release Notes:
- N/A
张小白
created
ba25e37
Fix scrollbar markers for folded code (#11625)
Click to expand commit body
There're two errors in scrollbar markers in the presence of folded code:
1. Some markers are not displayed (when the marked row numbers are
greater than the total displayed rows count after folding).
2. Code folding / unfolding doesn't trigger markers repainting.
This PR fixes both problems.
Release Notes:
- Fixed scrollbar markers for folded code.
The second problem (markers are repainted after I move the cursor, not
after folding):
https://github.com/zed-industries/zed/assets/2101250/57ed563d-186d-4497-98ab-d4f946416726
Andrew Lygin
created
c73ef1a
assistant2: List saved conversations from disk (#11627)
Click to expand commit body
This PR updates the saved conversation picker to use a list of
conversations retrieved from disk instead of the static placeholder
values.
Release Notes:
- N/A
This PR fixes copying code blocks in the docs.
The problem was that some of the elements we removed from the base
mdBook template were causing errors in the script, which prevented the
right event listeners from being registered for the copy button.
To remedy this, the elements have been restored, but are using `display:
none` so that they don't appear in the UI.
Resolves #11592.
Release Notes:
- N/A