2845597
Disable mic and screenshare buttons on non-macOS platforms (#12994)
Click to expand commit body
Release Notes: - N/A
Mikayla Maki created
2845597
Disable mic and screenshare buttons on non-macOS platforms (#12994)
Release Notes: - N/A
Mikayla Maki created
85acc2b
Persist index for `/rustdoc` in LMDB (#12988)
This PR updates the `/rustdoc` command with persistence for the documented rustdoc items. Now when you run `/rustdoc --index <CRATE_NAME>` it will index the crate and store the results in LMDB. The documented items will then be read from the database when searching using `/rustdoc` and persist across restarts of Zed. Release Notes: - N/A
Marshall Bowers created
6c70a80
Update linux keybinds (#12822)
Release Notes: - Add `ctrl-y` for Redo. - Reorder bindings for copy/paste Fixes #11912 - Update `ctrl-b` to show hide left dock. This is the default behavior in VSCode.  ### Or... Release Notes: - N/A
Inam Ul Haq created
a35947c
Add dependencies for Ubuntu/Debian (#12959)
Release Notes: - Fixed #12890
Joel Tony created
f8ad5fe
Arm builds (#12961)
Release Notes: - N/A
Conrad Irwin created
e2cfbc5
Fix headless mode (#12960)
This was broken by two things: 1. A merge conflict in the install.sh script leading to bad sh syntax 2. A return removed by accident when we refactored main Release Notes: - N/A
Conrad Irwin created
0a13b9e
lsp: Provide completion reason in the request (#12893)
This should help LS make a better call about the completions it should return back to the caller. For example, it speeds up import completions for typescript. Before: https://github.com/zed-industries/zed/assets/24362066/b38fd565-f9ff-4db7-a87f-c3b31a9fdc96 after: https://github.com/zed-industries/zed/assets/24362066/d4fbc9ae-9aab-4543-b9f6-16acf1619576 This should be merged after 06.12 Preview to give it some time on Nightly. Release Notes: - N/A
Piotr Osiewicz created
eb7b5a7
project panel: Improve performance in worktrees with lots of files. (#12980)
When working on a repro for a different issue that involved a worktree with lots of files (100k to be precise), UI became pretty unresponsive. I pinned it down to us repeatedly preparing a HashSet of all paths in the currently-scrolled-to worktree, once per each entry in the range passed to for_each_visible_range (which is e.g. called during rendering). This PR makes that hashing happen just once per worktree. Additionally, we no longer iterate over (potentially) all entries in a given worktree when calculating the depth of a given entry. Note that we could probably be smarter about this still; instead of recalculating the hashset per each call to for_each_visible_entry, we could do it whenever we update entries in the project panel. However, with this PR I wanted to get a quick bang for a small buck; I'm pretty confident in the change as is, it is relatively straightforward and messing with worktree updates is more involved. Release Notes: - Improvement performance of project panel in large worktrees
Piotr Osiewicz created
7798f64
chore: Bump lsp-types to 0.97.0 (#12928)
This also includes https://github.com/gluon-lang/lsp-types/pull/287, which should significantly reduce the time it takes for us to deserialize completion lists. Release Notes: - N/A
Piotr Osiewicz created
21764c3
Fix typo error in flatpak script (#12978)
Fix https://github.com/zed-industries/zed/issues/12977 Release Notes: - N/A
yodatak created
cfbf5dc
Add mold package for opensuse, arch, void and gentoo (#12964)
Release Notes: - N/A
Subodh Upreti created
2f43d52
A set of outline panel fixes (#12965)
Follow-up of https://github.com/zed-industries/zed/pull/12637 * Wrong font size for the outline items (fixes https://github.com/zed-industries/zed/pull/12637#issuecomment-2164084021) * Duplicate context menu item (fixes https://github.com/zed-industries/zed/issues/12957) * Missing `space` keybinding for item opening (fixes https://github.com/zed-industries/zed/issues/12956) * Adds 60px more to the default width (fixes https://github.com/zed-industries/zed/issues/12955) * Incorrect scroll for singleton buffers (fixes https://github.com/zed-industries/zed/issues/12953) Release Notes: - N/A
Kirill Bulatov created
e1f4dfc
Refine inline transformation UX (#12939)
https://github.com/zed-industries/zed/assets/482957/1790e32e-1f59-4831-8a4c-722cf441e7e9 Release Notes: - N/A --------- Co-authored-by: Richard <richard@zed.dev> Co-authored-by: Nathan <nathan@zed.dev>
Antonio Scandurra , Richard , and Nathan created
9e3c5f3
Docs to help people find their way back (#12958)
Release Notes: - N/A
Conrad Irwin created
f780504
zed.desktop.in: Don't hardcode executable name due to binary conflicts (#12951)
> * There are a couple of other `zed` binaries that may be present on
linux systems
([1](https://openzfs.github.io/openzfs-docs/man/v2.2/8/zed.8.html),
[2](https://zed.brimdata.io/docs/commands/zed)). If you want to rename
our CLI
binary because of these issues, we suggest `zedit`, `zeditor`, or
`zed-cli`.
Due to aformentioned issue don't hardcode the executable name in the
.desktop file so envsubst can change it in accordance with the
distributor's requirement.
Resolves #12290.
Release Notes:
- N/A
Joey Riches created
76b0120
Reveal the selected item when cycling a picker's selection (#12950)
Release Notes: - Fixed a bug where the selected tab was not always shown when cycling between tabs with `ctrl-tab`.
Max Brunsfeld created
0ac9af9
assistant: Add MVP for `/rustdoc` using indexed docs (#12952)
This PR adds an MVP of retrieving docs using the `/rustdoc` command from
an indexed set of docs.
To try this out:
1. Build local docs using `cargo doc`
2. Index the docs for the crate you want to search using `/rustdoc
--index <CRATE_NAME>`
- Note: This may take a while, depending on the size of the crate
3. Search for docs using `/rustdoc my_crate::path::to::item`
- You should get completions for the available items
Here are some screenshots of it in action:
<img width="640" alt="Screenshot 2024-06-12 at 6 19 20 PM"
src="https://github.com/zed-industries/zed/assets/1486634/6c49bec9-d084-4dcb-a92c-1b4c557ee9ce">
<img width="636" alt="Screenshot 2024-06-12 at 6 52 56 PM"
src="https://github.com/zed-industries/zed/assets/1486634/636a651c-7d02-48dc-b05c-931f33c49f9c">
Release Notes:
- N/A
Marshall Bowers created
ec08694
Use clang+mold on linux (#12944)
Takes a clean build on my machine from 222s to 185s Release Notes: - N/A
Conrad Irwin created
8451dba
Introduce an outline panel (#12637)
Adds a new panel: `OutlinePanel` which looks very close to project panel: <img width="256" alt="Screenshot 2024-06-10 at 23 19 05" src="https://github.com/zed-industries/zed/assets/2690773/c66e6e78-44ec-4de8-8d60-43238bb09ae9"> has similar settings and keymap (actions work in the `OutlinePanel` context and are under `outline_panel::` namespace), with two notable differences: * no "edit" actions such as cut/copy/paste/delete/etc. * directory auto folding is enabled by default Empty view: <img width="841" alt="Screenshot 2024-06-10 at 23 19 11" src="https://github.com/zed-industries/zed/assets/2690773/dc8bf37c-5a70-4fd5-9b57-76271eb7a40c"> When editor gets active, the panel displays all related files in a tree (similar to what the project panel does) and all related excerpts' outlines under each file. Same as in the project panel, directories can be expanded or collapsed, unfolded or folded; clicking file entries or outlines scrolls the buffer to the corresponding excerpt; changing editor's selection reveals the corresponding outline in the panel. The panel is applicable to any singleton buffer: <img width="1215" alt="Screenshot 2024-06-10 at 23 19 35" src="https://github.com/zed-industries/zed/assets/2690773/a087631f-5c2d-4d4d-ae25-30ab9731d528"> <img width="1728" alt="image" src="https://github.com/zed-industries/zed/assets/2690773/e4f8082c-d12d-4473-8500-e8fd1051285b"> or any multi buffer: (search multi buffer) <img width="1728" alt="Screenshot 2024-06-10 at 23 19 41" src="https://github.com/zed-industries/zed/assets/2690773/60f768a3-6716-4520-9b13-42da8fd15f50"> (diagnostics multi buffer) <img width="1728" alt="image" src="https://github.com/zed-industries/zed/assets/2690773/64e285bd-9530-4bf2-8f1f-10ee5596067c"> Release Notes: - Added an outline panel to show a "map" of the active editor
Kirill Bulatov created
7f56f4e
Add libgit2 build dependency to Arch-based distros (#12924)
Release Notes: - N/A
DocKDE created
6fa347d
Move rustdoc-related code to `rustdoc` crate (#12945)
This PR moves the rustdoc-related code out of `html_to_markdown` and into the `rustdoc` crate. Release Notes: - N/A
Marshall Bowers created
c3df9b7
Start on rustdoc crawler (#12942)
This PR adds a first pass at a rustdoc crawler. We'll be using this to get information about a crate from the rustdoc artifacts for use in the Assistant. Release Notes: - N/A --------- Co-authored-by: Richard <richard@zed.dev>
Marshall Bowers and Richard created
72dac24
Add missing LICENSE file to `ollama` crate (#12943)
This PR adds a missing LICENSE file to the recently-added `ollama` crate. Also added the missing `lints.workspace = true` to the `Cargo.toml`. Release Notes: - N/A
Marshall Bowers created
001f17c
vim: Implement named registers (#12895)
Release Notes: - vim: Add support for register selection `"a`-`"z`, `"0`-`"9`, `"-`. `"_` and `"%` ([#11511](https://github.com/zed-industries/zed/issues/11511)) --------- Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Paul Eguisier and Conrad Irwin created
3c3dad6
v0.141.x dev
Joseph T Lyons created
1b28f93
Make notification windows not have titles on X11 (#12935)
Co-Authored-By: Max <max@zed.dev> Release Notes: - N/A Co-authored-by: Max <max@zed.dev>
Conrad Irwin and Max created
2fd00a8
docs: Capitalize Vim in Vim mode documentation (#12934)
Release Notes: - N/A
Thorsten Ball created
bee3441
Ollama improvements (#12921)
Attempt to load the model early on when the user has switched the model. This is a follow up to #12902 Release Notes: - N/A
Kyle Kelley created
113546f
Do not encourage additional ignored labels
We recently reduced the set of ignored labels down to a single label: "ignore top-ranking issues." It makes sense that we don't allow for multiple to be registered in this script now.
Joseph T Lyons created
5e9f9b4
Wrap JS/TS runnables in quotes (#12932)
Some of the runnables added in #12118 don't work for tests (or code)
that contain spaces. In other words, the runnable for a test like
```js
it('does the thing', () => ...)
```
would end up w/ something like `npx jest does the thing
/path/to/file.spec.js`, but what we really want is `npx jest
--testNamePattern "does the thing" /path/to/file.spec.js`. A similar
thing was happening for the "node execute selection" runnable: selecting
`let foo = 1` would run `node -e let foo = 1`, not `node -e "let foo =
1"`.
In my (somewhat limited?) experience, it's very common for tests like
these to include spaces, and of course a code selection is almost
certain to contain whitespace.
Not covered:
- this just blindly wraps quotes around the symbol/code; in the future
it may make sense to try to figure out *what type of quote* to use. (eg
`it('does the "thing"', () => ...)` is a valid test name, but
`--testNamePattern "does the "thing""` would not work. Note the doubled
quotes.)
- I did not wrap the filenames in quotes to escape those for the shell,
nor did I test if that's actually an issue. In my experience, I've not
seen many (any?) test files that contain spaces in the name, but I
suspect that it would be an issue if a containing dir includes spaces.
(eg `npx jest ... /path/to/My Documents/Code/file.spec.js`
/cc @RemcoSmitsDev
Release Notes:
- Fixed some runnables in Javascript/Typescript
claytonrcarter created
ec95a33
Added TSX test runnables (#12922)
Fix #12884 Release Notes: - Added runnable tests for TSX files. --- Runnable tests can be customized via `tsx-test` tag --------- Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>
Chung Wei Leong and Piotr Osiewicz created
b823509
linux: Use filesystem based unix socket instead of abstract namespace (#12756)
Release Notes: - N/A fixes: unable to launch multiple zed instances even if the support dirs are different(example: bwrap based sandboxing)
maan2003 created
e16bbe0
Make install.sh sh-compatible (#12899)
Co-Authored-By: Max <max@zed.dev> Release Notes: - N/A --------- Co-authored-by: Max <max@zed.dev> Co-authored-by: Shyim <github@shyim.de>
Conrad Irwin , Max , and Shyim created
ab41edd
Fix cursors on some GNOME installations (#12914)
This PR adds support for `org.gnome.desktop.interface`'s `cursor-theme` setting on Wayland. This should fix cursors not showing up on some GNOME installs. This PR also adds the wiring to watch the current cursor theme value. Thanks to @apricotbucket28 for helping debug the issue. Release Notes: - N/A
Mikayla Maki created
4cb8d6f
Ollama Provider for Assistant (#12902)
Closes #4424.
A few design decisions that may need some rethinking or later PRs:
* Other providers have a check for authentication. I use this
opportunity to fetch the models which doubles as a way of finding out if
the Ollama server is running.
* Ollama has _no_ API for getting the max tokens per model
* Ollama has _no_ API for getting the current token count
https://github.com/ollama/ollama/issues/1716
* Ollama does allow setting the `num_ctx` so I've defaulted this to
4096. It can be overridden in settings.
* Ollama models will be "slow" to start inference because they're
loading the model into memory. It's faster after that. There's no UI
affordance to show that the model is being loaded.
Release Notes:
- Added an Ollama Provider for the assistant. If you have
[Ollama](https://ollama.com/) running locally on your machine, you can
enable it in your settings under:
```jsonc
"assistant": {
"version": "1",
"provider": {
"name": "ollama",
// Recommended setting to allow for model startup
"low_speed_timeout_in_seconds": 30,
}
}
```
Chat like usual
<img width="1840" alt="image"
src="https://github.com/zed-industries/zed/assets/836375/4e0af266-4c4f-4d9e-9d74-1a91f76a12fe">
Interact with any model from the [Ollama
Library](https://ollama.com/library)
<img width="587" alt="image"
src="https://github.com/zed-industries/zed/assets/836375/87433ac6-bf87-4a99-89e1-96a93bf8de8a">
Open up the terminal to download new models via `ollama pull`:

Kyle Kelley created
127b9ed
project_panel: Don't show file icon during rename when file icons are otherwise hidden (#12910)
This PR fixes an instance where the file icon for a project panel entry would be shown during a rename even when the `project_panel.file_icons` setting was set to `false`. Resolves #12905. Release Notes: - Fixed an issue where file icons were displayed in the project panel during a rename even when `project_panel.file_icons` was set to `false` ([#12905](https://github.com/zed-industries/zed/issues/12905)).
Marshall Bowers created
c30f6a1
Fix alt key getting stuck when tabbing on linux (#12912)
Release Notes: - N/A
Mikayla Maki created
8ccd2a0
Add tag handler for collecting crate items from rustdoc output (#12903)
This PR adds a tag handler for collecting crate items from rustdoc's HTML output. This will serve as the foundation for getting more insight into a crate's contents. Release Notes: - N/A
Marshall Bowers created
57b87be
Hoist `indexmap` to workspace level (#12901)
This PR hoists `indexmap` up to a workspace dependency. Release Notes: - N/A
Marshall Bowers created
80c14c9
Pull app / OS info out of GPUI, add Linux information, make fallible window initialization (#12869)
TODO: - [x] Finish GPUI changes on other operating systems This is a largely internal change to how we report data to our diagnostics and telemetry. This PR also includes an update to our blade backend which allows us to report errors in a more useful way when failing to initialize blade. Release Notes: - N/A --------- Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Mikayla Maki and Conrad Irwin created
ec9e700
linux/x11: Mark windows as destroyed after destroy request (#12892)
Turns out we still get FocusOut and UnmapNotify events after the window has been destroyed, which resulted in error messages popping up because we can't find the window anymore that we want to mark as unfocused. Release Notes: - N/A
Thorsten Ball created
a06189b
Fix most vim tests on linux (#12873)
Fixes most vim tests on linux (and a few editor ones) by loading Zed Mono instead of relying on the system fallback stack. Release Notes: - N/A
Conrad Irwin created
53b0720
Remove headers from prompt library picker (#12889)
Also, as a drive-by, we're fixing up/down not working in inline assistant editor. Release Notes: - N/A
Antonio Scandurra created
b6ea393
lsp: Add support for linked editing range edits (HTML tag autorenaming) (#12769)
This PR adds support for [linked editing of
ranges](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#textDocument_linkedEditingRange),
which in short means that editing one part of a file can now change
related parts in that same file. Think of automatically renaming
HTML/TSX closing tags when the opening one is changed.
TODO:
- [x] proto changes
- [x] Allow disabling linked editing ranges on a per language basis.
Fixes #4535
Release Notes:
- Added support for linked editing ranges LSP request. Editing opening
tags in HTML/TSX files (with vtsls) performs the same edit on the
closing tag as well (and vice versa). It can be turned off on a language-by-language basis with the following setting:
```
"languages": {
"HTML": {
"linked_edits": true
},
}
```
---------
Co-authored-by: Bennet <bennet@zed.dev>
Piotr Osiewicz and Bennet created
98659ea
Overhaul inline assistant (#12846)
This pull request introduces a new diff mechanism that helps users understand exactly which lines were changed by the LLM. Release Notes: - N/A
Antonio Scandurra created
3722275
linux/x11: Only create ModifiersChanged event if they changed (#12879)
I noticed that when I use my mouse wheel, we get a ton of the `XkbStateNotify` events, but the modifiers don't change, so we add a ton of useless input events for the window. Release Notes: - N/A
Thorsten Ball created
ef84ce7
linux make install (#12870)
Release Notes: - N/A
Conrad Irwin created
44a5864
Wait for composition to end before sending InputIgnored (#12871)
Release Notes: - vim: Fixed `f`/`t` etc. for keys that require IME (#12522)
Conrad Irwin created
4e98c23
Reconnect button for remote projects (#12669)
Release Notes: - N/A --------- Co-authored-by: Max <max@zed.dev>
Conrad Irwin and Max created
1914a42
Update windows doc to mention rust-lld linker error (#12859)
Release Notes: - N/A ## Description When using rust-lld it's possible to get a `STATUS_ACCESS_VIOLATION` error at compile time. I added a bit of information about it in the build guide for windows to recommend using a different linker when building `zed`. --------- Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
IceSentry and Marshall Bowers created