d3a38c6
Only spawn the extensions reconciliation task in the collab service (#8301)
Click to expand commit body
This PR makes it so the background task that reconciles the extensions
database with the blob store only runs on the `collab` service.
This avoids us having multiple of these jobs running at once.
Release Notes:
- N/A
Co-Authored-By: Marshall <marshall@zed.dev>
We broke it by deploying two servers simultaneously.
Release Notes:
- N/A
Co-authored-by: Marshall <marshall@zed.dev>
Release Notes:
- Use an inclusive range for local range containment check to match LSP
behavior & fix popover flashing while the cursor moves over the last
character of a symbol.
https://github.com/zed-industries/zed/assets/17223924/6c3ddc9c-04fb-4414-812f-025ede5ecaf7
Wayland requires the client to implement key repetition. This PR
implements the functionality as it's supposed to, but I don't see the
`repeat_info` event come in so the feature uses the default values (but
my system is configured for a much smaller `delay` and a much faster
`rate`). But this is good enough for now.
https://wayland-book.com/seat/keyboard.html#key-repeat
[Kooha-2024-02-20-20-42-12.webm](https://github.com/zed-industries/zed/assets/1423607/fb9fc327-efb7-43d1-9b53-1f8a3d9ba608)
Rom Grk
created
3bc7cd6
Allow typing space in workspace::SendKeystrokes (#8288)
Click to expand commit body
Fixes #8222
Release Notes:
- N/A
Conrad Irwin
created
b0872b5
Deploy the ZED_CLIENT_CHECKSUM_SEED too (#8289)
Click to expand commit body
Release Notes:
- N/A
Conrad Irwin
created
602fd58
Fix for toggles on the Welcome page (#8159)
Click to expand commit body
Release Notes:
The issue is that when welcome page appears settings.json file is not
created yet. So the idea of this fix is to create the file in case it is
not there yet.
- Fixed the toggles on the welcome screen not working if no settings
file exists yet.
([#8153](https://github.com/zed-industries/zed/issues/8153)).
---------
Co-authored-by: Thorsten Ball <mrnugget@gmail.com>
Co-authored-by: Marshall <marshall@zed.dev>
Uladzislau Kaminski
,
Thorsten Ball
, and
Marshall
created
ed3bb68
Do not display inlay hints as bold (#8283)
Click to expand commit body
I think bold is the least fitting font weight for inlay hints, which
should be subtle hints and not, well, bold.
If someone feels strongly about this, I can revert, but only if we add
the ability to change this per theme.
Until then: beautiful, thin, subtle inlay hints!
Release Notes:
- Improved styling of inlay hints by not making them bold in the editor.

Thorsten Ball
created
522176d
Adjust Kubernetes manifests for deploying API service (#8281)
Click to expand commit body
This PR adjusts our Kubernetes manifests for deploying the new API
service.
Release Notes:
- N/A
---------
Co-authored-by: Conrad <conrad@zed.dev>
Marshall Bowers
and
Conrad
created
f19ab46
Add telemetry events backend for collab (#8220)
Click to expand commit body
Send telemetry to collab not zed.dev
Release Notes:
- N/A
---------
Co-authored-by: Marshall <marshall@zed.dev>
Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
Conrad Irwin
,
Marshall
, and
Marshall Bowers
created
6d91224
Debounce language server reinstall attempts (#8277)
Click to expand commit body
I don't think there's value in retrying 4 times as fast as possible,
especially if we might hit the Github API every time to check for the
newest version.
That gets us in rate limit problems quickly.
Release Notes:
- N/A
Release Notes:
- vim: Fixed a panic when using H/M/L when scrolled beyond the end of
the buffer
Conrad Irwin
created
c90065e
chat: add copy text entry to message menu (#8271)
Click to expand commit body
As we don't have selection inside the chat right now (which might be
complicated to implement, e.g. cross element selection and markdown
blocks), I think its viable to support copying the whole text of a
message using the message menu:

Release Notes:
- Added option to copy the text of a message within the chat
Bennet Bo Fenner
created
0f584cb
chore: Extract languages from `zed` crate (#8270)
Click to expand commit body
- Moves languages module from `zed` into a separate crate. That way we
have less of a long pole at the end of compilation.
- Removes moot dependencies on editor/picker. This is totally harmless
and might help in the future if we decide to decouple picker from
editor.
Before:
```
Number of crates that depend on 'picker' but not on 'editor': 1
Total number of crates that depend on 'picker': 13
Total number of crates that depend on 'editor': 30
```
After:
```
Number of crates that depend on 'picker' but not on 'editor': 5
Total number of crates that depend on 'picker': 12
Total number of crates that depend on 'editor': 26
```
The more crates depend on just picker but not editor, the better in that
case.
Release Notes:
- N/A
Piotr Osiewicz
created
7cf0696
Pick up more home dir shell env when spawning (#8273)
Click to expand commit body
Release Notes:
- Improved how Zed picks up shell environment when spawned.
This PR fixes the buffer symbol search to show `js` and `ts` buffer
symbols when using svelte components with `ts`.
Does also seem to improve `ts` capabilities (probably because there has
been a conflict of `js` and `ts` before).
Unfortunately when changing the script tag from no lang attribute to
`ts` one needs to update the file (input anyting) to get correct buffer
symbol search.
Before:

After:

Release Notes:
- Fixed svelte outlines for `TS`.
Robin Pfäffle
created
42ac988
Detect and possibly use user-installed `gopls` / `zls` language servers (#8188)
Click to expand commit body
After a lot of back-and-forth, this is a small attempt to implement
solutions (1) and (3) in
https://github.com/zed-industries/zed/issues/7902. The goal is to have a
minimal change that helps users get started with Zed, until we have
extensions ready.
Release Notes:
- Added detection of user-installed `gopls` to Go language server
adapter. If a user has `gopls` in `$PATH` when opening a worktree, it
will be used.
- Added detection of user-installed `zls` to Zig language server
adapter. If a user has `zls` in `$PATH` when opening a worktree, it will
be used.
Example:
I don't have `go` installed globally, but I do have `gopls`:
```
~ $ which go
go not found
~ $ which gopls
/Users/thorstenball/code/go/bin/gopls
```
But I do have `go` in a project's directory:
```
~/tmp/go-testing φ which go
/Users/thorstenball/.local/share/mise/installs/go/1.21.5/go/bin/go
~/tmp/go-testing φ which gopls
/Users/thorstenball/code/go/bin/gopls
```
With current Zed when I run `zed ~/tmp/go-testing`, I'd get the dreaded
error:

But with the changes in this PR, it works:
```
[2024-02-23T11:14:42+01:00 INFO language::language_registry] starting language server "gopls", path: "/Users/thorstenball/tmp/go-testing", id: 1
[2024-02-23T11:14:42+01:00 INFO language::language_registry] found user-installed language server for Go. path: "/Users/thorstenball/code/go/bin/gopls", arguments: ["-mode=stdio"]
[2024-02-23T11:14:42+01:00 INFO lsp] starting language server. binary path: "/Users/thorstenball/code/go/bin/gopls", working directory: "/Users/thorstenball/tmp/go-testing", args: ["-mode=stdio"]
```
---------
Co-authored-by: Antonio <antonio@zed.dev>
Thorsten Ball
and
Antonio
created
65318cb
Re-enable PureScript on Linux and Windows (#8252)
Click to expand commit body
Relevant PRs:
- https://github.com/zed-industries/zed/pull/7543
- https://github.com/zed-industries/zed/pull/7827
Release Notes:
- Fixed build issues with PureScript on Windows and Linux
postsolar
created
71557f3
Adjust "recent projects" modal behavior to allow opening projects in both current and new window (#8267)
Click to expand commit body

Fixes https://github.com/zed-industries/zed/issues/7419 by changing the
way "recent projects" modal confirm actions work:
* `menu::Confirm` now reuses the current window when opening a recent
project
* `menu::SecondaryConfirm` now opens a recent project in the new window
* neither confirm tries to open the current project anymore
* modal's placeholder is adjusted to emphasize this behavior
Release Notes:
- Added a way to open recent projects in the new window
Kirill Bulatov
created
a588f67
Ensure default prettier installs correctly when certain FS entries are missing (#8261)
Click to expand commit body
Fixes https://github.com/zed-industries/zed/issues/7865
* bind default prettier (re)installation decision to
`prettier_server.js` existence
* ensure the `prettier_server.js` file is created last, after all
default prettier packages installed
* ensure that default prettier directory exists before installing the
packages
* reinstall default prettier if the `prettier_server.js` file is
different from what Zed expects
Release Notes:
- Fixed incorrect default prettier installation process
Improve docs & remove `vulkan-validation-layers` from the dependencies.
Rom Grk
created
caa156a
Fix a panic in the assistant panel (#8244)
Click to expand commit body
Release Notes:
- Fixed a panic in the assistant panel when the app is shutting down.
Conrad Irwin
created
a82f485
Add settings to control gutter elements (#7665)
Click to expand commit body
The current gutter was a bit too big for my taste, so I added some
settings to change which visual elements are shown, including being able
to hide the gutter completely.
This should help with the following issues: #4963, #4382, #7422
New settings:
```json5
"gutter": {
"line_numbers": true, // Whether line numbers are shown
"buttons": true // Whether the code action/folding buttons are shown
}
```
The existing `git.git_gutter` setting is also taken into account when
calculating the width of the gutter.
We could also separate the display of the code action and folding
buttons into separate settings, let me know if that is desirable.
## Screenshots:
- Everything on (`gutter.line_numbers`, `gutter.buttons`,
`git.git_gutter`):
<img width="434" alt="SCR-20240210-trfb"
src="https://github.com/zed-industries/zed/assets/17355488/bcc55311-6e1d-4c22-8c43-4f364637959b">
- Only line numbers and git gutter (`gutter.line_numbers`,
`git.git_gutter`):
<img width="406" alt="SCR-20240210-trhm"
src="https://github.com/zed-industries/zed/assets/17355488/0a0e074d-64d0-437c-851b-55560d5a6c6b">
- Only git gutter (`git.git_gutter`):
<img width="356" alt="SCR-20240210-trkb"
src="https://github.com/zed-industries/zed/assets/17355488/7ebdb38d-93a5-4e38-b008-beabf355510d">
- Only git gutter and buttons (`git.git_gutter`, `gutter.buttons`):
<img width="356" alt="SCR-20240210-txyo"
src="https://github.com/zed-industries/zed/assets/17355488/e2c92c05-cc30-43bc-9399-09ea5e376e1b">
- Nothing:
<img width="350" alt="SCR-20240210-trne"
src="https://github.com/zed-industries/zed/assets/17355488/e0cd301d-c3e0-4b31-ac69-997515928b5a">
## Release Notes:
- Added settings to control the display of gutter visual elements. `"gutter": {"line_numbers": true, "code_actions": true, "folds": true}` ([#8041](https://github.com/zed-industries/zed/issues/8041)) ([#7422](https://github.com/zed-industries/zed/issues/7422))
```
---------
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
This PR adds a `SystemClock` trait for abstracting away the system
clock.
This allows us to swap out the real system clock with a
`FakeSystemClock` in the tests, thus allowing the fake passage of time.
We're using this in `Telemetry` to better mock the clock for testing
purposes.
Release Notes:
- N/A
Not available before the new eslint language server version is released, but prepares the ground for it.
## Further reading
- https://eslint.org/docs/latest/use/configure/configuration-files-new
- https://github.com/microsoft/vscode-eslint?tab=readme-ov-file#settings-options
Release Notes:
- Added ESLint flat config support
([#7271](https://github.com/zed-industries/zed/issues/7271))
[Profiling](https://crates.io/crates/profiling) crate allows easy
integration with various profiler tools. The best thing is - annotations
compile to nothing unless you request a specific feature.
For example, I used this command to enable Tracy support:
```bash
cargo run --features profiling/profile-with-tracy
```
At the same time I had Tracy tool open and waiting for connection. It
gathered nice stats from the run:

Release Notes:
- N/A
Dzmitry Malyshau
created
250df70
Tidy up indicators in collab panel (#8214)
Click to expand commit body
Move away from columns of icons towards the "changed" info dot we used
for files.
Secondary actions for chat/notes still show up (if you're lucky) on
hover.
Co-Authored-By: Marshall <marshall@zed.dev>
Release Notes:
- Improved design of collab panel
---------
Co-authored-by: Marshall <marshall@zed.dev>
Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
Conrad Irwin
,
Marshall
, and
Marshall Bowers
created
ba6b319
Add an app_menu to Storybook which enables quitting with `cmd-q` (#8166)
Click to expand commit body
I really think storybook is a cool standalone app but there are some
usability issues that are getting in the way of making this a fun tool
to use.
Currently it is not easy to gracefully exit out of storybook.
In fact even trying to Ctrl-c out of storybook seems currently broken to
me...
So the only real way to exit out of storybook is to kill the process
after a Ctrl-z.
This PR attempts to make this much easier by adding a simple app_menu
with a menu item called quit along with the ability to *Cmd-q* out of
storybook as well...
Both the menu item quit and *Cmd-q* gracefully exit storybook.
There are still a bunch of issues with storybook which I plan on
addressing in future PR's but this is a start and something that to me
is the highest priority to make storybook more functional and easy to
use moving forward.
One of my longer term goals of storybook is to have it be a nice stand
alone application similar to
[Loungy](https://github.com/MatthiasGrandl/Loungy) which can be used as
a nice tutorial application for how to develop a real world *gpui* app.
For that reason I added a *assets/keymaps/storybook.json* file as well.
Fixes 'Reveal in Finder' opening files instead of showing them in the
file explorer.
Tested on Fedora KDE 39.
Release Notes:
- N/A
apricotbucket28
created
946f4a3
Wayland: avoid replacing text with empty string (#8103)
Click to expand commit body
Fix an issue where the `ime_key` is sometimes an empty string, and
pressing a keystroke replaces the selected text.
E.g. select some text, press `Escape`: selected text is deleted.
Rom Grk
created
af06063
Add checkbox to only show installed extensions (#8208)
Click to expand commit body
This PR adds a checkbox to the extensions view to allow filtering to
just extensions that are installed:
<img width="1408" alt="Screenshot 2024-02-22 at 12 05 40 PM"
src="https://github.com/zed-industries/zed/assets/1486634/b5e82941-53be-432e-bfe5-fec7fd0959c5">
Release Notes:
- Added a checkbox to the extensions view to only show installed
extensions.
Marshall Bowers
created
5c4f3c0
Add option to either use system clipboard or vim clipboard (#7936)
Click to expand commit body
Release Notes:
- vim: Added a setting to control default clipboard behaviour. `{"vim":
{"use_system_clipboard": "never"}}` disables writing to the clipboard.
`"on_yank"` writes to the system clipboard only on yank, and `"always"`
preserves the current behavior. ([#4390
](https://github.com/zed-industries/zed/issues/4390))
---------
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Fixes https://github.com/zed-industries/zed/issues/7650
Release Notes:
- Fixed eslint diagnostics not showing up due to old eslint version used
Kirill Bulatov
created
b716035
Editor: support go to implementation (#7890)
Click to expand commit body
Release Notes:
- Added "Go to implementation" support in editor.
Leon Huston
created
94bc216
worktree: Do not scan for .gitignore files beyond project root. (#8189)
Click to expand commit body
This has been fixed and reported before (and got lost in gpui1->gpui2
transition);
https://github.com/zed-industries/zed/issues/5749#issuecomment-1959217319
Release Notes:
- Fixed .gitignore files beyond the first .git directory being respected
by the worktree (zed-industries/zed#5749).
Piotr Osiewicz
created
95d5ea7
Add "Extensions" item to user menu (#8183)
Click to expand commit body
<img width="274" alt="Screenshot 2024-02-22 at 18 12 52"
src="https://github.com/zed-industries/zed/assets/56961917/9057d1be-bedb-474a-a663-c53d62366f26">
Release Note:
- Add "Extensions" menu item to the UI
Ngô Quốc Đạt
created
aff858b
Added a `cmd-backspace` keybinding to delete files in the project panel. (#8163)
Click to expand commit body
Fixes #7228
Release Notes:
- Added a `cmd-backspace` keybinding to delete files in the project panel ([7228](https://github.com/zed-industries/zed/issues/7228))