8eea281
Show modals on top of zoomed pane (#9183)
Click to expand commit body
Release Notes: - N/A
Antonio Scandurra created
8eea281
Show modals on top of zoomed pane (#9183)
Release Notes: - N/A
Antonio Scandurra created
373a4e7
Properly display deleted diff hunks (#9182)
Follow-up of https://github.com/zed-industries/zed/pull/9068 Release Notes: - Fixed removal diff hunks not being displayed properly in the editor
Kirill Bulatov created
f9f9f06
editor: Rearrange float operations in layout (#9176)
We were seeing weird layouts with large files, where - starting with some verylargelineindex - lines were rendered at weird y offsets. It turned out that in some cases we're doing operations on Pixel values of different magnitude, which then led to wrong results in calculations. This commit addresses some of these problems, visible at glance when working with large plaintext files. I *did not* dig into things like inlay hints or diagnostics to see if they are subject to the same potential precision loss. Fixes #5371 Release Notes: - Fixed editor layout for large files, where the lines might have been laid out with incorrect Y offset from the top.
Piotr Osiewicz created
20d5f5e
linux: wayland cursor fixes (#9047)
Release Notes: - Fixed wayland cursor style handling In upcoming Gnome 46, cursor icon names are considerably changing. For example: this commit https://gitlab.gnome.org/GNOME/adwaita-icon-theme/-/commit/74e9b79471236320d2af4925d6c5bb7df22380ce removed/modified a lot of cursor names. Then some of the names were reintroduced in this commit https://gitlab.gnome.org/GNOME/adwaita-icon-theme/-/commit/6f64dc55dcaae24a14564494e24564a120cb4f33. I also tried upcoming KDE Plasma 6. Some of the cursor names are not used commonly between Gnome and KDE. From my analysis, these set of cursor names should be more widely available in both previous and upcoming release of Gnome and KDE. Also, If a cursor style is not available, let's fallback to default cursor style. This avoids scenarios where we get stuck with special cursor styles like IBeam/Resize* because the current cursor style is not available. This will lead to an unpleasant/broken experience. Falling back to default cursor seems to be more acceptable.
Joel Selvaraj created
f066dd2
Fix race when language server registers for `workspace/didChangeWatchedFiles` (#9177)
This fixes #8896 by storing the `watched_paths` in a separate HashMap, allowing us to handle the request even before we mark the language server as running. Downside is that we have yet another data structure for language servers, but it also makes the `Running` enum case a bit smaller. And it fixes the race condition. Release Notes: - Fixed language servers not being notified of file changes if language server registers for file-notification right after starting up. ([#8896](https://github.com/zed-industries/zed/issues/8896)). Co-authored-by: Bennet <bennetbo@gmx.de> Co-authored-by: Remco <djsmits12@gmail.com>
Thorsten Ball , Bennet , and Remco created
0be20d0
fix: vulkan dependencies in `script/linux` (#9116)
Just a quick pull request and a small fix, someone reported a dependency was erroring for him, so I decided to open a small pull request. On top of that, any `devel` header is not needed because Vulkan is only a runtime dependency. Release Notes: - Fixed names of Vulkan dependencies that didn't exist
Mart Zielman created
a04932c
Windows: fix crash with unhandled window (#9164)
On Windows, some windows may be created that are not managed by the application. For example, the Japanese IME creates pop-ups like this one. <img width="325" alt="image" src="https://github.com/zed-industries/zed/assets/6465609/503aaa0a-7568-485a-a138-e689ae67001c"> The internal data associated with such a window is different from `WindowsWindowInner` and will crash if referenced. Therefore, before calling `try_get_window_inner`, it checks if it is an owned window. Release Notes: - N/A
白山風露 created
ceadb39
Prevent text from wrapping in code actions menu (#9178)
Right now we're basing the width of the menu on the longest code action title. That is only an approximation and doesn't always coincide perfectly with the true, longest code action. Given that it's pretty close, however, this commit simply disables text wrapping on the code action menu. Release Notes: - Fixed a rendering glitch that could cause code actions to not display correctly ([#8341](https://github.com/zed-industries/zed/issues/8341))
Antonio Scandurra created
2244419
Add missed pad (#9175)
Sorry I missed explicitly `Quad::pad` insertion at #9172. The struct layout is unchanged and does not affect the behavior. Release Notes: - N/A
白山風露 created
a8fa1f7
chat: fix emoji completions when word consists of emojis (#9107)
https://github.com/zed-industries/zed/assets/53836821/f4b31c47-d306-43f5-b971-0969f64a48f9 Fix for #9096 @JosephTLyons Release Notes: - Fixed emoji completion not showing up when word contains only emojis (#9096)
Bennet Bo Fenner created
eb5e18c
Fix blade validation failure (#9172)
Fix: #9167 Release Notes: - N/A
白山風露 created
830e107
Hide hover popover when mouse hovers over negative space (#9173)
Fixes https://github.com/zed-industries/zed/issues/8340 Release Notes: - Fixed a bug that would cause hover information to not be dismissed when hovering over negative space.
Antonio Scandurra created
45c4d35
rope: Preallocate chunks buffer
This commit also specializes 'fn push' for large text quantities. That specialized version uses a Vec instead of SmallVec. This commit shaves off about ~100ms out of 800ms when loading a 600Mb text buffer.
Piotr Osiewicz created
298314d
Fix regressions introduced by flicker fix (#9162)
This pull request fixes a couple of easy regressions we discovered right after using #9012 on nightly: - Popover buttons for a chat message were being occluded by the message itself. - Scrolling was not working on the `List` element. Release Notes: - N/A
Antonio Scandurra created
2f6c78b
Fix incorrect outline selections after submit (#9160)
Follow-up of https://github.com/zed-industries/zed/pull/9153 Release Notes: - N/A
Kirill Bulatov created
4700d33
Fix flickering (#9012)
See https://zed.dev/channel/gpui-536 Fixes https://github.com/zed-industries/zed/issues/9010 Fixes https://github.com/zed-industries/zed/issues/8883 Fixes https://github.com/zed-industries/zed/issues/8640 Fixes https://github.com/zed-industries/zed/issues/8598 Fixes https://github.com/zed-industries/zed/issues/8579 Fixes https://github.com/zed-industries/zed/issues/8363 Fixes https://github.com/zed-industries/zed/issues/8207 ### Problem After transitioning Zed to GPUI 2, we started noticing that interacting with the mouse on many UI elements would lead to a pretty annoying flicker. The main issue with the old approach was that hover state was calculated based on the previous frame. That is, when computing whether a given element was hovered in the current frame, we would use information about the same element in the previous frame. However, inspecting the previous frame tells us very little about what should be hovered in the current frame, as elements in the current frame may have changed significantly. ### Solution This pull request's main contribution is the introduction of a new `after_layout` phase when redrawing the window. The key idea is that we'll give every element a chance to register a hitbox (see `ElementContext::insert_hitbox`) before painting anything. Then, during the `paint` phase, elements can determine whether they're the topmost and draw their hover state accordingly. We are also removing the ability to give an arbitrary z-index to elements. Instead, we will follow the much simpler painter's algorithm. That is, an element that gets painted after will be drawn on top of an element that got painted earlier. Elements can still escape their current "stacking context" by using the new `ElementContext::defer_draw` method (see `Overlay` for an example). Elements drawn using this method will still be logically considered as being children of their original parent (for keybinding, focus and cache invalidation purposes) but their layout and paint passes will be deferred until the currently-drawn element is done. With these changes we also reworked geometry batching within the `Scene`. The new approach uses an AABB tree to determine geometry occlusion, which allows the GPU to render non-overlapping geometry in parallel. ### Performance Performance is slightly better than on `main` even though this new approach is more correct and we're maintaining an extra data structure (the AABB tree).  Release Notes: - Fixed a bug that was causing popovers to flicker. --------- Co-authored-by: Nathan Sobo <nathan@zed.dev> Co-authored-by: Thorsten <thorsten@zed.dev>
Antonio Scandurra , Nathan Sobo , and Thorsten created
9afd78b
Add ESLint information to JavaScript docs (#9158)
Release Notes: - N/A
Thorsten Ball created
9ff3cff
Respect `eslint.nodePath` setting (#9073)
I'm using Yarn Plug'n'Play. In this case, by default, eslint cannot find the path, so configuration like `"eslint.nodePath": ".yarn/sdks"` is required. So, I want to add this! Release Notes: - Added eslint config nodePath
Yanguk created
d66f8f9
docs: Move Linux tracking issue (#9130)
Release Notes: - N/A
Kainoa Kanter created
2698487
Fix Vim code formating (#9098)
- N/A
Hans created
39bd12a
gpui: add set menus example (#9131)
Add an example showing how to add a menu item, register an action with the `AppContext`, and successfully call the action. Release Notes: - N/A
Andrew created
e1f8a1e
Fix `<!DOCTYPE html>` syntax highlighting (#9108)
Release Notes: - Added `<!DOCTYPE html>` syntax highlighting ([4318](https://github.com/zed-industries/zed/issues/4318))
Max created
41dc5fc
Allow highlighting editor rows from multiple sources concurrently (#9153)
Kirill Bulatov created
f4a86e6
Always single-quote directory when cd'ing to get shell env (#9145)
This avoids us potentially executing code (if someone were to name their directory `$(echo you-are-pwned > /secure-files)`, for example). Works with zsh, bash, fish, nushell. Tested locally with all of them. Release Notes: - N/A
Thorsten Ball created
597465b
Slightly simplify editor highlights code (#9123)
Prepare for git diff hunk highlights by grouping all inlay highlight properties into one struct, and removing the dead background highlight code. Release Notes: - N/A
Kirill Bulatov created
ccc9391
Remove obsolete separator (#9117)
Max created
a03feca
Remove feedback button from status bar (#9100)
This PR removes the feedback button from the status bar, as Nathan and I discussed. We discussed the fact that we likely no longer need to take up valuable screen real estate for this, with where Zed as at now. This PR also moves the `Share Feedback...` collab menu item to the `Help` menu, as that's where VS Code puts their action to send in-app feedback (which might help with future discoverability) and renames it to `Give Feedback...`, to make it consistent with the name of the command palette action. Release Notes: - Removed the feedback button from the status bar.
Joseph T. Lyons created
ca696fd
Add rs-notify implementation of `fs::watch` (#9040)
This PR simplifies the Zed file system abstraction and implements `Fs::watch` for linux and windows. TODO: - [x] Figure out why this fails to initialize the file watchers when we have to initialize the config directory paths, but succeeds on subsequent runs. - [x] Fix macOS dependencies on old fsevents::Event crate Release Notes: - N/A
Mikayla Maki created
456efb5
windows: Add file dialog using IFileOpenDialog (#8919)
Release Notes: - Added a file dialog for Windows
Jason Wen created
d4ec78f
Add strikethrough to deprecated methods in CompletionsMenu (#9086)
Release Notes: - Added ([#8390](https://github.com/zed-industries/zed/issues/8390)). - Also Grays out deprecated methods Before <img width="730" alt="image" src="https://github.com/zed-industries/zed/assets/71665039/8b5e8009-22c2-43f7-b85b-79e571a5d282"> After <img width="773" alt="image" src="https://github.com/zed-industries/zed/assets/71665039/0aff572b-6d3f-4ed9-b08b-d925ee650817">
Adam created
efe5203
GPUI: Wayland: Add fullscreen, minimize and avoid unnecessary resizes (#9060)
Release Notes: - N/A
bbb651 created
146971f
Splice remove suggesion hints when those are cleared in the editor. (#9088)
Closes https://github.com/zed-industries/zed/issues/6793 Release Notes: - Fixed copilot suggestions not disappearing after disabling the tool ([6793](https://github.com/zed-industries/zed/issues/6793))
Kirill Bulatov created
3471780
Add `editor::RevertSelectedHunks` to revert git diff hunks in the editor (#9068)
https://github.com/zed-industries/zed/assets/2690773/653b5658-e3f3-4aee-9a9d-0f2153b4141b Release Notes: - Added `editor::RevertSelectedHunks` (`cmd-alt-z` by default) for reverting git hunks from the editor
Kirill Bulatov created
6a7a3b2
Add missing docstrings to settings.rs (#9054)
 Add documentation for theme-related settings. Release Notes: - Add documentation for theme-related settings ([8383](https://github.com/zed-industries/zed/issues/8383))
Jadi created
8a6264d
Provide wasm extensions with APIs needed for using pre-installed LSP binaries (#9085)
In this PR, we've added two new methods that LSP extensions can call: * `shell_env()`, for retrieving the environment variables set in the user's default shell in the worktree * `which(command)`, for looking up paths to an executable (accounting for the user's shell env in the worktree) To test this out, we moved the `uiua` language support into an extension. We went ahead and removed the built-in support, since this language is extremely obscure. Sorry @mikayla-maki. To continue coding in Uiua in Zed, for now you can `Add Dev Extension` from the extensions pane, and select the `extensions/uiua` directory in the Zed repo. Very soon, we'll support publishing these extensions so that you'll be able to just install it normally. Release Notes: - N/A --------- Co-authored-by: Marshall <marshall@zed.dev>
Max Brunsfeld and Marshall created
5abcc1c
Let LineColumn on StatusBar as clickable to open GoToLineColumn (#9002)
Release Notes: - Added to let LineColumn on StatusBar as clickable to open GoToLineColumn. - Added placeholder to GoToLineColumn input, and show help message on input changed. ## Screenshot 
Jason Lee created
977af37
open zed urls (#9081)
Release Notes: - Added support for opening files on the zed protocol `open zed:///Users/example/Desktop/a.txt` ([#8482](https://github.com/zed-industries/zed/issues/8482)).
Conrad Irwin created
1756c1f
Improve UI of popover buttons when hovering over chat messages (#9041)
### Before https://github.com/zed-industries/zed/assets/146845123/4a16c1ce-a671-4e39-abc9-3a0cb25bc0cd ### After https://github.com/zed-industries/zed/assets/146845123/cfab3d00-246e-427d-9c40-8ee520a0a186 Release Notes: - Improved the UI of popover buttons when hovering over chat messages.
Evren Sen created
be953b7
Add script for setting up WASI dependencies (#9078)
This PR adds a script for setting up the WASI dependencies needed for extensions. These already get downloaded when needed when using Zed, but in the tests the HTTP client is faked out, so if you don't already have them installed the `test_extension_store_with_gleam_extension` test will fail. Release Notes: - N/A
Marshall Bowers created
51ebe0e
Allow wasm extensions to do arbitrary file I/O in their own directory to install language servers (#9043)
This PR provides WASM extensions with write access to their own specific working directory under the Zed `extensions` dir. This directory is set as the extensions `current_dir` when they run. Extensions can return relative paths from the `Extension::language_server_command` method, and those relative paths will be interpreted relative to this working dir. With this functionality, most language servers that we currently build into zed can be installed using extensions. Release Notes: - N/A
Max Brunsfeld created
a550b9c
Impl `prompts` and `savefile dialog` on Windows (#9009)
### Description This is a part of #8809 , and this PR dose not include `open file dialog`, as I already saw two PRs impl this. https://github.com/zed-industries/zed/assets/14981363/3223490a-de77-4892-986f-97cf85aec3ae Release Notes: - N/A
张小白 created
bf295ea
Task::spawn now takes an optional task name as an argument.
If it is not set, we fall back to opening a modal. This allows user to spawn tasks via keybind.
Piotr Osiewicz created
fa5dfe1
Fix default tasks.json definition
Piotr Osiewicz created
7b73e28
fs: allocate backing storage once in Fs::load (#9020)
`futures_lite::AsyncReadExt::read_to_string` (that we use in `RealFs::load`) explicitly does not allocate memory for String contents up front, which leads to excessive reallocations. That reallocation time is a significant contributor to the time we spend loading files (esp large ones). For example, out of ~1s that it takes to open up a 650Mb ASCII buffer on my machine (after changes related to fingerprinting from #9007), 350ms is spent in `RealFs::load`. This change slashes that figure to ~110ms, which is still *a lot*. About 60ms out of 110ms remaining is spent zeroing memory. Sadly, `AsyncReadExt` API forces us to zero a buffer we're reading into (whether it's via read_to_string or read_exact), but at the very least this commit alleviates unnecessary reallocations. We could probably use something like [simdutf8](https://docs.rs/simdutf8/latest/simdutf8/) to speed up UTF8 validation in this method as well, though that takes only about ~18ms out of 110ms, so while it is significant, I've left that out for now. Memory zeroing is a bigger problem at this point. Before:  After:  /cc @as-cii Release Notes: - Improved performance when loading large files.
Piotr Osiewicz created
1081ba7
Adjust to newer logic from zed-industries/cargo-bundle (#9058)
Zed uses a fork of cargo-bundle, that got upstream changes and https://github.com/zed-industries/cargo-bundle/commit/9e185bd44d968d8039192220603494555afdbb4f into the deploy branch. Remove a TODO and adjust the script to the new packaging logic. Release Notes: - N/A
Kirill Bulatov created
ed8aa6d
Fix panic in layout_line when Y coordinate is too high (#9052)
Release Notes: - N/A
Conrad Irwin created
af56424
Make comment above `util::fs::remove_matching` a doc comment (#9051)
Just this one little thing, noticed it while working on an unrelated pull request. Release Notes: - N/A
Valentine Briese created
aa7be4b
Add clipboard support for Windows (#8978)
Release Notes: - Added Read / Write clipboard support to Windows via copypasta --------- Co-authored-by: Mikayla Maki <mikayla@zed.dev>
EricApostal and Mikayla Maki created
866d791
Fix joining hosted projects (#9038)
Release Notes: - N/A
Conrad Irwin created
f67abd2
vim: smartcase find option (#9033)
Release Notes: - Added option `use_smartcase_find` to the vim-mode
Rom Grk created