ZIm/crates
Max Brunsfeld 84affa96ff
Allow the assistant to suggest edits to files in the project (#11993)
### Todo

* [x] tuck the new system prompt away somehow
* for now, we're treating it as built-in, and not editable. once we have
a way to fold away default prompts, let's make it a default prompt.
* [x] when applying edits, re-parse the edit from the latest content of
the assistant buffer (to allow for manual editing of edits)
* [x] automatically adjust the indentation of edits suggested by the
assistant
* [x] fix edit row highlights persisting even when assistant messages
with edits are deleted
* ~adjust the fuzzy search to allow for small errors in the old text,
using some string similarity routine~

We decided to defer the fuzzy searching thing to a separate PR, since
it's a little bit involved, and the current functionality works well
enough to be worth landing. A couple of notes on the fuzzy searching:
* sometimes the assistant accidentally omits line breaks from the text
that it wants to replace
* when the old text has hallucinations, the new text often contains the
same hallucinations. so we'll probably need to use a more fine-grained
editing strategy where we perform a character-wise diff of the old and
new text as reported by the assistant, and then adjust that diff so that
it can be applied to the actual buffer text

Release Notes:

- Added the ability to request edits to project files using the
assistant panel.

---------

Co-authored-by: Antonio Scandurra <me@as-cii.com>
Co-authored-by: Marshall <marshall@zed.dev>
Co-authored-by: Antonio <antonio@zed.dev>
Co-authored-by: Nathan <nathan@zed.dev>
2024-05-17 15:38:14 -07:00
..
activity_indicator linux: Store binary path before restart to handle deleted binary file (#11568) 2024-05-08 19:13:28 +02:00
anthropic Sanitize messages before sending them to Anthropic (#11810) 2024-05-14 17:47:33 +02:00
assets New revision of the Assistant Panel (#10870) 2024-04-23 16:23:26 -07:00
assistant Allow the assistant to suggest edits to files in the project (#11993) 2024-05-17 15:38:14 -07:00
assistant2 Use UpdateGlobal accessors in more places (#11925) 2024-05-16 13:30:04 -04:00
assistant_tooling Bring the Tool Calling README up to date (#11683) 2024-05-12 04:47:19 -07:00
audio Introduce InlineCompletionProvider (#9777) 2024-03-26 13:28:06 +01:00
auto_update Extract http from util (#11680) 2024-05-10 15:50:20 -06:00
breadcrumbs Break typography styles out of StyledExt (#11013) 2024-04-25 17:42:53 -04:00
call Extract http from util (#11680) 2024-05-10 15:50:20 -06:00
channel Support very large channel membership lists (#11939) 2024-05-16 20:02:25 -06:00
cli cli: Support --foreground for debugging (#11819) 2024-05-14 16:05:40 -06:00
client Support very large channel membership lists (#11939) 2024-05-16 20:02:25 -06:00
clock Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
collab Support terminals with ssh in remote projects (#11913) 2024-05-17 17:48:07 +03:00
collab_ui chore: Fix refining_impl_trait lint occurences (#11979) 2024-05-17 16:58:22 +02:00
collections gpui: Add SVG rendering to img element and generic asset cache (#9931) 2024-03-29 17:09:49 -07:00
color Fix hex_to_hsla inside the color crate (#9412) 2024-03-15 16:58:46 -04:00
command_palette Use UpdateGlobal accessors in more places (#11925) 2024-05-16 13:30:04 -04:00
command_palette_hooks Introduce InlineCompletionProvider (#9777) 2024-03-26 13:28:06 +01:00
copilot Reduce spamming of inline completion discard events (#11999) 2024-05-17 16:37:17 -04:00
db Clean up whitespace (#10755) 2024-04-23 13:31:21 -04:00
dev_server_projects Support terminals with ssh in remote projects (#11913) 2024-05-17 17:48:07 +03:00
diagnostics chore: Fix refining_impl_trait lint occurences (#11979) 2024-05-17 16:58:22 +02:00
editor Allow the assistant to suggest edits to files in the project (#11993) 2024-05-17 15:38:14 -07:00
extension Add basic proxy settings (#11852) 2024-05-16 19:43:26 +03:00
extension_api Clarify CodeLabel.filter_range doc (#11383) 2024-05-17 12:09:35 -04:00
extension_cli Add git blame (#8889) 2024-03-28 18:32:11 +01:00
extensions_ui Extract Ruby extension (#11360) 2024-05-10 11:53:11 -04:00
feature_flags WIP: remoting (#10085) 2024-04-11 15:36:35 -06:00
feedback Extract http from util (#11680) 2024-05-10 15:50:20 -06:00
file_finder Remove 'Destructive' prompts (#11631) 2024-05-09 18:52:09 -06:00
file_icons gpui: Fix Global trait (#11187) 2024-04-29 16:37:37 -04:00
fs linux: Handle modification events from file watcher (#11778) 2024-05-14 11:00:26 -07:00
fsevent Retain run loop (#11241) 2024-04-30 23:31:59 -06:00
fuzzy Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
git Extract http from util (#11680) 2024-05-10 15:50:20 -06:00
git_hosting_providers Extract http from util (#11680) 2024-05-10 15:50:20 -06:00
go_to_line Make autoscroll optional when highlighting editor rows (#11950) 2024-05-16 20:28:17 -07:00
google_ai Extract http from util (#11680) 2024-05-10 15:50:20 -06:00
gpui Fix hang when opening URL in first browser window (#11961) 2024-05-17 11:00:57 -07:00
gpui_macros Adjust names of negated style methods (#11453) 2024-05-06 13:56:25 -04:00
headless Allow opening a single remote file (#11983) 2024-05-17 10:57:04 -06:00
http Fix npm install command with a URI://localhost:port proxy setting (#11955) 2024-05-17 11:30:52 +03:00
image_viewer Add xtask for finding crates with missing licenses (#11776) 2024-05-13 18:52:12 -04:00
inline_completion_button Supermaven (#10788) 2024-05-03 12:50:42 -07: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 Speed up is_dirty and has_conflict (#11946) 2024-05-16 18:36:20 -07:00
language_selector Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
language_tools Add telemetry for supermaven (#11821) 2024-05-16 17:18:32 -04:00
languages Use UpdateGlobal accessors in more places (#11925) 2024-05-16 13:30:04 -04:00
live_kit_client Hoist nanoid to workspace-level (#11029) 2024-04-25 22:37:40 -04:00
live_kit_server Vendor LiveKit protocol (#11672) 2024-05-10 14:18:40 -04:00
lsp lsp: More information in error if server fails to start (#11343) 2024-05-03 13:23:52 +02:00
markdown Add xtask for finding crates with missing licenses (#11776) 2024-05-13 18:52:12 -04:00
markdown_preview markdown preview: Break up list items into individual blocks (#10852) 2024-04-26 21:34:45 +02:00
media Revert "Revert "Revert dependency updates in #9836 (#10089)"" 2024-04-02 13:12:38 -06:00
menu Fix the linux keymap (#9829) 2024-03-26 16:10:09 -07:00
multi_buffer Introduce DisplayRow, MultiBufferRow newtypes and BufferRow type alias (#11656) 2024-05-11 00:06:51 +03:00
node_runtime Add basic proxy settings (#11852) 2024-05-16 19:43:26 +03:00
notifications Fix mention notifications are not updated after message change and not removed after a message is deleted (#9847) 2024-04-02 20:40:00 -06:00
open_ai Add GPT-4o as possible model (#11764) 2024-05-14 10:43:24 +02:00
outline Make autoscroll optional when highlighting editor rows (#11950) 2024-05-16 20:28:17 -07:00
picker new path picker (#11015) 2024-04-26 13:25:25 -06:00
prettier Change default Prettier's useTabs settings based on Zed settings (#11958) 2024-05-17 11:05:46 +03:00
project Support terminals with ssh in remote projects (#11913) 2024-05-17 17:48:07 +03:00
project_panel chore: Fix refining_impl_trait lint occurences (#11979) 2024-05-17 16:58:22 +02:00
project_symbols Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
quick_action_bar Do not show tooltip for editor controls if clicked (#10679) 2024-04-17 13:20:47 +02:00
recent_projects Support terminals with ssh in remote projects (#11913) 2024-05-17 17:48:07 +03:00
refineable Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
release_channel linux cli (#11585) 2024-05-09 21:08:49 -06:00
rich_text New revision of the Assistant Panel (#10870) 2024-04-23 16:23:26 -07:00
rope Allow the assistant to suggest edits to files in the project (#11993) 2024-05-17 15:38:14 -07:00
rpc Support terminals with ssh in remote projects (#11913) 2024-05-17 17:48:07 +03:00
search Use UpdateGlobal accessors in more places (#11925) 2024-05-16 13:30:04 -04:00
semantic_index Add basic proxy settings (#11852) 2024-05-16 19:43:26 +03:00
semantic_version Extract SemanticVersion into its own crate (#9956) 2024-03-29 12:11:57 -04:00
settings Use UpdateGlobal accessors in more places (#11925) 2024-05-16 13:30:04 -04:00
snippet Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
sqlez Rename RemoteProject -> DevServerProject (#11301) 2024-05-02 11:00:08 -06:00
sqlez_macros Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
story Introduce a new markdown crate (#11556) 2024-05-09 11:03:33 +02:00
storybook Remove wiring for assistant2 (#11940) 2024-05-16 18:32:53 -04:00
sum_tree Update docstring for SumTree (#10927) 2024-04-24 14:01:10 +02:00
supermaven Reduce spamming of inline completion discard events (#11999) 2024-05-17 16:37:17 -04:00
supermaven_api Add xtask for finding crates with missing licenses (#11776) 2024-05-13 18:52:12 -04:00
tab_switcher Introduce recent files ambient context for assistant (#11791) 2024-05-14 13:48:36 +02:00
task tasks: Refresh available tasks in editor when tasks.json changes (#11811) 2024-05-14 21:26:35 +02:00
tasks_ui tasks: Wire through click handlers in new tasks modal (#11854) 2024-05-15 14:38:19 +02:00
telemetry_events Add telemetry for supermaven (#11821) 2024-05-16 17:18:32 -04:00
terminal Make primary clipboard Linux only (#11843) 2024-05-15 10:44:47 -07:00
terminal_view Support terminals with ssh in remote projects (#11913) 2024-05-17 17:48:07 +03:00
text Speed up is_dirty and has_conflict (#11946) 2024-05-16 18:36:20 -07:00
theme theme: Remove default syntax colors (#11980) 2024-05-17 10:54:51 -04:00
theme_importer Rust 1.78 (#11314) 2024-05-05 15:02:50 +02:00
theme_selector Use UpdateGlobal accessors in more places (#11925) 2024-05-16 13:30:04 -04:00
time_format Inline git blame (#10398) 2024-04-15 14:21:52 +02:00
ui Revert "Fix aside affecting parent popover height (#11859)" (#11942) 2024-05-16 18:53:08 -04:00
ui_text_field Make border methods always require an explicit width (#11450) 2024-05-06 13:22:47 -04:00
util Add prompt library (#11910) 2024-05-16 16:55:54 -04:00
vcs_menu vcs menu: Use project's repositories, do not open directly (#11652) 2024-05-10 11:06:32 +02:00
vim Reduce spamming of inline completion discard events (#11999) 2024-05-17 16:37:17 -04:00
welcome Supermaven (#10788) 2024-05-03 12:50:42 -07:00
workspace Implement 'Cmd+W with no open tabs closes the window', with a setting (#11989) 2024-05-17 12:31:12 -07:00
worktree git: Support git repos with .git folder above project root (#11550) 2024-05-14 18:34:51 +02:00
zed Report an error when trying to open ui in linux::headless (#11952) 2024-05-17 09:50:23 -06:00
zed_actions Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00