b691d1b
Improve experience when themes provide transparent status colors (#13996)
Click to expand commit body
We shouldn't assume all themes will give us solid status color
backgrounds.
This change makes it so the status color renders on top of a normal
elevated surface background.
#### Before | After (Transparent status background color – Fixed)


---
#### Before | After (Solid status background color – No change)


Release Notes:
- Improved support for transparent status colors in themes.
Nate Butler
created
bc0359a
gpui: Input example log keystrokes (#13963)
Click to expand commit body
Release Notes:
- N/A
Conrad Irwin
created
23c84f8
linux: Treat fullscreen as tiled on X11 and prevent resizing while maximized (#13990)
Click to expand commit body
Two quick fixes for issues I noticed:
1. Fullscreening an unmaximized X11 window still showed rounded window
corners and allowed resizing
2. Maximized windows still allowed for resizing on corners due to
missing checks

Release Notes:
- N/A
apricotbucket28
created
2922617
docs: Add tiny tweaks to the Linux page (#13994)
- atom(mac): Cmd+j conflicts with `workspace: ToggleBottomDock` in
default map. Revert.
- default(linux): `ctrl-shift-t` conflict. Move
`project_symbols::Toggle` to `ctrl-t` to match vscode linux. Leave
`pane::ReopenClosedItem` at `ctrl-shift-t` to match vscode/chrome on
linux.
- Fixes #13973
Peter Tripp
created
9b68865
Add a way to filter items in the outline panel (#13984)
Click to expand commit body
https://github.com/zed-industries/zed/assets/2690773/145a7cf2-332c-46c9-ab2f-42a77504f54f
Adds a way to filter entries in the outline panel, by showing all
entries (even if their parents were collapsed) that fuzzy match a given
query.
Release Notes:
- Added a way to filter items in the outline panel
Kirill Bulatov
created
9a6f30f
Snippets: Move snippets into the core of editor (#13937)
Click to expand commit body
Release Notes:
- Move snippet support into core editor experience, marking the official
extension as deprecated. Snippets now show up in any buffer (including
plain text buffers).
Piotr Osiewicz
created
b3dad0b
Revert "x11: Differentiate between mouse and keyboard focus #13943" (#13974)
Click to expand commit body
This reverts #13943 and reopens #13897 since the fix in #13943 comes
with a regression:
Sometimes Zed loses keyboard focus and can't be restored. I haven't
figured out yet exactly when and how this happens and can't reliably
reproduce it yet, but there's something off with focus handling.
One reliable way to reproduce _one_ of the problems:
1. Open two zed windows
2. Focus one Zed window
3. Hover with the mouse over the other
4. Try to type in the window that should still be focused
So, to be careful, I'm going to revert the PR first, since I couldn't
find an obvious fix yet. If we do find a fix, we can unrevert.
Release Notes:
- N/A
Thorsten Ball
created
18d6be2
Add keyboard shortcuts for the prompts on Linux (#13915)
Click to expand commit body
This change adds ability to choose any action from prompts, not just the
default one and cancel as Zed has right now. For example, when a user
tries to close a file with edits in it the prompt offers "Don't save"
option that can be selected only with mouse. Now you can use arrows,
tab/shift-tab to pick action and enter/space to confirm it.
Fixes [#13906](https://github.com/zed-industries/zed/issues/13906)
Release Notes:
- Added keyboard navigation in the prompts on Linux
([#13906](https://github.com/zed-industries/zed/issues/13906)).
Co-authored-by: Thorsten Ball <mrnugget@gmail.com>
This PR adds a Nix/NixOS development-shell (`shell.nix`), which is based
on the upstream
[nixpkgs](https://github.com/NixOS/nixpkgs/blob/c5d4d458115263ec3ee0efd974e6aeb2f787a0ed/pkgs/by-name/ze/zed-editor/package.nix),
as well as its corresponding `flake.nix` file.
To use it, run either the `nix-shell` command (uses the `shell.nix`
file), or the newer but experimental `nix develop` command (uses
`flake.nix`)
~~This has not been tested on macOS, tho preliminary code is there to
try and support it, feel free to report any issues.~~ Zed unfortunately
doesn't build on nix-darwin (see
https://github.com/NixOS/nixpkgs/issues/320084), so this PR doesn't aim
to add darwin support.
---
Release Notes:
- N/A
---------
Signed-off-by: xtrm <oss@xtrm.me>
Co-authored-by: Niklas Korz <niklas@niklaskorz.de>
killian
and
Niklas Korz
created
034d905
Allow vim counts with undo and redo (#13950)
Click to expand commit body
These were previously passed directly to the editor module, which knows
nothing about vim counts. Instead, implement new actions in the vim
module which take the count and use it to invoke the corresponding
action in the editor module, properly repeated.
Release Notes:
- Fixed vim undo and redo commands not taking counts.
Matt Fellenz
created
0d7bd0c
vim: Disable default ctrl-x/ctrl-w on linux (#13966)
Click to expand commit body
Release Notes:
- N/A
Conrad Irwin
created
ed50dea
Only clear selections when right click was performed outside of selection (#13701)
Click to expand commit body
Release Notes:
- Fixed selections being cleared when right-click was performed outside
of a selection
([#4267](https://github.com/zed-industries/zed/pull/13701)).
<img width="1136" alt="Screenshot 2024-07-01 at 16 53 58"
src="https://github.com/zed-industries/zed/assets/43210583/082bfb0a-c679-4e87-a4e8-7dd751d8f4a2">
Stanislav Alekseev
created
5c95d28
Ensure people who hit /linux directly have the right instructions (#13959)
30479bf
Improve window decorations: check for compositor support (#13822)
Click to expand commit body
Adds the `compositor_support` to the `X11WindowState` struct so that
correct window decorations are selected
Release notes:
- N/A
---------
Co-authored-by: Thorsten Ball <mrnugget@gmail.com>
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Sebastijan Kelnerič
,
Thorsten Ball
, and
Conrad Irwin
created
Release Notes:
- N/A
---------
Co-authored-by: Max <max@zed.dev>
Conrad Irwin
and
Max
created
efc2336
title_bar: Factor out collab-related code into `collab` module (#13957)
Click to expand commit body
This PR refactors the `TitleBar` component to move all of the
collab-related code into the `collab` module.
This simplifies the top-level `Render` implementation of `TitleBar` by a
lot and makes it easier to read.
Release Notes:
- N/A
This PR adds a `NumericStepper` component that can be used to display a
numeric value along with controls to increment, decrement, and reset the
value.
The `ApplicationMenu` has been updated to use the `NumericStepper` for
adjusting the buffer and UI font size.
Here it is in action:
https://github.com/zed-industries/zed/assets/1486634/03cffe67-1256-4283-aa3d-560fffa06dad
Note: Due to the way we do font adjustments, once modified the reset
button will be displayed until it is clicked (or the font size
adjustment is otherwise reset). Simply returning to the original value
will currently not hide the reset button.
Release Notes:
- N/A
Conrad Irwin
,
Mikayla Maki
, and
Marshall Bowers
created
0b6ef99
wayland: Implement `activate()` API and use portals to open URLs and paths (#13336)
Click to expand commit body
This PR consists of two main changes:
1. The first commit changes the `open` crate for opening URLs/paths for
the `OpenURI` desktop portal. This fixes the activation token not being
passed to programs (at least on KDE).
2. The second commit implements the window `activate()` API on Wayland.
This allows KWin and Mutter to show a visual indicator when the window
is requesting attention. (see
https://github.com/zed-industries/zed/issues/12557)

Release Notes:
- N/A
Before | After

Release Notes:
- Improved contrast between some items in the One Dark theme.
Nate Butler
created
2925f3d
Rename `ui_text_field` crate to `ui_input` (#13949)
Click to expand commit body
This PR renames the `ui_text_field` crate to `ui_input` to make it a bit
more generic.
We'll likely end up with multiple kinds of input components in this
crate.
Release Notes:
- N/A
This PR adds a story for the `ApplicationMenu` so it can be viewed in
isolation.
<img width="664" alt="Screenshot 2024-07-08 at 4 45 24 PM"
src="https://github.com/zed-industries/zed/assets/1486634/dca3dd32-4845-4009-b781-b4bac9ba6049">
Release Notes:
- N/A
Marshall Bowers
created
ea9ba68
title_bar: Factor out application menu into its own component (#13947)
Click to expand commit body
This PR factors out the application menu in the title bar into its own
component.
Release Notes:
- N/A
032b203
Separate out macOS and Linux keymaps (#13792)
Click to expand commit body
Release Notes:
- Added Linux-Specific keymaps for JetBrains, Atom and Sublime Text
- Improved MacOS-specific keymaps for JetBrains and Atom
- Improved Linux default keymap (VSCode compatibility)
- Windows now uses same keymap as Linux
---------
Co-authored-by: Peter Tripp <peter@zed.dev>
This PR bumps the Clojure extension to v0.0.3.
Changes:
- https://github.com/zed-industries/zed/pull/13914
- https://github.com/zed-industries/zed/pull/13933
Release Notes:
- N/A
Marshall Bowers
created
d3f869a
scripts/flatpak: Escape XML characters in convert-release-notes.py (#13801)
Click to expand commit body
Resolves #13791
Release Notes:
- N/A
Joey Riches
created
c617d48
clojure: Upgrade `zed_extension_api` to v0.0.6 (#13933)
Click to expand commit body
This PR upgrades the Clojure extension to use v0.0.6 of the
`zed_extension_api`.
Release Notes:
- N/A
Marshall Bowers
created
7f50055
windows: Replace symlinks with files for TSX Tree-sitter queries (#13893)
Click to expand commit body
Previously to these changes, as stated in the issue, when someone tried
to use TSX as language for the file, the language was not set and it
disappeared from the selectable language list. This was due to the fact
that that the three files were symlinks, and windows couldn't read them.
I replaced them with normal files.
Fixes #12208.
Release Notes:
- N/A
---------
Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
Added support for ClojureDart (cljd) files in the Clojure Extension
Release Notes:
- N/A
zachcp
created
65e463b
x11: Properly update XKB group state (#13931)
Click to expand commit body
Pass on all the XkbStateNotify information to XKB.
> "All parameters must always be passed, or the resulting state may be
incoherent."
>
https://docs.rs/xkbcommon/latest/xkbcommon/xkb/struct.State.html#method.update_mask
Previously, many keymaps using multiple groups/layers would not work and
remain in group0.
Release Notes:
- Fixed handling of Xkb keymap groups on X11.
fsh
created
11c7374
Use user-defined font weight in terminal (#13926)
Click to expand commit body
Related #13653
Release Notes:
- Fixed honoring of the `terminal.font_weight` user setting
Aleksei Gusev
created
cd7268f
linux: Add tracing logs to the x11 client and linux dispatcher (#13928)
Click to expand commit body
This adds some tracing logging that can be toggled on to debug issues.
How I used it:
```
RUST_LOG=gpui=trace cargo run
```
Release Notes:
- N/A
Thorsten Ball
created
a1eaf1b
tailwind: Check user settings for `classAttributes` (#13923)
Click to expand commit body
This addresses the question in [this
comment](https://github.com/zed-industries/zed/issues/5830#issuecomment-2211942554)
by adding support for `classAttributes` to the settings.
Meaning that the following Zed `settings.json` now works:
```jsonc
{
"lsp": {
"tailwindcss-language-server": {
"settings": {
"classAttributes": [
"class",
"className",
"ngClass",
// add styles so will give intellisense to styles constant.
"styles"
]
// Optional:
// "includeLanguages": {
// "erb": "html",
// "ruby": "html"
// },
// "experimental": {
// "classRegex": ["\\bclass:\\s*['\"]([^'\"]*)['\"]"]
// }
}
}
}
}
```
Release Notes:
- Added support for setting `classAttributes` in the configuration for
`tailwindcss-language-server`. Example: `{ "lsp": {
"tailwindcss-language-server": { "settings": { "classAttributes": [
"class", "className", "ngClass", "styles" ] } } } }`
800bdf3
linux: Fix dropping action when action is just started (#13840)
Click to expand commit body
```
Thread "main" panicked with "divide by zero error when dividing duration by scalar" at /rustc/129f3b9964af4d4a709d1383930ade12dfe7c081/library/core/src/time.rs:1172:31
0: zed::reliability::init_panic_hook::{{closure}}
at crates/zed/src/reliability.rs:58:29
1: <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call
at /rustc/129f3b9964af4d4a709d1383930ade12dfe7c081/library/alloc/src/boxed.rs:2036:9
std::panicking::rust_panic_with_hook
at /rustc/129f3b9964af4d4a709d1383930ade12dfe7c081/library/std/src/panicking.rs:799:13
2: std::panicking::begin_panic_handler::{{closure}}
at /rustc/129f3b9964af4d4a709d1383930ade12dfe7c081/library/std/src/panicking.rs:664:13
3: std::sys_common::backtrace::__rust_end_short_backtrace
at /rustc/129f3b9964af4d4a709d1383930ade12dfe7c081/library/std/src/sys_common/backtrace.rs:171:18
4: rust_begin_unwind
at /rustc/129f3b9964af4d4a709d1383930ade12dfe7c081/library/std/src/panicking.rs:652:5
5: core::panicking::panic_fmt
at /rustc/129f3b9964af4d4a709d1383930ade12dfe7c081/library/core/src/panicking.rs:72:14
6: core::panicking::panic_display
at /rustc/129f3b9964af4d4a709d1383930ade12dfe7c081/library/core/src/panicking.rs:263:5
7: core::option::expect_failed
at /rustc/129f3b9964af4d4a709d1383930ade12dfe7c081/library/core/src/option.rs:1994:5
8: core::option::Option<T>::expect
at /rustc/129f3b9964af4d4a709d1383930ade12dfe7c081/library/core/src/option.rs:895:21
<core::time::Duration as core::ops::arith::Div<u32>>::div
at /rustc/129f3b9964af4d4a709d1383930ade12dfe7c081/library/core/src/time.rs:1172:31
9: <gpui::platform::linux::wayland::client::WaylandClientStatePtr as wayland_client::event_queue::Dispatch<wayland_client::protocol::wl_keyboard::WlKeyboard,()>>::event::{{closure}}
at crates/gpui/src/platform/linux/wayland/client.rs:1211:63
10: <core::cell::RefCell<calloop::sources::DispatcherInner<S,F>> as calloop::sources::EventDispatcher<Data>>::process_events::{{closure}}
at /home/atassis/.cargo/registry/src/index.crates.io-6f17d22bba15001f/calloop-0.13.0/src/sources/mod.rs:327:61
11: <calloop::sources::timer::Timer as calloop::sources::EventSource>::process_events
at /home/atassis/.cargo/registry/src/index.crates.io-6f17d22bba15001f/calloop-0.13.0/src/sources/timer.rs:122:38
12: <core::cell::RefCell<calloop::sources::DispatcherInner<S,F>> as calloop::sources::EventDispatcher<Data>>::process_events
at /home/atassis/.cargo/registry/src/index.crates.io-6f17d22bba15001f/calloop-0.13.0/src/sources/mod.rs:326:9
13: calloop::loop_logic::EventLoop<Data>::dispatch_events
at /home/atassis/.cargo/registry/src/index.crates.io-6f17d22bba15001f/calloop-0.13.0/src/loop_logic.rs:445:31
14: calloop::loop_logic::EventLoop<Data>::dispatch
at /home/atassis/.cargo/registry/src/index.crates.io-6f17d22bba15001f/calloop-0.13.0/src/loop_logic.rs:559:9
15: calloop::loop_logic::EventLoop<Data>::run
at /home/atassis/.cargo/registry/src/index.crates.io-6f17d22bba15001f/calloop-0.13.0/src/loop_logic.rs:596:13
16: <gpui::platform::linux::wayland::client::WaylandClient as gpui::platform::linux::platform::LinuxClient>::run
at crates/gpui/src/platform/linux/wayland/client.rs:655:9
17: gpui::platform::linux::platform::<impl gpui::platform::Platform for P>::run
at crates/gpui/src/platform/linux/platform.rs:153:9
18: gpui::app::App::run
at crates/gpui/src/app.rs:140:9
19: zed::main
at crates/zed/src/main.rs:382:5
20: core::ops::function::FnOnce::call_once
at /rustc/129f3b9964af4d4a709d1383930ade12dfe7c081/library/core/src/ops/function.rs:250:5
21: std::sys_common::backtrace::__rust_begin_short_backtrace
at /rustc/129f3b9964af4d4a709d1383930ade12dfe7c081/library/std/src/sys_common/backtrace.rs:155:18
22: std::rt::lang_start::{{closure}}
at /rustc/129f3b9964af4d4a709d1383930ade12dfe7c081/library/std/src/rt.rs:159:18
23: core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once
at /rustc/129f3b9964af4d4a709d1383930ade12dfe7c081/library/core/src/ops/function.rs:284:13
std::panicking::try::do_call
at /rustc/129f3b9964af4d4a709d1383930ade12dfe7c081/library/std/src/panicking.rs:559:40
std::panicking::try
at /rustc/129f3b9964af4d4a709d1383930ade12dfe7c081/library/std/src/panicking.rs:523:19
std::panic::catch_unwind
at /rustc/129f3b9964af4d4a709d1383930ade12dfe7c081/library/std/src/panic.rs:149:14
std::rt::lang_start_internal::{{closure}}
at /rustc/129f3b9964af4d4a709d1383930ade12dfe7c081/library/std/src/rt.rs:141:48
std::panicking::try::do_call
at /rustc/129f3b9964af4d4a709d1383930ade12dfe7c081/library/std/src/panicking.rs:559:40
std::panicking::try
at /rustc/129f3b9964af4d4a709d1383930ade12dfe7c081/library/std/src/panicking.rs:523:19
std::panic::catch_unwind
at /rustc/129f3b9964af4d4a709d1383930ade12dfe7c081/library/std/src/panic.rs:149:14
std::rt::lang_start_internal
at /rustc/129f3b9964af4d4a709d1383930ade12dfe7c081/library/std/src/rt.rs:141:20
24: std::rt::lang_start
at /rustc/129f3b9964af4d4a709d1383930ade12dfe7c081/library/std/src/rt.rs:158:17
25: main
26: __libc_start_call_main
27: __libc_start_main_impl
28: _start
```
This error was happening when I started typing. This PR fixes this
error.
Fedora 40, latest kernel, gnome 46, wayland.
Release Notes:
- N/A
Taimuraz Kaitmazov
created
79f3646
Add missing clipboard shortcut to default-linux.json (#13900)
Click to expand commit body
Bind shift-delete to editor::Cut (similar to #11799, which added copy
and paste, but not cut)
Release Notes:
- N/A
This is should be a no-op, whitespace formatting only.
Removes 425 lines of excess whitespace in our default keymap json files.
Release Notes:
- Improved formatting of default keymaps (single line per bind)
This PR updates the default settings to treat Nix's `flake.lock` files
as JSON.
Resolves https://github.com/zed-extensions/nix/issues/2.
Release Notes:
- Nix's `flake.lock` files are now automatically identified as JSON.
Fixes some issues with the CSD added in
https://github.com/zed-industries/zed/pull/13611
Here's a video comparing the master branch (yellow icon) with this PR
(blue icon):
https://github.com/zed-industries/zed/assets/71973804/35be443a-8f24-4aed-910b-625bad9821e2
_Note: the flicker at the bottom of the window when maximizing is an
issue with the KDE floating task bar, it happens with all programs._
Release Notes:
- N/A
apricotbucket28
created
1c1fd6a
Finely scope repl events for runs and output clearing (#13872)
Click to expand commit body
Sets up the `cmd-enter` keybinding for the jupyter repl to only apply
when enabled.
Release Notes:
- N/A
---------
Co-authored-by: Kirill <kirill@zed.dev>
a53b3b6
Explicitly specify php files' formatter for prettier (#13883)
Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/13878
Seems that all regular files types are being recognized by Prettier from
their paths, but the PHP one does not despite the PHP plugin used when
formatting.
Release Notes:
- Fixed PHP prettier formatting, by including `php` parser name into
formatting queries
([13878](https://github.com/zed-industries/zed/issues/13878))
The current version of the extension tries to download the Windows
binary files for lua-language-server like this:
`lua-language-server-3.9.3-win32-x64.tar.gz`
The [Windows binary
files](https://github.com/LuaLS/lua-language-server/releases) are only
released as zip archives, so it will fail to get the required files.
This pr changes the following:
- Add check for Windows specific zip archive
- Add check for Windows specific .exe executable
Release Notes:
- N/A
---------
Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>