583d85c
Do not add empty tasks to inventory (#8180)
Click to expand commit body
I ran into this when trying out which keybindings work and accidentally
added empty tasks. They get then added to the task inventory and
displayed in the picker.
Release Notes:
- Fixed empty tasks being added to the list of tasks when using `task:
spawn`
---------
Co-authored-by: Kirill <kirill@zed.dev>
Thorsten Ball
and
Kirill
created
36586b7
gpui: use a separate image in the image example and remove unnecessary examples (#8181)
Click to expand commit body
Follow-up of https://github.com/zed-industries/zed/pull/8174#issuecomment-1959031659,
Fixes image example and removes window-less "noop" example.
<img width="1975" alt="Screenshot 2024-02-22 at 17 34 15"
src="https://github.com/zed-industries/zed/assets/9134003/060d8484-63b6-415a-9f06-189542422457">
Release Notes:
- N/A
Follow up of #7943.
Updates the docs for inlay hints as they are incorrect (for Svelte).
Release Notes:
- N/A
Robin Pfäffle
created
6f36527
gpui: add example sections in Cargo.toml (#8174)
Click to expand commit body
So that we can run the example simply by `cargo run --example hello_world`
Release Notes:
- N/A
Xinzhao Xu
created
aa34e30
Fix removal of brackets inserted by auto-close when using snippets (#7265)
Click to expand commit body
Release Notes:
- Fixed auto-inserted brackets (or quotes) not being removed when they
were inserted as part of a snippet.
([#4605](https://github.com/zed-industries/issues/4605))
---------
Co-authored-by: Thorsten Ball <mrnugget@gmail.com>
Hans
and
Thorsten Ball
created
e5d971f
Add url preview tooltip to repository link in extensions view (#8179)
Click to expand commit body
Because the `repository` url field is defined via the user's
`extension.json` file, a user could insert a malicious link. I want to
be able to preview repository urls before clicking the button.
Release Notes:
- Add url preview tooltip to repository link in extensions view.
Joseph T. Lyons
created
38c3a93
Add action to open release notes locally (#8173)
Click to expand commit body
Fixes: https://github.com/zed-industries/zed/issues/5019
zed.dev PR: https://github.com/zed-industries/zed.dev/pull/562
I've been wanting to be able to open release notes in Zed for awhile,
but was blocked on having a rendered Markdown view. Now that that is
mostly there, I think we can add this. I have not removed the `auto
update: view release notes` action, since the Markdown render view
doesn't support displaying media yet. I've opted to just add a new
action: `auto update: view release notes locally`. I'd imagine that in
the future, once the rendered view supports media, we could remove `view
release notes` and `view release notes locally` could replace it.
Clicking the toast that normally is presented on update
(https://github.com/zed-industries/zed/issues/7597) would show the notes
locally.
The action works for stable and preview as expected; for dev and
nightly, it just pulls the latest stable, for testing purposes.
I changed the way the markdown rendered view works by allowing a tab
description to be passed in.
For files that have a name, it will use `Preview <name>`:
<img width="1496" alt="SCR-20240222-byyz"
src="https://github.com/zed-industries/zed/assets/19867440/a0ef34e5-bd6d-4b0c-a684-9b09d350aec4">
For untitled files, it defaults back to `Markdown preview`:
<img width="1496" alt="SCR-20240222-byip"
src="https://github.com/zed-industries/zed/assets/19867440/2ba3f336-6198-4dce-8867-cf0e45f2c646">
Release Notes:
- Added a `zed: view release notes locally` action
([#5019](https://github.com/zed-industries/zed/issues/5019)).
https://github.com/zed-industries/zed/assets/19867440/af324f9c-e7a4-4434-adff-7fe0f8ccc7ff
Joseph T. Lyons
created
f930969
Allow removing workspaces from the "recent projects" modal (#7885)
Click to expand commit body
<img width="492" alt="Screenshot 2024-02-19 at 10 59 01 AM"
src="https://github.com/zed-industries/zed/assets/1823955/922117f6-81c1-409d-938a-131bcec0f24c">
<img width="675" alt="Screenshot 2024-02-19 at 10 59 27 AM"
src="https://github.com/zed-industries/zed/assets/1823955/fefac68b-9a99-43bb-ac0c-724e7c622455">
Release Notes:
- Added a way to remove entries from the recent projects modal
([7426](https://github.com/zed-industries/zed/issues/7426)).
Tung Hoang
created
266bb62
Update linux deps to include opensuse (#8127)
Click to expand commit body
Release Notes:
- Added support for openSuse to Linux dependency installer script.
d90b052
Update dependencies to include openssl (#8136)
Click to expand commit body
Openssl is required by the `openssl-sys` crate. Trying to build zed on a
Fedora 39 workstation install. This is the error I got from the
compiler.
```
error: failed to run custom build command for `openssl-sys v0.9.93`
Caused by:
process didn't exit successfully: `/home/dionysus/git/zed/target/debug/build/openssl-sys-9f784a7979d04ba8/build-script-main` (exit status: 101)
--- stdout
cargo:rerun-if-env-changed=X86_64_UNKNOWN_LINUX_GNU_OPENSSL_LIB_DIR
X86_64_UNKNOWN_LINUX_GNU_OPENSSL_LIB_DIR unset
cargo:rerun-if-env-changed=OPENSSL_LIB_DIR
OPENSSL_LIB_DIR unset
cargo:rerun-if-env-changed=X86_64_UNKNOWN_LINUX_GNU_OPENSSL_INCLUDE_DIR
X86_64_UNKNOWN_LINUX_GNU_OPENSSL_INCLUDE_DIR unset
cargo:rerun-if-env-changed=OPENSSL_INCLUDE_DIR
OPENSSL_INCLUDE_DIR unset
cargo:rerun-if-env-changed=X86_64_UNKNOWN_LINUX_GNU_OPENSSL_DIR
X86_64_UNKNOWN_LINUX_GNU_OPENSSL_DIR unset
cargo:rerun-if-env-changed=OPENSSL_DIR
OPENSSL_DIR unset
cargo:rerun-if-env-changed=OPENSSL_NO_PKG_CONFIG
cargo:rerun-if-env-changed=PKG_CONFIG_x86_64-unknown-linux-gnu
cargo:rerun-if-env-changed=PKG_CONFIG_x86_64_unknown_linux_gnu
cargo:rerun-if-env-changed=HOST_PKG_CONFIG
cargo:rerun-if-env-changed=PKG_CONFIG
cargo:rerun-if-env-changed=OPENSSL_STATIC
cargo:rerun-if-env-changed=OPENSSL_DYNAMIC
cargo:rerun-if-env-changed=PKG_CONFIG_ALL_STATIC
cargo:rerun-if-env-changed=PKG_CONFIG_ALL_DYNAMIC
cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64-unknown-linux-gnu
cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64_unknown_linux_gnu
cargo:rerun-if-env-changed=HOST_PKG_CONFIG_PATH
cargo:rerun-if-env-changed=PKG_CONFIG_PATH
cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64-unknown-linux-gnu
cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64_unknown_linux_gnu
cargo:rerun-if-env-changed=HOST_PKG_CONFIG_LIBDIR
cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR
cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64-unknown-linux-gnu
cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64_unknown_linux_gnu
cargo:rerun-if-env-changed=HOST_PKG_CONFIG_SYSROOT_DIR
cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR
run pkg_config fail: `PKG_CONFIG_ALLOW_SYSTEM_CFLAGS="1" "pkg-config" "--libs" "--cflags" "openssl"` did not exit successfully: exit status: 1
error: could not find system library 'openssl' required by the 'openssl-sys' crate
--- stderr
Package openssl was not found in the pkg-config search path.
Perhaps you should add the directory containing `openssl.pc'
to the PKG_CONFIG_PATH environment variable
Package 'openssl', required by 'virtual:world', not found
--- stderr
thread 'main' panicked at /home/dionysus/.cargo/registry/src/index.crates.io-6f17d22bba15001f/openssl-sys-0.9.93/build/find_normal.rs:190:5:
Could not find directory of OpenSSL installation, and this `-sys` crate cannot
proceed without this knowledge. If OpenSSL is installed and this crate had
trouble finding it, you can set the `OPENSSL_DIR` environment variable for the
compilation process.
Make sure you also have the development packages of openssl installed.
For example, `libssl-dev` on Ubuntu or `openssl-devel` on Fedora.
If you're in a situation where you think the directory *should* be found
automatically, please open a bug at https://github.com/sfackler/rust-openssl
and include information about your system as well as this message.
$HOST = x86_64-unknown-linux-gnu
$TARGET = x86_64-unknown-linux-gnu
openssl-sys = 0.9.93
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...```
I didn't explicitly test this patch on arch or debian.
Release Notes:
- Added/Fixed/Improved ... ([#8135](https://github.com/zed-industries/zed/issues/8135)).
Ferdinand Theil
created
49a53e7
titlebar: show placeholder when no project is selected (#8021)
Click to expand commit body
When no project is selected, the recent project dropdown is displaying
an empty string, making the button basically impossible to click. This
PR adds a placeholder value for that case.
Here is what it looks like now:

Release Notes:
- Added placeholder to titlebar when no project is selected
f895d66
Make language server id more explicit in unhandled message logs (#8131)
Click to expand commit body
Before:
```
[2024-02-21T18:55:55+02:00 INFO language::language_registry] starting language server "eslint", path: "/Users/someonetoignore/Downloads/eslint-configs-demo", id: 2
[2024-02-21T18:55:56+02:00 INFO lsp] 2 unhandled notification window/logMessage:
{
"type": 3,
"message": "ESLint server running in node v18.15.0"
}
[2024-02-21T18:55:56+02:00 INFO lsp] 2 unhandled notification eslint/confirmESLintExecution:
{
"scope": "local",
"uri": "file:///Users/someonetoignore/Downloads/eslint-configs-demo/index.js",
"libraryPath": "/Users/someonetoignore/Downloads/eslint-configs-demo/node_modules/eslint/lib/api.js"
}
```
After:
```
[2024-02-21T18:57:31+02:00 INFO language::language_registry] starting language server "eslint", path: "/Users/someonetoignore/Downloads/eslint-configs-demo", id: 2
[2024-02-21T18:57:32+02:00 INFO lsp] Language server with id 2 sent unhandled notification window/logMessage:
{
"type": 3,
"message": "ESLint server running in node v18.15.0"
}
[2024-02-21T18:57:32+02:00 INFO project::prettier_support] Fetching default prettier and plugins: [("prettier-plugin-tailwindcss", "0.5.11"), ("prettier", "3.2.5")]
[2024-02-21T18:57:32+02:00 INFO lsp] Language server with id 2 sent unhandled notification eslint/confirmESLintExecution:
{
"scope": "local",
"uri": "file:///Users/someonetoignore/Downloads/eslint-configs-demo/index.js",
"libraryPath": "/Users/someonetoignore/Downloads/eslint-configs-demo/node_modules/eslint/lib/api.js"
}
```
We have to pass a name there too, but the problem here is that the
unhandled message callback is created very early, along with the binary,
but the server name is received from the LSP initialize response, which
is a totally separate piece of code.
I plan to refactor that code next, but so far, improve the logs at least
slightly.
Release Notes:
- N/A
Kirill Bulatov
created
7bf16f2
Fix a bug when extension loading is failed after it's folder is viewed by MacOS finder (#8111)
Click to expand commit body
Fixes #8096
# Bug description
I was experimenting with adding extensions and almost went crazy trying
to make my demo extension work. It appeared that I was copying files
with Finder that creates hidden `.DS_Store` files which interfered with
Zed's loading logic. It assumes that `languages/` directory contains
only directories and never files and so it crashes when meets
`.DS_Store`. This makes any extension stop working after it has been
viewed via Finder
# Change
Check if path is directory when loading extension languages (so it will
skip .DS_Store files)
Added documentation for
[#4970](https://github.com/zed-industries/zed/issues/4970), a feature
added in the latest update. Will need to modify `Default Settings` to
reflect the new default theme example.
Release Notes:
- N/A
Kyber
created
0c939e5
Add task docs and default keybindings (#8123)
Click to expand commit body
Also group task source modules together
Release Notes:
- N/A
---------
Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>
Kirill Bulatov
and
Piotr Osiewicz
created
b9151b9
Runnables: remove version field from the format (#8118)
Click to expand commit body
This changes the format of runnables slightly (the top-level object is
now a sequence, not a map).
The 2nd commit pulls in aliases from .zshrc and co.
Release Notes:
- N/A
45e2c01
Copilot: handle "ok" status message when no user is set (#8116)
Click to expand commit body
In #6954 a user has trouble using copilot. We haven't gotten to the
bottom of the problem, but one problem is that apparently sometimes (I'm
going to find out when) copilot sends an `"OK"` status message without a
username. This is from the user's logs:
2024-02-20T15:28:41-03:00 [ERROR] failed to deserialize response from
language server: missing field `user`. Response from language server:
"{\"status\":\"OK\"}"
The official `copilot.vim` plugin handles this as if the user is not
authenticated (!= authorized):
https://github.com/github/copilot.vim/blob/1a284014d2e0baf367706a94b2a9ee5fd56fd457/autoload/copilot.vim#L574-L579
So that's what I'm doing here too.
Release Notes:
- Fixed wrong handling of Copilot sign-in status in rare cases.
Thorsten Ball
created
fd98238
Tiny change: use consistent casing in log message (#8115)
Click to expand commit body
Release Notes:
- N/A
Thorsten Ball
created
d5aba27
Log when starting language servers (#8075)
Click to expand commit body
This should help us debug more failures because we can now see what
exactly was started.
Release Notes:
- N/A
Co-authored-by: Nathan <nathan@zed.dev>
Co-authored-by: Max <max@zed.dev>
Thorsten Ball
,
Nathan
, and
Max
created
92b2e56
Fix crash when closing last zed window (#8102)
Click to expand commit body
Fixes: #8100
Release Notes:
- N/A
Joseph T. Lyons
created
c58d72e
Improve automatic indentation in Gleam code files (#8098)
58a5a1e
Automatically indent the cursor when adding a newline after a `{` in Gleam code files (#8097)
Click to expand commit body
Fixes: https://github.com/zed-industries/zed/issues/7295
Release Notes:
- Fixed a bug where adding a newline after a `{` would not automatically
indent the cursor in Gleam code files
([#7295](https://github.com/zed-industries/zed/issues/7295)).
Joseph T. Lyons
created
cd640a8
Improve key handling on x11, sharing wayland implementation (#8094)
Click to expand commit body
Makes keyboard shortcuts work on x11.
Release Notes:
- N/A
gmorenz
created
c97ecc7
Add initial CI job for Windows target (#8088)
Click to expand commit body
Clippy is disabled for now, due to many warnings in both `gpui` and
other code, see
https://github.com/zed-industries/zed/actions/runs/7980269779/job/21789529800
for more details.
Also, due to `#!/usr/bin/env bash` shebang in the `script/clippy`, it
starts in Windows CI with `shell: C:\Program Files\Git\bin\bash.EXE
-euxo pipefail {0}`
https://github.com/zed-industries/zed/actions/runs/7980269779/job/21789529800#step:4:3
It seems more appropriate to use PowerShell instead.
See `todo!("windows")` for all stubbed places currently.
Release Notes:
- N/A
8a73bc4
Vim: enable sending multiple keystrokes from custom keybinding (#7965)
Click to expand commit body
Release Notes:
- Added `workspace::SendKeystrokes` to enable mapping from one key to a
sequence of others
([#7033](https://github.com/zed-industries/zed/issues/7033)).
Improves #7033. Big thank you to @ConradIrwin who did most of the heavy
lifting on this one.
This PR allows the user to send multiple keystrokes via custom
keybinding. For example, the following keybinding would go down four
lines and then right four characters.
```json
[
{
"context": "Editor && VimControl && !VimWaiting && !menu",
"bindings": {
"g z": [
"workspace::SendKeystrokes",
"j j j j l l l l"
],
}
}
]
```
---------
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
N
and
Conrad Irwin
created
8f5d7db
First pass at making a linux keymap (#8082)
Click to expand commit body
Undoubtedly not perfect, but this should be something we can work off
of.
Note that matching keybindings with ctrl in them is currently broken on
linux (or at least x11). This keymap might just manage to be less useful
than using the macos one on linux until that is fixed... the proximate
cause of this is that the `key` field of the `Keystroke` struct looks
like `"\u{e}"` instead of `"n"` when `ctrl-n` is pressed.
Release Notes:
- N/A
gmorenz
created
389d26d
Linux(Wayland): translate enter and pageup/down from keysym (#8089)
Click to expand commit body
enter and pagedown/pageup weren't working now they do
Release Notes:
- N/A
b028231
linux/x11: disable Vulkan validation in Debug (#8044)
Click to expand commit body
Turns out this validation requirement is confusing new users.
Release Notes:
- N/A
Dzmitry Malyshau
created
f7d2cb1
Project search bar layout improvements (#7963)
Click to expand commit body
The PR matches project search layout with the recent changes in the
buffer project layout.
https://github.com/zed-industries/zed/assets/2101250/91b905ea-aed8-4740-9e60-67f3052885e2
Release Notes:
- Improve project search bar layout, match it with the buffer search bar ([7722](https://github.com/zed-industries/zed/issues/7722))
Andrew Lygin
created
78dcd72
Fix display of links in lists (markdown_preview) (#8073)
Click to expand commit body

Release Notes:
- Fixed display of long links in lists not fully visible in markdown
preview.
With `send_and_check_request` we'd be blocking both the main loop and
the caller. `send_request` is only going to be blocking on the main loop
when processing the request.
Release Notes:
- N/A
Based on a flamegraph from `perf`/`hotspot`, we are spending 40% of time
redrawing, another 40% of time downloading stuff (i.e. rust toolchain),
and the rest on text rendering, layout and such. This is with Vulkan
Validation (see https://github.com/zed-industries/zed/pull/8044).
I'm also wondering if it would be better with #7758, but regardless we
should have no problem rendering at 60-120 fps and processing user
input. More follow-ups are expected here.
Following up to #8079, this PR changes the default Markdown tab size to
2 spaces.
This should produce less surprising formatting for lists when using
Prettier.
Release Notes:
- Changed default Markdown tab size to 2 spaces.
This PR sets the `tab_size` for Markdown to 2 spaces.
This should prevent Prettier from adding a bunch of leading whitespace
when formatting Markdown lists.
Release Notes:
- N/A
This PR bumps the tree-sitter-nu commit to the latest supported by the
nushell team. It also includes the latest highlights.scm
Release Notes:
Bumped `nu` tree sitter dependency and highlights.scm
Darren Schroeder
created
0a40a21
Timeout while waiting for server to shutdown and kill it
Release Notes:
- Improved reliability of following
Conrad Irwin
created
db0eaca
Rename scrollbar_thumb to be consistent with other style properties (#8004)
Click to expand commit body
This small inconsistency was mentioned on the discord. This fixes it.
Release Notes:
- Themes: Renamed `scrollbar_thumb.background` to
`scrollbar.thumb.background` to be consistent with other style
properties.
---------
Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
Philipp Schaffrath
and
Marshall Bowers
created
80db468
go: better logging if `go install gopls` fails (#8060)
Click to expand commit body
Release Notes:
- Improved logging if installing `gopls` fails
Thorsten Ball
created
0d2ad67
Add settings to configure terminal scroll limit (#8063)
Click to expand commit body
Fixes https://github.com/zed-industries/zed/issues/7550
Also set maximum allowed to runnables' terminals.
Release Notes:
- Added settings to configure terminal scroll limit
([7550](https://github.com/zed-industries/zed/issues/7550))
Kirill Bulatov
created
7065d6c
Use proper template for initial runnables config contents (#8064)