zed/crates
Nathan Sobo da8d1306af
Open workflow step editors as preview tabs (#15928)
This PR opens workflow step editors as preview tabs and closes them upon
exiting the step if they are still in preview mode and they weren't
already open before entering the step.

Making this work was tricky, because we often edit the buffer as part of
displaying the workflow step suggestions to create empty lines where we
can generate. We undo these edits if the transformation is not applied,
but they were causing the preview to be dismissed.

After trying a few approaches, I decided to give workspace `Item`s a
`preserve_preview` method that defaults to false. When the workspace
sees an edit event for the item, it checks if the item wants to preserve
its preview. For buffers, after editing, you can call `refresh_preview`,
which sets a preview version to the current version of the buffer. Any
edits after this version will cause preview to not be preserved.

One final issue is with async auto-indent. To ensure these async edits
don't dismiss the preview, I automatically refresh the preview version
if preview was preserved prior to performing the auto-indent. The
assumption is that these are edits created by other edits, and if we
didn't want to dismiss the preview with the originating edits, then the
auto-indent edits shouldn't dismiss it either.

Release Notes:

- N/A

---------

Co-authored-by: Jason <jason@zed.dev>
2024-08-07 19:33:58 -06:00
..
activity_indicator Start on adding support for editing via the assistant panel (#14795) 2024-07-19 11:13:15 +02:00
anthropic Authorize access to language model providers based on country (#15859) 2024-08-06 11:49:04 -04:00
assets Allow prompt templates to be overridden in the zed configuration directory (#15887) 2024-08-06 19:30:48 -06:00
assistant Open workflow step editors as preview tabs (#15928) 2024-08-07 19:33:58 -06:00
assistant_slash_command assistant: Normalize line endings for prompts loaded from the prompt library (#15708) 2024-08-02 18:13:17 -04:00
audio Make tests less noisy (#12463) 2024-05-29 18:06:45 -07:00
auto_update Add is_staff and destination to download events (#15445) 2024-07-29 14:21:29 -04:00
breadcrumbs breadcrumbs: Use early return in set_active_pane_item (#14691) 2024-07-17 18:58:44 -04:00
call chore: Fix clippy violations from Cargo.toml (#15216) 2024-07-25 20:22:01 +02:00
channel Update http crate name (#15041) 2024-07-23 15:01:05 -07:00
cli Change PathLikeWithPosition<P> into a non-generic type and replace ad-hoc Windows path parsing (#15373) 2024-07-30 16:39:33 +03:00
client Show current plan in user menu (#15513) 2024-07-30 17:38:16 -04:00
clock Lay the groundwork for collaborating on assistant panel (#13991) 2024-07-10 17:36:22 +02:00
collab collab: Update how mode is displayed in root endpoint (#15911) 2024-08-07 12:09:43 -04:00
collab_ui Feature/fallback fonts (#15306) 2024-07-26 16:42:21 -07:00
collections gpui: Add SVG rendering to img element and generic asset cache (#9931) 2024-03-29 17:09:49 -07:00
command_palette Add command aliases (#14826) 2024-07-19 12:48:48 -06:00
command_palette_hooks Introduce InlineCompletionProvider (#9777) 2024-03-26 13:28:06 +01:00
copilot copilot: Colocate copilot_chat_config_path with the rest of the Copilot code (#15703) 2024-08-02 15:46:06 -04:00
db paths: Replace lazy_static! with OnceLock (#13213) 2024-06-18 12:22:37 -04:00
dev_server_projects remoting: Allow Add/Remove remote folder (#14532) 2024-07-16 12:01:59 -06:00
diagnostics Clean up inline assist editor rendering (#15536) 2024-07-31 17:43:08 +02:00
editor Open workflow step editors as preview tabs (#15928) 2024-08-07 19:33:58 -06:00
extension extension: Make worktree argument to run_slash_command optional (#15658) 2024-08-01 17:34:44 -04:00
extension_api extension: Make worktree argument to run_slash_command optional (#15658) 2024-08-01 17:34:44 -04:00
extension_cli Provide user agent when performing HTTP requests (#15470) 2024-07-30 11:12:37 +02:00
extensions_ui Feature/fallback fonts (#15306) 2024-07-26 16:42:21 -07:00
feature_flags Clean up inline assist editor rendering (#15536) 2024-07-31 17:43:08 +02:00
feedback Update http crate name (#15041) 2024-07-23 15:01:05 -07:00
file_finder Change PathLikeWithPosition<P> into a non-generic type and replace ad-hoc Windows path parsing (#15373) 2024-07-30 16:39:33 +03:00
file_icons chore: Clean up allocs around project panel (#15422) 2024-07-29 14:21:41 +02:00
fs zed: Mark restored buffers as conflicted if file changed on disk between store & restore (#15207) 2024-07-25 18:04:47 +02:00
fsevent Retain run loop (#11241) 2024-04-30 23:31:59 -06:00
fuzzy chore: Bump Rust version to 1.80 (#15186) 2024-07-25 22:48:42 +02:00
git Update http crate name (#15041) 2024-07-23 15:01:05 -07:00
git_hosting_providers Update http crate name (#15041) 2024-07-23 15:01:05 -07:00
go_to_line Handle buffer diff base updates and file renames properly for SSH projects (#14989) 2024-07-23 11:32:37 -07:00
google_ai Authorize access to language model providers based on country (#15859) 2024-08-06 11:49:04 -04:00
gpui Adjust erf estimation function (#15423) 2024-08-07 14:12:26 +02:00
gpui_macros Use US English spelling of "behavior" and "customize" (#15117) 2024-07-24 16:36:01 -04:00
headless remoting: Allow Add/Remove remote folder (#14532) 2024-07-16 12:01:59 -06:00
html_to_markdown Publish html_to_markdown (#13718) 2024-07-01 17:18:58 -04:00
http_client Introduce a separate backend service for LLM calls (#15831) 2024-08-05 20:26:21 -04:00
image_viewer Add text_color helper for tab contents (#14737) 2024-07-18 09:27:05 -04:00
indexed_docs Update http crate name (#15041) 2024-07-23 15:01:05 -07:00
inline_completion_button inline_completion_button: Do some cleanup (#15849) 2024-08-06 08:55:27 -04:00
install_cli Fix flickering (#9012) 2024-03-11 10:45:57 +01:00
journal Add the ability for extensions to provide language settings (#10296) 2024-04-08 19:17:12 -04:00
language Open workflow step editors as preview tabs (#15928) 2024-08-07 19:33:58 -06:00
language_model assistant: Use tools in other providers (#15803) 2024-08-06 15:45:47 +02:00
language_selector Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
language_tools Add GitHub Copilot Chat Support (#14842) 2024-07-30 09:32:58 +02:00
languages assistant: Add annotations to more languages (#15866) 2024-08-07 13:47:21 +02:00
live_kit_client chore: Fix clippy violations from Cargo.toml (#15216) 2024-07-25 20:22:01 +02:00
live_kit_server live_kit_server: Re-remove protocol submodule (#15317) 2024-07-26 21:10:56 -04:00
lsp chore: Bump Rust version to 1.80 (#15186) 2024-07-25 22:48:42 +02:00
markdown Selectable diagnostic popover text (#14518) 2024-07-28 23:13:13 -06:00
markdown_preview Add Markdown Preview Toggle (#15215) 2024-07-26 11:08:42 -04:00
media linux: Better GPU debugging (#14706) 2024-07-23 09:56:45 -06:00
menu open picker (#14524) 2024-07-15 17:04:15 -06:00
multi_buffer Open workflow step editors as preview tabs (#15928) 2024-08-07 19:33:58 -06:00
node_runtime windows: Fix eslint installation (#15331) 2024-07-27 10:24:05 -04:00
notifications Remove never-used client parameter from message handler functions (#13406) 2024-06-22 16:07:36 -07:00
ollama assistant: Use tools in other providers (#15803) 2024-08-06 15:45:47 +02:00
open_ai Authorize access to language model providers based on country (#15859) 2024-08-06 11:49:04 -04:00
outline Handle buffer diff base updates and file renames properly for SSH projects (#14989) 2024-07-23 11:32:37 -07:00
outline_panel Use US English spelling of "behavior" and "customize" (#15117) 2024-07-24 16:36:01 -04:00
paths Allow prompt templates to be overridden in the zed configuration directory (#15887) 2024-08-06 19:30:48 -06:00
picker vim remap 2 (#15193) 2024-07-25 09:00:53 -06:00
prettier Lookup prettier more leniently (#14403) 2024-07-13 21:59:14 +03:00
project lsp: Support Goto Declaration (#15785) 2024-08-06 11:20:51 +02:00
project_panel Fix symlink icon in the project panel (#15537) 2024-07-31 18:58:07 -03:00
project_symbols Start on adding support for editing via the assistant panel (#14795) 2024-07-19 11:13:15 +02:00
proto lsp: Support Goto Declaration (#15785) 2024-08-06 11:20:51 +02:00
quick_action_bar repl: Add ctrl-alt-enter binding to run in place (#15743) 2024-08-03 10:27:05 -07:00
recent_projects linux: Save opened workspace when closing last window (#15754) 2024-08-05 09:54:02 +02:00
refineable Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
release_channel auto-updates: Do not poll for updates on dev channel (#13311) 2024-06-20 15:00:54 +02:00
remote SSH remoting: terminal & tasks (#15321) 2024-07-28 22:45:00 -06:00
remote_server Run clippy for Windows (#15318) 2024-07-26 21:38:34 -04:00
repl repl: Improve kernelspec discoverability (#15886) 2024-08-06 16:58:56 -07:00
rich_text chore: Bump Rust version to 1.80 (#15186) 2024-07-25 22:48:42 +02:00
rope Skip over folded regions when iterating over multibuffer chunks (#15646) 2024-08-02 19:51:26 +02:00
rpc collab: Add support for more providers to the LLM service (#15832) 2024-08-05 21:16:18 -04:00
search Add tooltip for toggling filters (#15879) 2024-08-06 15:51:53 -04:00
semantic_index Allow customization of the model used for tool calling (#15479) 2024-07-30 16:18:53 +02:00
semantic_version Extract SemanticVersion into its own crate (#9956) 2024-03-29 12:11:57 -04:00
session zed: Persist window stack order across restarts (#15419) 2024-07-29 17:05:56 +02:00
settings settings: Show error notification when settings are invalid (#15905) 2024-08-07 15:54:44 +02:00
settings_ui ui: Apply elevation outside SettingsContainer (#15346) 2024-07-27 14:00:03 -04:00
snippet Correct escaping in snippets (#14912) 2024-07-22 00:57:34 +02:00
snippet_provider extensions: Add support for snippets provided by extensions (#14020) 2024-07-10 09:40:50 +02:00
sqlez Remove extraneous Cargo.lock files (#14001) 2024-07-09 12:15:34 -04:00
sqlez_macros Dynamicer builds (#13074) 2024-06-21 16:32:32 -07:00
story Introduce a new markdown crate (#11556) 2024-05-09 11:03:33 +02:00
storybook ui: Remove old settings components (#15347) 2024-07-27 14:12:32 -04:00
sum_tree Restore "Avoid buffering line content to compute indent guides" (#15284) 2024-07-28 10:52:39 +02:00
supermaven Update http crate name (#15041) 2024-07-23 15:01:05 -07:00
supermaven_api Update http crate name (#15041) 2024-07-23 15:01:05 -07:00
tab_switcher Send pane removeItem event before removing the item (#15541) 2024-07-31 08:48:19 -07:00
task SSH remoting: terminal & tasks (#15321) 2024-07-28 22:45:00 -06:00
tasks_ui tasks: Use environment variables from project (#15266) 2024-07-26 18:19:53 +02:00
telemetry_events Add repl events (#15259) 2024-07-26 03:31:41 -04:00
terminal repl: Create better terminal output for REPL stdio (#15715) 2024-08-03 05:48:16 -07:00
terminal_view assistant: Tweak tab bar layout (#15901) 2024-08-07 13:46:59 +02:00
text Restructure workflow step resolution and fix inserting newlines (#15720) 2024-08-05 09:18:06 +02:00
theme theme: Use a non-transparent color for the fallback title_bar.inactive_background (#15709) 2024-08-02 18:44:22 -04:00
theme_importer Hoist strum to workspace level (#15243) 2024-07-25 21:30:48 -04:00
theme_selector settings_ui: Add theme settings controls (#15115) 2024-07-24 16:25:52 -04:00
time_format Inline git blame (#10398) 2024-04-15 14:21:52 +02:00
title_bar Show current plan in user menu (#15513) 2024-07-30 17:38:16 -04:00
ui assistant: Tweak tab bar layout (#15901) 2024-08-07 13:46:59 +02:00
ui_input Rename ui_text_field crate to ui_input (#13949) 2024-07-08 17:05:30 -04:00
util Change PathLikeWithPosition<P> into a non-generic type and replace ad-hoc Windows path parsing (#15373) 2024-07-30 16:39:33 +03:00
vcs_menu Adjust list item & pickers spacing (#14250) 2024-07-15 10:23:18 -03:00
vim vim: Fix >... (#15404) 2024-07-29 09:22:25 -06:00
welcome assistant: Overhaul provider infrastructure (#14929) 2024-07-23 19:48:41 +02:00
workspace Open workflow step editors as preview tabs (#15928) 2024-08-07 19:33:58 -06:00
worktree assistant: Report all worktree entries in /file completions (#15617) 2024-08-01 16:09:53 +02:00
zed v0.149.x dev 2024-08-07 10:59:51 -04:00
zed_actions Show current plan in user menu (#15513) 2024-07-30 17:38:16 -04:00