d5fe2c8
Order prompts by default (#12268)
Click to expand commit body
Prompts in the prompt library will be in A->Z order by default. Release Notes: - N/A
Nate Butler created
d5fe2c8
Order prompts by default (#12268)
Prompts in the prompt library will be in A->Z order by default. Release Notes: - N/A
Nate Butler created
f7a8696
Avoid holding worktree lock for a long time while updating large repos' git status (#12266)
Fixes https://github.com/zed-industries/zed/issues/9575 Fixes https://github.com/zed-industries/zed/issues/4294 ### Problem When a large git repository's `.git` folder changes (due to a `git commit`, `git reset` etc), Zed needs to recompute the git status for every file in that git repository. Part of computing the git status is the *unstaged* part - the comparison between the content of the file and the version in the git index. In a large git repository like `chromium` or `linux`, this is inherently pretty slow. Previously, we performed this git status all at once, and held a lock on our `BackgroundScanner`'s state for the entire time. On my laptop, in the `linux` repo, this would often take around 13 seconds. When opening a file, Zed always refreshes the metadata for that file in its in-memory snapshot of worktree. This is normally very fast, but if another task is holding a lock on the `BackgroundScanner`, it blocks. ### Solution I've restructured how Zed handles Git statuses, so that when a git repository is updated, we recompute files' git statuses in fixed-sized batches. In between these batches, the `BackgroundScanner` is free to perform other work, so that file operations coming from the main thread will still be responsive. Release Notes: - Fixed a bug that caused long delays in opening files right after performing a commit in very large git repositories.
Max Brunsfeld created
800c1ba
Rework prompt frontmatter (#12262)
Moved some things around so prompts now always have front-matter to return, either by creating a prompt with default front-matter, or bailing earlier on importing the prompt to the library. In the future we'll improve visibility of malformed prompts in the `prompts` folder in the prompt manager UI. Fixes: - Prompts inserted with the `/prompt` command now only include their body, not the entire file including metadata. - Prompts with an invalid title will now show "Untitled prompt" instead of an empty line. Release Notes: - N/A
Nate Butler created
461e7d0
Create a new directory when a new file ends with `/` (#12018)
Release Notes: - Made project panel to create directories when renaming into paths ending with `/`
Avinash Thakur created
82f5f36
Allow defining slash commands in extensions (#12255)
This PR adds initial support for defining slash commands for the
Assistant from extensions.
Slash commands are defined in an extension's `extension.toml`:
```toml
[slash_commands.gleam-project]
description = "Returns information about the current Gleam project."
requires_argument = false
```
and then executed via the `run_slash_command` method on the `Extension`
trait:
```rs
impl Extension for GleamExtension {
// ...
fn run_slash_command(
&self,
command: SlashCommand,
_argument: Option<String>,
worktree: &zed::Worktree,
) -> Result<Option<String>, String> {
match command.name.as_str() {
"gleam-project" => Ok(Some("Yayyy".to_string())),
command => Err(format!("unknown slash command: \"{command}\"")),
}
}
}
```
Release Notes:
- N/A
Marshall Bowers created
055a13a
Allow clients to run Zed tasks on remote projects (#12199)
Release Notes: - Enabled Zed tasks on remote projects with ssh connection string specified --------- Co-authored-by: Conrad Irwin <conrad@zed.dev>
Kirill Bulatov and Conrad Irwin created
df35fd0
Show Delete shortcuts in project panel context menu (#12250)
Closes https://github.com/zed-industries/zed/issues/12234 by making both default keymap and the menu `Delete` action declarations to have the same `skip_prompt` value. `Trash` action got more explicit `skip_prompt` declarations in this PR, but those were the defaults already, so not changed. Now, `Delete` action in the project panel will always show a prompt before removing, both on the keystroke and menu item click. To note, VSCode does skips prompt for the `Trash` action, so we might want to change that too (later?), the PR does not alter it. Release Notes: - Shows Delete action binding keys in the project panel context menu ([12234](https://github.com/zed-industries/zed/issues/12234))
Kirill Bulatov created
27229bb
tasks: Provide task variables from matching runnable ranges in task modal (#12237)
In #12003 we found ourselves in need for precise region tracking in which a given runnable has an effect in order to grab variables from it. This PR makes it so that in task modal all task variables from queries overlapping current cursor position. However, in the process of working on that I've found that we cannot always use a top-level capture to represent the full match range of runnable (which has been my assumption up to this point). Tree-sitter captures cannot capture sibling groups; we did just that in Rust queries. Thankfully, none of the extensions are affected as in them, a capture is always attached to single node. This PR adds annotations to them nonetheless; we'll be able to get rid of top-level captures in extension runnables.scm once this PR is in stable version of Zed. Release Notes: - N/A
Piotr Osiewicz created
08a3d3a
assistant: Add missing `lints.workspace` (#12253)
This PR adds the missing `lints.workspace` setting to the `assistant` crate's `Cargo.toml`. Release Notes: - N/A
Marshall Bowers created
8040e43
Extract `SlashCommand` trait from `assistant` (#12252)
This PR extracts the `SlashCommand` trait (along with the `SlashCommandRegistry`) from the `assistant` crate. This will allow us to register slash commands from extensions without having to make `extension` depend on `assistant`. Release Notes: - N/A
Marshall Bowers created
af3d7a6
indent guides: Fix tab handling (#12249)
Fixes indent guides when using tabs, Fixes: #12209, fixes #12210 Release Notes: - N/A
Bennet Bo Fenner created
414f97f
docs: Fix path to "configuring-zed" page in Python lang doc (#12233)
Fix path to the `configuring-zed` page in Python language documentation. Release Notes: - N/A
Vitaly Slobodin created
0eff1ea
task: Add ZED_DIRNAME and ZED_RELATIVE_FILE task variables (#12245)
Release Notes: - Added ZED_RELATIVE_FILE (path to current file relative to worktree root) and ZED_DIRNAME (path to the directory containing current file) task variables.
Piotr Osiewicz created
b0d89d6
Fix jetbrains keymap alt-enter to do `search::SelectAllMatches` (#11951)
The default keymap uses alt-enter for `SelectAllMatches` for `context: BufferSearchBar`. Jetbrains keymap uses alt-enter for `ToggleCodeActions` for `context: Editor`. When focusing on search bar, currently alt-enter does not perform `SelectAllMatches`, whereas `ToggleCodeActions` is triggered instead, because search bar's text input element has `context: Editor mode=single_line`. This PR restricts `ToggleCodeActions` to `Editor (full mode)` context to allow `SelectAllMatches` to be triggered for alt-enter when the search bar is active. Release Notes: - Fixed alt-enter with JetBrains keymap ignoring `search::SelectAllMatches` in certain contexts ([11840](https://github.com/zed-industries/zed/issues/11840))
Congyu created
d116f3c
Use checked `str` slices in `Rgba::TryFrom<str>` (#12097)
Release Notes: - N/A --------- Co-authored-by: Kirill Bulatov <kirill@zed.dev>
bbb651 and Kirill Bulatov created
70e8737
Allow information popovers while showing autocomplete suggestions (#12157)
Allows information popovers to display while autocomplete suggestions are also being displayed. Before: https://github.com/zed-industries/zed/assets/50590465/a61f0b4e-1521-42de-84fd-c5a3586b74ab After: https://github.com/zed-industries/zed/assets/50590465/ad2daae7-aebc-4c71-ad4c-f9d2deb6d0d0 Release Notes: - Allow hover and completion popovers to appear at the same time ([12152](https://github.com/zed-industries/zed/issues/12152))
Ephram created
b9697fb
Enable manual worktree organization (#11504)
Release Notes: - Preserve order of worktrees in project ([#10883](https://github.com/zed-industries/zed/issues/10883)). - Enable drag-and-drop reordering for project worktrees Note: worktree order is not synced during collaboration but guests can reorder their own project panels.  --------- Co-authored-by: Kirill Bulatov <kirill@zed.dev>
Elliot Thomas and Kirill Bulatov created
1e5389a
rust: Add runnable icon for `#[cfg(test)] mod tests` (#12017)
This allows you to run all the tests inside the `mod tests` block. Fixes #11967. <img width="366" alt="Screenshot 2024-05-18 at 16 07 32" src="https://github.com/zed-industries/zed/assets/62463826/01fc378c-1546-421d-8250-fe0227c1e5a0"> <img width="874" alt="Screenshot 2024-05-18 at 16 37 21" src="https://github.com/zed-industries/zed/assets/62463826/4a880b91-df84-4917-a16e-5d5fe20e22ac"> Release Notes: - Added runnable icon for Rust `#[cfg(test)] mod tests` blocks ([#11967](https://github.com/zed-industries/zed/issues/11967)).
Remco Smits created
2177ee8
Highlight files ending in `mdwn` as Markdown (#12224)
Highlight files ending in `mdwn` as Markdown. (Ikiwiki uses `mdwn` as the file extension for Markdown.) This pull request was inspired by this one: - #1209/ Release Notes: - Added ".mdwn" as a Markdown file extension.
Philip Durbin created
3ec9469
Make reconnects smoother for dev servers (#12223)
Release Notes: - N/A Co-authored-by: Nathan <nathan@zed.dev>
Conrad Irwin and Nathan created
656edc4
Vim smorgasbord (#12222)
Release Notes: - vim: Added `]d/[d` for go to prev/next diagnostic - vim: Added `]c/[c` to go to prev/next git change (`:diff` and `:revert` show the diff and revert it) - vim: Added `g cmd-d` for go to implementation
Conrad Irwin created
ec4703a
Add missing access control check (#12213)
Release Notes: - N/A
Conrad Irwin created
3b14115
X11: Implement missing XKB Compose (#12150)
Release Notes: - N/A We have implemented XKB Compose for Wayland, but we forgot to implement it for X11. Fixed #12089
Fernando Tagawa created
57d570c
Introduce custom fold placeholders (#12214)
This pull request replaces the static `⋯` character we used to insert when folding a range with a custom render function that return an `AnyElement`. We plan to use this in the assistant, but for now this should be behavior-preserving. Release Notes: - N/A --------- Co-authored-by: Nathan <nathan@zed.dev> Co-authored-by: Conrad <conrad@zed.dev>
Antonio Scandurra , Nathan , and Conrad created
e0cfba4
gleam: Detect tests using `describe` API for Startest (#12221)
This PR updates the Gleam runnables to detect tests using the `describe` API in Startest. This isn't entirely functional yet, as it is still just uses the test function name to run the tests (which Startest doesn't yet support). Release Notes: - N/A
Marshall Bowers created
e15b902
Fix double lease panic in Quote Selection command (#12217)
Release Notes: - Fixed a panic that occurred when using the `assistant: quote selection` command while signed out.
Max Brunsfeld created
9c35187
Fix line with invisibles positioning (#12211)
Release Notes: - fixed positioning of whitespace dots on multibyte text ([#10332](https://github.com/zed-industries/zed/issues/10332)).
Conrad Irwin created
951fbc5
Fix `rustfmt` issues in `dev_servers.rs` (#12205)
This PR fixes some issues preventing `rustfmt` from running properly in `dev_servers.rs`. The culprit was some long strings being inlined. Release Notes: - N/A
Marshall Bowers created
e903742
indent guides: Cache active indent range (#12204)
Caching the active indent range allows us to not re-compute the indent range when it is not necessary Release Notes: - N/A
Bennet Bo Fenner created
58a3ba0
indent guides: Toggle action (#12203)
Added a new action `editor: Toggle indent guides`, to show/hide indent guides Release Notes: - N/A
Bennet Bo Fenner created
feea607
Indent guides (#11503)
Builds on top of existing work from #2249, but here's a showcase: https://github.com/zed-industries/zed/assets/53836821/4b346965-6654-496c-b379-75425d9b493f TODO: - [x] handle line wrapping - [x] implement handling in multibuffer (crashes currently) - [x] add configuration option - [x] new theme properties? What colors to use? - [x] Possibly support indents with different colors or background colors - [x] investigate edge cases (e.g. indent guides and folds continue on empty lines even if the next indent is different) - [x] add more tests (also test `find_active_indent_index`) - [x] docs (will do in a follow up PR) - [x] benchmark performance impact Release Notes: - Added indent guides ([#5373](https://github.com/zed-industries/zed/issues/5373)) --------- Co-authored-by: Nate Butler <1714999+iamnbutler@users.noreply.github.com> Co-authored-by: Remco <djsmits12@gmail.com>
Bennet Bo Fenner , Nate Butler , and Remco created
3eb0418
Make a macro for less boilerplate when moving variables (#12182)
Also: - Simplify open listener implementation - Add set_global API to global traits Release Notes: - N/A
Mikayla Maki created
8b57d6d
remote config fixes (#12178)
Release Notes: - N/A
Conrad Irwin created
af8641c
reconnect ssh (#12147)
Release Notes: - N/A --------- Co-authored-by: Bennet <bennet@zed.dev>
Conrad Irwin and Bennet created
ea166f0
Add a send button to the assistant (#12171)
 Include the keybinding to help people discover how to submit from the keyboard. I'm also shifting from the word "Conversation" to "Context". Release Notes: - Added a send button to the assistant panel.
Nathan Sobo created
457fbd7
zig: Pin ZLS to v0.11.0 (#12173)
This PR updates the Zig extension to pin ZLS to v0.11.0, as the more recent releases of ZLS don't have `.tar.gz` assets available. Note that this depends on the next version of the `zed_extension_api`, which has yet to be released. Release Notes: - N/A
Marshall Bowers created
054c36c
zed_extension_api: Add `github_release_by_tag_name` (#12172)
This PR adds a new `github_release_by_tag_name` method to the `zed_extension_api` to allow for retrieving a GitHub release by its tag name. Release Notes: - N/A
Marshall Bowers created
85ff80f
Restrict v0.0.7 of the `zed_extension_api` to dev builds, for now (#12170)
This PR restricts usage of v0.0.7 of the `zed_extension_api` to dev builds, for now. As we're still making changes to it, we don't want to ship a version of Zed to Preview/Stable that claims to support a yet-unreleased version of the extension API. Release Notes: - N/A
Marshall Bowers created
80bd40c
zed_extension_api: Fork new version (#12160)
This PR forks a new version of the `zed_extension_api` in preparation for some upcoming changes that require breaking changes to the WIT. Release Notes: - N/A --------- Co-authored-by: Max <max@zed.dev>
Marshall Bowers and Max created
2564d5d
docs: Remove references to `language_overrides` (#12169)
This PR replaces references to `language_overrides` in the docs with just `languages`. `language_overrides` is an alias for `languages`, and we want to move towards just using `languages`. Release Notes: - N/A
Marshall Bowers created
770a702
Write a randomized test and fix bugs in the logic for omitting slash commands from completion requests (#12164)
Release Notes: - N/A
Max Brunsfeld created
0a848f2
Prompt library updates (#11988)
Restructure prompts & the prompt library. - Prompts are now written in markdown - The prompt manager has a picker and editable prompts - Saving isn't wired up yet - This also removes the "Insert active prompt" button as this concept doesn't exist anymore, and will be replaced with slash commands. I didn't staff flag this, but if you do play around with it expect it to still be pretty rough. Release Notes: - N/A --------- Co-authored-by: Nathan Sobo <1789+nathansobo@users.noreply.github.com> Co-authored-by: Antonio Scandurra <me@as-cii.com>
Nate Butler , Nathan Sobo , and Antonio Scandurra created
a73a3ef
Add slash commands for adding context into the assistant (#12102)
Tasks * [x] remove old flaps and output when editing a slash command * [x] the completing a command name that takes args, insert a space to prepare for typing an arg * [x] always trigger completions when typing in a slash command * [x] don't show line numbers * [x] implement `prompt` command * [x] `current-file` command * [x] state gets corrupted on `duplicate line up` on a slash command * [x] exclude slash command source from completion request Next steps: * show output token count in flap trailer * add `/project` command that matches project ambient context * delete ambient context Release Notes: - N/A --------- Co-authored-by: Marshall <marshall@zed.dev> Co-authored-by: Antonio Scandurra <me@as-cii.com>
Max Brunsfeld , Marshall , and Antonio Scandurra created
d6e59bf
Fix proxy setting documentation (#12151)
Release Notes: - N/A
Joseph T. Lyons created
c2f650f
Fix some edge-cases in vim visual delete (#12131)
Release Notes: - vim: Fixed `shift-d` in visual and visual block mode.
Conrad Irwin created
c084b6a
remoting fixes (#12137)
Release Notes: - N/A
Conrad Irwin created
8af9fa6
php: Bump to v0.0.4 (#12140)
This PR bumps the PHP extension to v0.0.4. Changes: - https://github.com/zed-industries/zed/pull/11514 Release Notes: - N/A
Remco Smits created
58796a8
tasks: Expose captured variables to ContextProvider (#12134)
This PR changes the interface of ContextProvider, allowing it to inspect *all* variables set so far during the process of building `TaskVariables`. This makes it possible to capture e.g. an identifier in tree-sitter query, process it and then export it as a task variable. Notably, the list of variables includes captures prefixed with leading underscore; they are removed after all calls to `build_context`, but it makes it possible to capture something and then conditionally preserve it (and perhaps modify it). Release Notes: - N/A
Piotr Osiewicz created
ba94496
v0.138.x dev
Joseph T. Lyons created
aa539fc
lsp: Fix wrong WorkspaceFolder when opening only file (#12129)
This fixes #11361 and #8764 by making sure we pass a directory as `WorkspaceFolder` to the language server. We already compute the `working_dir` correctly when `self.root_path.is_file()`, but we didn't use it. Release Notes: - Fixed language servers (such as `gopls`) not starting up correctly when opening a single file in Zed. ([#11361](https://github.com/zed-industries/zed/issues/11361) and [#8764](https://github.com/zed-industries/zed/issues/8764)).
Thorsten Ball created