This PR removes the `basic.conf` file.
In #10099 we suppressed some typo warnings that had cropped up in this
file, but it turns out we don't need the file at all.
Release Notes:
- N/A
Marshall Bowers
created
08e8ffc
docs: minor changes to ESLint docs (#10116)
Click to expand commit body
We allow more than just `shortenToSingleLine`, so let's document the
whole thing.
Release Notes:
- N/A
Thorsten Ball
created
027897e
Do not spawn oneshot tasks from blank prompts (#10115)
Kirill Bulatov
created
c4ceeb7
Fix git blame not working correctly with submodules (#10114)
Click to expand commit body
This fixes #9958 by using the correct working directory in which to run
`git blame`.
This wasn't an issue for a single repository, because we could go from
`.git` one directory up, but it doesn't work for submodules.
Luckily there's a `workdir()` method on `self.repository` that does
exactly what we need.
In submodule:

Not in submodule:

Release Notes:
- N/A
Thorsten Ball
created
58aec1d
Do not push invisible local worktrees into recent documents (#10112)
Click to expand commit body
Follow-up of https://github.com/zed-industries/zed/pull/9919 that
removes invisible worktrees from the list, to avoid things like

Release Notes:
- N/A
Kirill Bulatov
created
9aad30a
Query code actions and hovers from all related local language servers (from remote clients) (#10111)
Click to expand commit body
Supersedes https://github.com/zed-industries/zed/pull/8634
Fixes https://github.com/zed-industries/zed/issues/7947 by continuing
https://github.com/zed-industries/zed/pull/9943 with the remote part.
Now, clients are able to issue collab requests, that query all related
language servers, not only the primary one.
Such mode is enabled for GetHover and GetCodeActions LSP requests only.
Release Notes:
- Added Tailwind CSS hover popovers for Zed in multi player mode
([7947](https://github.com/zed-industries/zed/issues/7947))
Refs #9647
Fixes https://github.com/zed-industries/zed/issues/9792
This pull request moves the computation of scrollbar markers off the
main thread, to prevent them from grinding the editor to a halt when we
have a lot of them (e.g., when there are lots of search results on a
large file). With these changes we also avoid generating multiple quads
for adjacent markers, thus fixing an issue where we stop drawing other
primitives because we've drawn too many quads in the scrollbar.
Release Notes:
- Improved editor performance when displaying lots of search results,
diagnostics, or symbol highlights in the scrollbar
([#9792](https://github.com/zed-industries/zed/issues/9792)).
---------
Co-authored-by: Antonio Scandurra <me@as-cii.com>
Co-authored-by: Nathan <nathan@zed.dev>
Thorsten Ball
,
Antonio Scandurra
, and
Nathan
created
Previously this code would run the changed commend, take its output,
remove the `marker` from the front and then split on `0` byte.
Problem was that `echo` adds a newline, which we did *NOT* skip. So
whatever `env` printed as the first environment variable would have a
`\n` in front of it.
Instead of setting, say, `HOME`, Zed would set `\nHOME`.
This change fixes the issue by switching to `printf '%s' marker`, which
is more portable than using `echo -n`.
This is related to https://github.com/zed-industries/zed/issues/9786 but
I'm not sure yet whether that fixes it.
Release Notes:
- Fixed Zed sometimes missing environment variables from shell in case
they were the first environment variable listed by `/usr/bin/env`.
Thorsten Ball
created
463c16a
Allow users to configure ESLint's `problems` settings (#9981)
Click to expand commit body
Presently the only available setting under `problems` is
`shortenToSingleLine`, which defaults to `false`.
Example Zed `settings.json` to shorten eslint error squiggles to only
show on the first line of the problem:
```json
{
"lsp": {
"eslint": {
"settings": {
"problems": {
"shortenToSingleLine": true
}
}
}
}
}
```
Release Notes:
- Added support for configuring ESLint `problems` settings, ie. `{"lsp":
{"eslint": {"settings": {"problems": {"shortenToSingleLine": true}}}}}`
Demo:
https://github.com/zed-industries/zed/assets/2072378/379faa75-1f37-4fd1-85da-1510f1397d07
William Villeneuve
created
5a2a85a
Fix vim code working on display map chars (#10103)
Click to expand commit body
Release Notes:
- vim: Fixed motion bugs when softwrap, folds or inlay hints were used.
Conrad Irwin
created
754547f
Fix mention notifications are not updated after message change and not removed after a message is deleted (#9847)
Click to expand commit body
@ConradIrwin This is a followup for #9035 as agreed.
Release Notes:
- Fixed mention notifications are updated when channel message is
updated. And mention notifications are removed when message is removed.
---------
Co-authored-by: Bennet Bo Fenner <53836821+bennetbo@users.noreply.github.com>
This PR updates the `typos` configuration to suppress some typos in
`basic.conf`.
AFAICT there must have been an update to `typos` that caused this new
warning to appear.
Release Notes:
- N/A
Marshall Bowers
created
7d5048e
Revert PR #6924 - go to reference when there's only one (#10094)
Click to expand commit body
This PR reverts #6924, for the reasons stated in
https://github.com/zed-industries/zed/pull/6924#issuecomment-2033076300.
It also fixes an issue were the `find_all_references_task_sources`
wasn't cleaned up in all cases.
Release Notes:
- N/A
---------
Co-authored-by: Marshall <marshall@zed.dev>
Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
Max Brunsfeld
,
Marshall
, and
Marshall Bowers
created
span! statically determines which fields are available, and record
silently fails if you write to a field that is not available :/
Release Notes:
- N/A
Conrad Irwin
created
9317fe4
Revert "Revert "Revert dependency updates in #9836 (#10089)""
Click to expand commit body
This reverts commit c8b14ee2cb976ca48b6df5fdf068c18c1d04c7a8.
Conrad Irwin
created
c8b14ee
Revert "Revert dependency updates in #9836 (#10089)"
Click to expand commit body
This reverts commit 55c897d993e63f90645acd1b08a21d81ab402f16.
Conrad Irwin
created
55c897d
Revert dependency updates in #9836 (#10089)
Click to expand commit body
Due to: https://github.com/zed-industries/zed/issues/9985 and an
abundance of caution, I'm reverting the image and svg rendering updates
for now until we can debug the issue. cc: @niklaswimmer
Release Notes:
- N/A
Mikayla Maki
created
6121bfc
Extract Clojure support into an extension (#10088)
Click to expand commit body
This PR extracts Clojure support into an extension and removes the
built-in Clojure support from Zed.
Release Notes:
- Removed built-in support for Clojure, in favor of making it available
as an extension. The Clojure extension will be suggested for download
when you open a `.clj` or other Clojure-related files.
---------
Co-authored-by: Max <max@zed.dev>
Marshall Bowers
and
Max
created
46544d7
Revert PR #8327 - Fix autocomplete completions being cut in half (#10084)
Click to expand commit body
This reverts https://github.com/zed-industries/zed/pull/8327
That PR introduced a regression where completions' syntax highlighting
would be corrupted in a non-deterministic way, such that it varied from
frame to frame:
In the screenshot below, many of the field names (e.g. `cursor`,
`depth`) are incorrectly colored as types instead of fields. The
`finished_states` field has highlighting that changes at the wrong
offset. All of these values changed from frame to frame, creating a
strange flickering effect:
<img width="599" alt="Screenshot 2024-04-01 at 5 56 36 PM"
src="https://github.com/zed-industries/zed/assets/326587/b6a48f02-f146-4f76-92e6-32fb417d86c0">
Release Notes:
- N/A
Max Brunsfeld
created
8df888e
task: Add "remove" button next to oneshot tasks (#10083)
Click to expand commit body
Release Notes:
- Added a "remove" button next to oneshot tasks in tasks modal.
Piotr Osiewicz
created
a1cb677
Make conversions to `wasmtime::Result` postfix-friendly (#10082)
Click to expand commit body
This PR refactors the conversions to `wasmtime::Result` to use a trait
so that we can perform the conversions in a postfix-friendly way.
Release Notes:
- N/A
Marshall Bowers
created
c62239e
Include commit hash in Nightly & Dev builds (#10054)
15ef3f3
Add Tailwind autocomplete for Vue (#10078)
Click to expand commit body
This fixes #4403 by adding TailwindLsp to .vue files too and
autocomplete aswell

Release Notes:
- Added Tailwind support in `.vue` files
([#4403](https://github.com/zed-industries/zed/issues/4403)).
René
created
ad03a7e
Remove tooltips on scroll wheel events (#10069)
Click to expand commit body
This fixes #9928 by invalidating the tooltip on mouse scroll.
I think _ideally_ we'd have a solution that only invalidates it if,
after mouse scroll, we're not hovering over the element. But I tried
that (by essentially duplicating the code for `MouseMoveEvent` but that
lead to some inconsistencies. I think we don't redraw when we finish
scrolling.
This now behaves exactly like tooltips in Chrome: invalidate on scroll,
move mouse again to trigger the tooltip.
It also behaves like the hover tooltips in the editor.
https://github.com/zed-industries/zed/assets/1185253/05b9170e-414c-4453-84e5-90510b943c15
Release Notes:
- N/A
Thorsten Ball
created
84cca62
Fix alignment in git blame gutter (#10067)
Click to expand commit body
Fixes #9977.
Instead of doing nasty string alignment, this now uses the layout
engine.

Release Notes:
- N/A
Thorsten Ball
created
b43602f
editor: indent from cursor position with a single selection (#10073)
Click to expand commit body
In 9970 @JosephTLyons noticed that tab + tab_prev action sequence leaves
a buffer in the dirty state, whereas "similar" indent-outdent does not.
I've tracked it down to the fact that tabs are always inserted at the
start of the line, regardless of the cursor position, whereas tab-prevs
act from cursor position.
This PR adjust tab/tab-prev actions (and indent-outdent) to act from
cursor position if possible. That way we can correctly report buffer
dirty state for these event sequences.
Fixes #9970
Release Notes:
- Fixed buffer being marked as dirty when using tab/tab-prev actions.
Piotr Osiewicz
created
1dbd520
project search: Persist search history across session (#9932)
Click to expand commit body
Partially implements #9717, persistence between restarts is currently
missing, but I would like to get feedback on the implementation first.
Previously the search history was not saved across different project
searches. As the `SearchHistory` is now maintained inside of the
project, it can be persisted across different project searches.
I also removed the behavior that a new query replaces the previous
search query, if it contains the text of the previous query.
I believe this was only intended to make buffer search work, therefore I
disabled this behavior but only for the project search.
Currently when you navigated through the queries the tab title changed
even if the search was not started, which doesn't make sense to me.
Current behavior:
https://github.com/zed-industries/zed/assets/53836821/1c365702-e93c-4cab-a1eb-0af3fef95476
With this PR the tab header will actually keep the search name until you
start another search again.
---
Showcase:
https://github.com/zed-industries/zed/assets/53836821/c0d6e496-915f-44bc-be16-12d7c3cda2d7
Release Notes:
- Added support for persisting project search history across a session
- Fixed tab header of project search changing when cycling through
search history, even when there is no search submitted
Bennet Bo Fenner
created
c15b9d4
Avoid failing format test with current date (#10068)
Click to expand commit body
Replace the test that tested with
`chrono::offset::Local::now().naive_local()` taken, failing the
formatting once per year at least.
Release Notes:
- N/A
- Fix a bug where modifiers would be dispatched before they changed
- Add a secondary modifier
- Improve keybindings
Release Notes:
- N/A
Mikayla Maki
created
e0cd96d
Fix up comments and remove some commented-out code (#10059)
Click to expand commit body
Release Notes:
- N/A
Marshall Bowers
created
f19e84d
Fix doc comments for `StyledText` (#10058)
Click to expand commit body
This PR fixes some doc comments for `StyledText` to better reflect Rust
doc comment conventions.
Release Notes:
- N/A
Marshall Bowers
created
dde2748
vim: Avoid removing keymap context when blurred (#9960)
Click to expand commit body
Release Notes:
- Fixes #4502
Notes:
I removed this line of code which removes the vim keymap contexts when
an editor is blurred.
https://github.com/zed-industries/zed/blob/16e6f5643cec67982a88bebee6d8d49537af7306/crates/vim/src/vim.rs#L703-L705
I tried whether the editor context would be poisoned when switching
between two editors and disabling vim mode and switching back but the
context looked normal. If this change is wrong, please advise. I could
not find why this piece of code was required.
This fixes #4502 as the reason why keybinds did not show up was because
the vim context was removed from the editor's keymap contexts. Other
paths for a fix could be to filter out vim predicates when finding
keybinds for actions but I believe that'd add unnecessary complexity.
---------
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Release Notes:
- Fixed a panic in editor::SelectPrevious (`gN` in vim)
([#9766](https://github.com/zed-industries/zed/issues/9766)).
Conrad Irwin
created
fbf3e1d
Use "install" to refer to extension installation process (#10049)
Click to expand commit body
Release Notes:
- Improved discoverability of dev extension installation action
([#10048](https://github.com/zed-industries/zed/issues/10048)).
moshyfawn
created
83ce783
Respect version constraints when installing extensions (#10052)
Click to expand commit body
This PR modifies the extension installation and update process to
respect version constraints (schema version and Wasm API version) to
ensure only compatible versions of extensions are able to be installed.
To achieve this there is a new `GET /extensions/updates` endpoint that
will return extension versions based on the provided constraints.
Release Notes:
- N/A
---------
Co-authored-by: Max <max@zed.dev>
Marshall Bowers
and
Max
created
39cc3c0
Allow extensions to provide data for `language_ids` (#10053)
Click to expand commit body
This PR makes it so extensions can provide values for the `language_ids`
method on the `LspAdapter` trait.
These are provided as data in the `language_servers` section of the
`extension.toml`, like so:
```toml
[language_servers.intelephense]
name = "Intelephense"
language = "PHP"
language_ids = { PHP = "php"}
```
Release Notes:
- N/A
Co-authored-by: Max <max@zed.dev>
Release Notes:
- vim: Fixed `%` in visual mode when at the end of a line.
Conrad Irwin
created
8b586ef
Add new `make-file-executable` API for extensions (#10047)
Click to expand commit body
This PR adds a new function, `make-file-executable`, to the Zed
extension API that can be used to mark a given file as executable
(typically the language server binary).
This is available in v0.0.5 of the `zed_extension_api` crate.
We also reworked how we represent the various WIT versions on disk to
make it a bit clearer what the version number entails.
Release Notes:
- N/A
---------
Co-authored-by: Max <max@zed.dev>
Marshall Bowers
and
Max
created
6e49a24
Fix autocomplete completions being cut in half (#8327)
Click to expand commit body
Release Notes:
- Fixed LSP completions being cut in half
([#8126](https://github.com/zed-industries/zed/issues/8126)).
Previously, autocomplete suggestions were covered by autocomplete
documentation, which only appeared after a short delay.
Now, when an autocomplete suggestion is too long to fit, the name is
truncated with ellipses like how VSCode does it:

Additionally `completion_documentation_secondary_query_debounce`'s
default was changed from 300ms to 0ms, which makes the editor feel
significantly faster (in my opinion).
Before:
https://github.com/zed-industries/zed/assets/50590465/6443670b-fe25-4428-9a39-54405d9a7cec
After:
https://github.com/zed-industries/zed/assets/50590465/72572487-3eb4-4a96-a2f9-608e563a1f05
---------
Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
Co-authored-by: Conrad <conrad@zed.dev>
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Ephram
,
Marshall Bowers
,
Conrad
, and
Conrad Irwin
created
d1d4f83
Revert "Fix key repeat after releasing a different key on Wayland" (#10039)
Click to expand commit body
Reverts zed-industries/zed#9768
That change didn't seem necessary and it made symbols that need a key
shortcut to be written (e.g. SHIFT + 2 for a quote) infinitely repeat.
Release Notes:
- N/A
apricotbucket28
created
aa76182
Skip `.DS_Store` files when looking for extension directories (#10046)
Click to expand commit body
This PR makes it so `.DS_Store` files are skipped when trying to load
extension directories.
Previously it would fail and log an error.
Release Notes:
- Fixed an issue where the presence of a `.DS_Store` file in the
extensions directory would produce an error in the logs.
If you use soft tabs by default, editing Makefiles will be broken as
they require tab indentation to parse correctly.
Release Notes;
- Changed default settings for `Makefile`s to use hard tabs.
Stephen Belanger
created
a0f236a
themes: Add `pane_group.border` color (#9986)
Click to expand commit body
This PR adds the `pane_group.border` theme attribute that defines the
color of the borders between pane groups.
- Defaults to the `border` color, so nothing changes in the existing
themes.
- VSCode theme converter takes it from the `editorGroup.border`.
The borders marked by red are affected:
<img width="878" alt="pane_group_borders"
src="https://github.com/zed-industries/zed/assets/2101250/54b9fd39-b3e1-4898-a047-ee0b6ec953ed">
Release Notes:
- Added `pane_group.border` to the theme for modifying the border color
for panes within a pane group.
Related Issues:
- First discussed in
https://github.com/zed-industries/zed/pull/9754#issuecomment-2026497213
---------
Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
Andrew Lygin
and
Marshall Bowers
created
65840b3
Hoist `profile.dev.package` setting to workspace-level (#10041)
Click to expand commit body
This PR hoists the `profile.dev.package` settings for compiling the
`resvg` crate with optimizations up to the workspace level, since Cargo
was complaining:
```
warning: profiles for the non root package will be ignored, specify profiles at the workspace root:
package: /Users/maxdeviant/projects/zed/crates/gpui/Cargo.toml
workspace: /Users/maxdeviant/projects/zed/Cargo.toml
```
Release Notes:
- N/A
Marshall Bowers
created
954c772
Use `ignored` color from theme for items ignored by Git (#10038)
Click to expand commit body
This PR updates the color of the label used for Git-aware items to use
the `ignored` color from the theme when the item is ignored by Git.
The built-in themes have had their `ignored` color updated to match
`text.disabled`, as the existing `ignored` color did not sufficiently
differentiate from non-ignored items.
Fixes #9976.
Release Notes:
- Updated items in the project panel to use the `ignored` color from the
theme when they are ignored by Git
([#9976](https://github.com/zed-industries/zed/issues/9976)).
Marshall Bowers
created
63e566e
Remove git diff base from symlinked files (#10037)
Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/4730

To the left is a symlink, to the right — the real file.
The issue was due to the fact, that symlinks files contain the file path
to the real file, and git (properly) treats that symlink file contents
as diff base, returning in `load_index_text` (via `let content =
repo.find_blob(oid)?.content().to_owned();`) the contents of that
symlink file — the path.
The fix checks for FS metadata before fetching the git diff base, and
skips it entirely for symlinks: Zed opens the symlink file contents
instead, fully obscuring the git symlink diff hunks.
Interesting, that VSCode behaves as Zed before the fix; while the fix
makes Zed behave like Intellij* IDEs now.
Release Notes:
- Fixed git diff hunks appearing in the symlinked files
([4730](https://github.com/zed-industries/zed/issues/4730))
Kirill Bulatov
created
351693c
zig: Add support for .zig.zon files (#10012)
Click to expand commit body
Release Notes:
- N/A
Signed-off-by: Morgan Gallant <morgan@morgangallant.com>
Morgan Gallant
created
c126fdb
Fix panel drag leaking through overlay (#10035)
Click to expand commit body
Closes #10017. While reworking the `overlay` element in #9911, I did not
realize that all overlay elements called `defer_draw` with a priority of
`1`.
/cc @as-cii
Not including release notes, since it was only present in nightly.
Release Notes:
- N/A
Bennet Bo Fenner
created
5602593
Check license generation for every PR to avoid license-less crate additions (#10033)
Click to expand commit body
Also fix `anthropic` crate and make it AGPL-licensed, as it's used in
the AGPL-licensed collab part only.
Release Notes:
- N/A