456efb5
windows: Add file dialog using IFileOpenDialog (#8919)
Click to expand commit body
Release Notes: - Added a file dialog for Windows
Jason Wen 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
d247086
vim: subword motions (#8725)
Add subword motions to vim, inspired by [nvim-spider](https://github.com/chrisgrieser/nvim-spider), [CamelCaseMotion](https://github.com/bkad/CamelCaseMotion). Release Notes: - Added subword motions to vim
Rom Grk created
467a179
Add Elixir symbols in outline view (#8761)
Release Notes: - Improved: Add `@callback`, `@type` and `@typep` Elixir symbols in outline view https://github.com/zed-industries/zed/assets/14976415/208d3def-f49e-41e0-a306-fb8e00317e6b
rauan created
b50f867
Impl drag-drop action for Windows (#8959)
### Description This is a part of #8809 https://github.com/zed-industries/zed/assets/14981363/2b085b9d-8b83-4ac7-8b84-07c679760eba Release Notes: - N/A --------- Co-authored-by: Mikayla Maki <mikayla@zed.dev>
Small White and Mikayla Maki created
e85d484
Fix terminal on Windows (#8999)
### Description Since [this PR](https://github.com/alacritty/alacritty/pull/7796) has been merged, so we can delete the `todo`s in `terminal` module. Release Notes: - N/A
Small White created
2d83580
linux: enable test TextSystem (#9037)
Make text tests work on linux.
Rom Grk created
a90a667
Windows: Add document (#8948)
Release Notes: - N/A
白山風露 created
35c7b5d
Add vulkan linux dependency (#8932)
Release Notes: - Fixed ([#8934](https://github.com/zed-industries/zed/issues/8934)). Optionally, include screenshots / media showcasing your addition that can be included in the release notes. **or** - N/A Signed-off-by: pigletfly <wangbing.adam@gmail.com>
Bing Wang created
ffebe2e
Initial Linux nightly bundles upload (#8913)
Changes Zed CI to build and upload Linux nightly bundles.
* `todo!(linux)` are replaced with `TODO linux` to make `todo!`-based
workflows more convenient
* renames `run-build-dmg` label into `run-bundling`, also renames a few
GH Actions entries to be more generic
* make another upload path for Linux, which keeps a separate file with SHA to version the nightly artifact.
* adds a `*.deb` package building with a couple of caveats, marked with
new `TODO linux` entries:
1. `cargo-bundle` is not very flexible, so it generates artifacts with
the structure and names that we're unable to alter before/during the
generation.
For that, a set of extra steps is made by repacking the *.deb package —
this is not very portable between different Linux distros, so later one
needs to find a way to combine multiple package types in this script.
2. `cargo-bundle` is not able to properly generate the *.msi bundle
despite declaring it in the features:
https://github.com/burtonageo/cargo-bundle/issues/116
Windows needs to invent its own way of bundling or fix the tool.
3. Both `cli` and `zed` binaries are added into the archive under
`/usr/local/bin/` path with their `-$channel` suffix
(-nightly/-preview/-dev/-stable) and a `/usr/local/bin/zed ->
/usr/local/bin/cli-nightly` symlink is made to make CLI work as Zed
launcher:
```
~/work/zed kb/linux-nightly:origin/kb/linux-nightly* ❯ dpkg -c target/zed_amd64.deb
drwxr-xr-x allaptop/allaptop 0 2024-03-06 00:53 ./
drwxr-xr-x allaptop/allaptop 0 2024-03-06 00:53 ./usr/
drwxr-xr-x allaptop/allaptop 0 2024-03-06 00:53 ./usr/local/
drwxr-xr-x allaptop/allaptop 0 2024-03-06 00:53 ./usr/local/bin/
-rwxr-xr-x allaptop/allaptop 8746832 2024-03-06 00:53 ./usr/local/bin/cli-nightly
-rwxr-xr-x allaptop/allaptop 689078560 2024-03-06 00:53 ./usr/local/bin/zed-nightly
drwxr-xr-x allaptop/allaptop 0 2024-03-06 00:53 ./usr/share/
drwxr-xr-x allaptop/allaptop 0 2024-03-06 00:53 ./usr/share/applications/
-rw-r--r-- allaptop/allaptop 153 2024-03-06 00:53 ./usr/share/applications/zed.desktop
drwxr-xr-x allaptop/allaptop 0 2024-03-06 00:53 ./usr/share/icons/
drwxr-xr-x allaptop/allaptop 0 2024-03-06 00:53 ./usr/share/icons/hicolor/
drwxr-xr-x allaptop/allaptop 0 2024-03-06 00:53 ./usr/share/icons/hicolor/1024x1024@2x/
drwxr-xr-x allaptop/allaptop 0 2024-03-06 00:53 ./usr/share/icons/hicolor/1024x1024@2x/apps/
-rw-r--r-- allaptop/allaptop 716288 2024-03-06 00:53 ./usr/share/icons/hicolor/1024x1024@2x/apps/zed.png
drwxr-xr-x allaptop/allaptop 0 2024-03-06 00:53 ./usr/share/icons/hicolor/512x512/
drwxr-xr-x allaptop/allaptop 0 2024-03-06 00:53 ./usr/share/icons/hicolor/512x512/apps/
-rw-r--r-- allaptop/allaptop 239870 2024-03-06 00:53 ./usr/share/icons/hicolor/512x512/apps/zed.png
lrwxrwxrwx allaptop/allaptop 0 2024-03-06 00:53 ./usr/local/bin/zed -> /usr/local/bin/cli-nightly
```
But the CLI does not work under Linux yet and there's no way to install
that CLI from Zed now; Zed binary itself is not able to open
`file/location:12:34`-like things and set up the env properly, but is
able to start or open a directory.
So, this structure can be considered temporary and changed, if needed.
4. Zed Nightly on Linux does not know how to update itself, so all
nightly publishing is not picked up automatically.
5. Rust cache from `main` builds does not get shared between CI jobs,
due to being run in a different CI job that forms a different CI key, so
```
- name: Cache dependencies
uses: swatinem/rust-cache@v2
with:
save-if: ${{ false }}
```
would not work.
This makes Linux bundling jobs long.
Release Notes:
- N/A
Kirill Bulatov created
e85f190
Fix 0 notes versions being always unread (#9030)
Co-Authored-By: Max <max@zed.dev> Co-Authored-By: Nathan <nathan@zed.dev> Release Notes: - Fixed empty notes always showing as unread Co-authored-by: Max <max@zed.dev> Co-authored-by: Nathan <nathan@zed.dev>
Conrad Irwin , Max , and Nathan created
284a57d
Fix panic in open urls (#9032)
Co-Authored-By: Nathan <nathan@zed.dev> Release Notes: - N/A Co-authored-by: Nathan <nathan@zed.dev>
Conrad Irwin and Nathan created
9068911
wayland: don't dispatch modifier key events (#9027)
Modifier keys are dispatched as events on wayland, unlike macos. This prevents pending bindings from matching, because something like e.g. `g shift-e` is received by the key matcher as `g shift shift-e`.
Rom Grk created
27518f4
Fix extension store test failure on main due to wasi-sdk download
Max Brunsfeld created
86748a0
Denormalize buffer operations (#9026)
This should significantly reduce database load on redeploy. Co-Authored-By: Max <max@zed.dev> Co-Authored-By: Nathan <nathan@zed.dev> Release Notes: - Reduced likelihood of being disconnected during deploys Co-authored-by: Max <max@zed.dev> Co-authored-by: Nathan <nathan@zed.dev>
Conrad Irwin , Max , and Nathan created
b5370cd
Remove git_commit syntax highlighting from core Zed (#9025)
Fallback to extension https://github.com/zed-industries/extensions/pull/307 Release Notes: - Remove git_commit syntax highlighting from Zed core, `git-firefly` extension replaced that Co-authored-by: William Desportes <williamdes@wdes.fr> Co-authored-by: Kirill Bulatov <mail4score@gmail.com> Co-authored-by: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
d1y , William Desportes , Kirill Bulatov , and Marshall Bowers created
85e6bc9
Enable `clippy::suspicious_to_owned` (#9004)
Another small change: calling to owned on the `Cow` was cloning the `Cow`, not its contents and so calling `clone` makes this more explicit
Kirpal Grewal created
105e654
Include `font_features` in cache key for fonts (#8928)
## Release Notes - Fixed font ligatures not always respecting the setting ([#4313](https://github.com/zed-industries/zed/issues/4313)). ## Preview 
Yesterday17 created
6b89842
Pluralize and order user menu items for consistency (#9013)
Release Notes: - N/A
Max created
bc7fb9f
Show tooltip with item paths for recent project picker items (#8987)
Before  After  Release Notes: - Fixed empty tooltip for recent projects picker items
Jason Lee created
d450fde
language: Track buffer dirty state based on edits, not on file contents
Piotr Osiewicz created
4c9c9df
Add ZED_SELECTED_TEXT variable to tasks (#8865)
Tasks are able to access a users selected text using the environment variable "ZED_SELECTED_TEXT". Release notes: - Added ZED_SELECTED_TEXT task variable which contains contents of selection
Anthony Eid created
3a9ec90
task: make ZED_FILE return abs path, for real this time (#9000)
Release Notes: - Fixed ZED_FILE environment variable containing a relative path, not an absolute one.
Piotr Osiewicz created
01fe3ee
Fix project panel icon bouncing when renaming (#8988)
I found the project panel icon has a little bounce when I tried to rename some files. Release Notes: - Fix project panel icon bouncing when renaming. ## Before https://github.com/zed-industries/zed/assets/28998859/76f04c33-da68-40e2-9c83-045e78187679 **Set `buffer_line_height` to `standard`** https://github.com/zed-industries/zed/assets/28998859/9a9eca93-5fda-4060-ba1d-0cd4e0486eb8 ## After https://github.com/zed-industries/zed/assets/28998859/29b49f1c-a9ae-4281-8921-8f1d8dd74262 **Set `buffer_line_height` to `standard`** https://github.com/zed-industries/zed/assets/28998859/8f1ccbb5-fe0e-4905-97c4-cb7431e5dc46
Floyd Wang created
0a07746
Delete tasks.md
Moved documentation to zed.dev
Joseph T. Lyons created
026cdc6
Update tasks.md
Joseph T. Lyons created
4238793
Add `[x`/`]x` to select larger/smaller syntax node in Vim (#8985)
`[x` will select the larger syntax node, `]x` the smaller one. Inspired by https://github.com/tpope/vim-unimpaired. Release Notes: - Added `[x` and `]x` as default keybindings in Vim mode to select larger and smaller syntax nodes respectively.
Thorsten Ball created
1a93870
Only 5s of data! (#8983)
This is still 200Mb in production, and takes several minutes to process and download. Release Notes: - N/A
Conrad Irwin created
4f53e6e
Update cargo.lock
Conrad Irwin created
75a42c2
Migrate from scrypt to sha256. (#8969)
This reduces the server time to compute the hash from 40ms to 5µs, which should remove this as a noticable chunk of CPU time in production. (An attacker who has access to our database will now need only 10^54 years of CPU time instead of 10^58 to brute force a token). Release Notes: - Improved sign in latency by 40ms.
Conrad Irwin created