d6156ef
Bump to 0.143.7 for @ConradIrwin
Zed Bot created
d6156ef
Bump to 0.143.7 for @ConradIrwin
Zed Bot created
265a697
Build x86 linux too :/ (cherry-pick #14068) (#14072)
Cherry-picked Build x86 linux too :/ (#14068) Release Notes: - N/A Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
gcp-cherry-pick-bot[bot] and Conrad Irwin created
163c638
v0.143.x stable
Joseph T Lyons created
5bf11ca
zed 0.143.6
Thorsten Ball created
ec73217
Fixed keymap for toggling right dock in linux (cherry-pick #14041) (#14047)
Cherry-picked Fixed keymap for toggling right dock in linux (#14041) Release Notes: - N/A Co-authored-by: Saurabh <79586784+m4saurabh@users.noreply.github.com>
gcp-cherry-pick-bot[bot] and Saurabh created
c18c772
linux: Treat fullscreen as tiled on X11 and prevent resizing while maximized (#13990)
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
7a7b9a2
Fix linux prompts (#14021)
Release Notes: - N/A
Conrad Irwin created
beff9fd
Reveal in files instead of Finder (#13432)
fixes: #12776 Release Notes: - Renamed `editor::RevealInFinder` to `editor::RevealInFileManager` --------- Co-authored-by: Mikayla Maki <mikayla@zed.dev>
francesco-gaglione and Mikayla Maki created
415d010
Add support for numpad keys on linux (#14018)
Fixes https://github.com/zed-industries/zed/issues/12117 Partial application of the changes in https://github.com/zed-industries/zed/pull/13396 Release Notes: - N/A
Mikayla Maki created
22e59a4
zed 0.143.5
Joseph T Lyons created
e0501f6
Fix keybind conflicts (atom mac/linux default) (#13988)
- 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
c2f073c
Fix transparency (#14010)
Release Notes: - (preview only) Fix transparent themes
Conrad Irwin created
a12783c
lsp: Add support for ShowMessage notification (#14012)
When "one newer language" sends these messages, "one newer editor" will display a pop-up for users to see. :) Related to https://github.com/gleam-lang/gleam/issues/3274  Release Notes: - A certain popular language recently had to work around a missing LSP notification. This has been fixed
Piotr Osiewicz created
66f9457
zed 0.143.4
Thorsten Ball created
e9714f7
Revert "x11: Differentiate between mouse and keyboard focus #13943" (#13974)
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
477dc14
Add keyboard shortcuts for the prompts on Linux (#13915)
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>
Aleksei Gusev and Thorsten Ball created
8af4398
Bump to 0.143.3 for @ConradIrwin
Zed Bot created
5b271b0
Separate out macOS and Linux keymaps (#13792)
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>
Mikayla Maki and Peter Tripp created
b4c61e5
x11: Properly update XKB group state (#13931)
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
ec270e3
Send IME-supported key downs (#13964)
Release Notes: - N/A
Conrad Irwin created
f837bc1
Improve window decorations: check for compositor support (#13822)
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
41fdc44
x11 calloop 2 (#13955)
Release Notes: - N/A --------- Co-authored-by: Max <max@zed.dev>
Conrad Irwin and Max created
61f2221
wayland: Implement `activate()` API and use portals to open URLs and paths (#13336)
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
apricotbucket28 created
92aae1c
x11: Differentiate between mouse and keyboard focus (#13943)
Fixes https://github.com/zed-industries/zed/issues/13897 Release Notes: - N/A
apricotbucket28 created
5e9139f
linux: Add tracing logs to the x11 client and linux dispatcher (#13928)
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
8cae7eb
linux: Remove `StartupWMClass` from .desktop file, add `NewWorkspace` action (#13807)
Release Notes: - N/A
jansol created
8a71bc1
linux: Fix dropping action when action is just started (#13840)
```
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
618915f
wayland: Fix window state issues (#13885)
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
7e6329e
Configurable window decorations (#13866)
Introduces the `ZED_WINDOW_DECORATIONS` env variable. - Not set, defaulting to client-side decorations - Value is "client": client-side decorations - Value is "server": server-side decorations I think it's good to have this escape-hatch next to all possible detection mechanisms. Release Notes: - N/A
Thorsten Ball created
ec94ec9
linux/x11: Fix gap when tiling windows side by side (#13859)
By leveraging the `_GTK_EDGE_CONSTRAINTS` atom we can get all four
booleans for the `Tiling` struct and figure out which side is free when
the window is tiled to half of the screen.
For the logic behind the `_GTK_EDGE_CONSTRAINTS` see:
-
https://github.com/GNOME/mutter/blob/8e9d13aa3b3baa099ca32bbcb10afb4d9eea4460/src/x11/window-x11.c#L65-L75
-
https://github.com/GNOME/mutter/blob/8e9d13aa3b3baa099ca32bbcb10afb4d9eea4460/src/x11/window-x11.c#L1205-L1231
(I used Claude 3.5 Sonnet with our code and these pieces from `mutter`
to generate the Rust code, that was pretty sweet)
This fixes the gap in the middle when a GPUI window is tiled to the left
and another window to the right.
It's not _perfect_ but it looks a lot better.
Here's a diff that makes it look better:
```diff
diff --git a/crates/gpui/examples/window_shadow.rs b/crates/gpui/examples/window_shadow.rs
index 122231f6b..7fa29dadc 100644
--- a/crates/gpui/examples/window_shadow.rs
+++ b/crates/gpui/examples/window_shadow.rs
@@ -72,8 +72,8 @@ impl Render for WindowShadow {
.when(!(tiling.top || tiling.left), |div| div.rounded_tl(rounding))
.when(!tiling.top, |div| div.pt(shadow_size))
.when(!tiling.bottom, |div| div.pb(shadow_size))
- .when(!tiling.left, |div| div.pl(shadow_size))
- .when(!tiling.right, |div| div.pr(shadow_size))
+ .when(!tiling.left, |div| div.pl(shadow_size - border_size))
+ .when(!tiling.right, |div| div.pr(shadow_size - border_size))
.on_mouse_move(|_e, cx| cx.refresh())
.on_mouse_down(MouseButton::Left, move |e, cx| {
let size = cx.window_bounds().get_bounds().size;
```
But that makes it look weird on Wayland, so I didn't do it.
I think it's fine for now. Chromium looks bad and has a gap, so we're
already better.
## Before


## After


Release Notes:
- N/A
Thorsten Ball created
e281abc
linux: Set directory in SaveFileRequest dialog (#13850)
This has been bugging me for a while. If you create a new file and then save it, the dialogue would show the home directory and not the folder that you were in. This fixes it. Release Notes: - N/A
Thorsten Ball created
1e52998
linux/x11: Set transparency to false by default (#13848)
The previous code lead to a ton of error messages from Blade on my X11 machine, even with *client-side decorations working well!* As @someone13574 pointed out [here](https://github.com/zed-industries/zed/pull/13611#issuecomment-2201685030) things still work with this being false. And if someone changes a theme with transparent background, then it will get set anyway. We just don't do it by default. And as @jansol pointed out [here](https://github.com/zed-industries/zed/issues/5040#issuecomment-2096560629): > On X11 it may be possible to configure a compositor to blur window backgrounds but Zed has no way to influence that. So we don't lose anything, I think, but get rid of a ton of error messages in the logs. Proof of shadows etc. still working:  Release Notes: - N/A
Thorsten Ball created
d6d75d2
linux/x11: Fix bugs related to unflushed commands (#13844)
**Edit**: This PR adds flushes to functions which should have an immediate affect. I've observed it fixing the following bugs (but there are probably more): - The cursor not updating when just hovering. - The window not maximising after clicking the full-screen button until you move the mouse. - The window not minimising after clicking the minimise button until you move the mouse. --- **Original content**: Following #13646, the cursor style wouldn't change because the `change_window_attributes` command wasn't being flushed. I guess it was working before because something else was flushing it somewhere else so it was never noticed. I just added `check()` which flushes the command so that the cursor will actually update when just hovering. Before you would need to interact with the window so that something else could flush the command. Release Notes: - N/A
Owen Law created
ae7d49a
linux/x11: Resize on GTK_EDGE_CONSTRAINTS atom (#13833)
With the new window decorations resizing was _really_ laggy on my X11 machine. Before: - Click on window border (hitbox doesn't work properly, but that's another issue) - Drag and resize - 4-5s nothing happens - Window is resized After: - Click on window border - Drag and resize - Window is resized I'm still not 100% sure on why this happens on my machine and not Conrad's/Mikayla's, but seems like that GTK_EDGE_CONSTRAINTS atom is sent when resizing. The other thing that I can't explain is that we get a `ConfigureNotify` when resizing, with the right size, but maybe not often enough? Anyway, for now we'll go with this. Release Notes: - N/A
Thorsten Ball created
daee260
Allow Shift + Scroll to Horizontally Scroll in X11 and Wayland (#13676)
Release Notes: - Allows shift + scroll horizontal scrolling on X11 and Wayland. [Screencast from 2024-06-29 17-17-59.webm](https://github.com/zed-industries/zed/assets/14155062/2cac77b9-ecc8-4ddb-b08d-b5d964c8dc84)
Keenan Wresch created
01902ee
Explicitly specify php files' formatter for prettier (#13883)
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))
Kirill Bulatov created
ae696c8
zed 0.143.2
Peter Tripp created
9b84af1
Fix delay when changing scrolling direction (#13867)
Fixes: #13720. Co-authored-by: Antonio Scandurra <antonio@zed.dev>
Peter Tripp and Antonio Scandurra created
29a5111
Bump to 0.143.1 for @ConradIrwin
Zed Bot created
dbf2965
fix duplicated code
Mikayla Maki created
3eec525
Linux window decorations (#13611)
This PR adds support for full client side decorations on X11 and Wayland TODO: - [x] Adjust GPUI APIs to expose CSD related information - [x] Implement remaining CSD features (Resizing, window border, window shadow) - [x] Integrate with existing background appearance and window transparency - [x] Figure out how to check if the window is tiled on X11 - [x] Implement in Zed - [x] Repeatedly maximizing and unmaximizing can panic - [x] Resizing is strangely slow - [x] X11 resizing and movement doesn't work for this: https://discord.com/channels/869392257814519848/1204679850208657418/1256816908519604305 - [x] The top corner can clip with current styling - [x] Pressing titlebar buttons doesn't work - [x] Not showing maximize / unmaximize buttons - [x] Noisy transparency logs / surface transparency problem https://github.com/zed-industries/zed/pull/13611#issuecomment-2201685030 - [x] Strange offsets when dragging the project panel https://github.com/zed-industries/zed/pull/13611#pullrequestreview-2154606261 - [x] Shadow inset with `_GTK_FRAME_EXTENTS` doesn't respect tiling on X11 (observe by snapping an X11 window in any direction) Release Notes: - N/A --------- Co-authored-by: conrad <conrad@zed.dev> Co-authored-by: Owen Law <81528246+someone13574@users.noreply.github.com> Co-authored-by: apricotbucket28 <71973804+apricotbucket28@users.noreply.github.com> Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Mikayla Maki , conrad , Owen Law , apricotbucket28 , and Conrad Irwin created
c59098f
Linux builds on stable (#13744)
Release Notes: - First beta version of Linux
Conrad Irwin created
443f423
v0.143.x preview
Peter Tripp created
38fb841
Use regex to properly select Go test runnable (#13750)
This is already done when selecting a subtest; by wrapping the test name
with `^{}$` the runnable will avoid selecting additional tests with the
same prefix.
Without this fix, selecting the runnable for `TestExample` will also run
`TestExample2`.
Release Notes:
- Fixed Golang tasks spawning tests starting with the current function name and not using the exact match.
Connor Finnell created
48763d0
vim: Add vim bindings for outline panel (#13763)
Release Notes: - vim: Add vim bindings for outline panel #13763
Xiaoguang Wang created
089cc85
Use a dedicated test extension in extension tests (#13781)
This PR updates the `extension` crate's tests to use a dedicated test extension for its tests instead of the real Gleam extension. As the Gleam extension continues to evolve, it makes it less suitable to use as a test fixture: 1. For a while now, the test has failed locally due to me having `gleam` on my $PATH, which causes the extension's `get_language_server_command` to go down a separate codepath. 2. With the addition of the `indexed_docs_providers` the test was hanging indefinitely. While these problems are likely solvable, it seems reasonable to have a dedicated extension to use as a test fixture. That way we can do whatever we need to exercise our test criteria. The `test-extension` is a fork of the Gleam extension with some additional functionality removed. Release Notes: - N/A
Marshall Bowers created
995b082
Change `tool_calls` to be an Option in response (#13778)
Here is an image of my now getting assistance responses!  I ended up adding a function to handle the use case of not serializing the tool_calls response if it is either null or empty to keep the functionality of the existing implementation (not deserializing if vec is empty). I'm sorta a noob, so happy to make changes if this isn't done correctly, although it does work and it does pass tests! Thanks a bunch to [amtoaer](https://github.com/amtoaer) for pointing me in the direction on how to fix it. Release Notes: - Fixed some responses being dropped from OpenAI-compatible providers ([#13741](https://github.com/zed-industries/zed/issues/13741)).
Allison Durham created
64755a7
linux/x11: Custom run loop with `mio` instead of `calloop` (#13646)
This changes the implementation of the X11 client to use `mio`, as a polling mechanism, and a custom run loop instead of `calloop` and its callback-based approach. We're doing this for one big reason: more control over how we handle events. With `calloop` we don't have any control over which events are processed when and how long they're processes for. For example: we could be blasted with 150 input events from X11 and miss a frame while processing them, but instead of then drawing a new frame, calloop could decide to work off the runnables that were generated from application-level code, which would then again cause us to be behind. We kinda worked around some of that in https://github.com/zed-industries/zed/pull/12839 but the problem still persists. So what we're doing here is to use `mio` as a polling-mechanism. `mio` notifies us if there are X11 on the XCB connection socket to be processed. We also use its timeout mechanism to make sure that we don't wait for events when we should render frames. On top of `mio` we now have a custom run loop that allows us to decide how much time to spend on what — input events, rendering windows, XDG events, runnables — and in what order we work things off. This custom run loop is consciously "dumb": we render all windows at the highest frame rate right now, because we want to keep things predictable for now while we test this approach more. We can then always switch to more granular timings. But considering that our loop runs and checks for windows to be redrawn whenever there's an event, this is more an optimization than a requirement. One reason for why we're doing this for X11 but not for Wayland is due to how peculiar X11's event handling is: it's asynchronous and by default X11 generates synthetic events when a key is held down. That can lead to us being flooded with input events if someone keeps a key pressed. So another optimization that's in here is inspired by [GLFW's X11 input handling](https://github.com/glfw/glfw/blob/b35641f4a3c62aa86a0b3c983d163bc0fe36026d/src/x11_window.c#L1321-L1349): based on a heuristic we detect whether a `KeyRelease` event was auto-generated and if so, we drop it. That essentially halves the amount of events we have to process when someone keeps a key pressed. Release Notes: - N/A --------- Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com> Co-authored-by: Conrad <conrad@zed.dev>
Thorsten Ball , Conrad Irwin , and Conrad created
3348c3a
vim: Support for q and @ (#13761)
Fixes: #1504 Release Notes: - vim: Support for macros (`q` and `@`) to record and replay (#1506, #4448)
Conrad Irwin created
dceb082
Rename `ExtensionDocsIndexer` to `ExtensionIndexedDocsProvider` (#13776)
This PR renames `ExtensionDocsIndexer` to `ExtensionIndexedDocsProvider` to better align with the name of the trait it implements. Release Notes: - N/A
Marshall Bowers created