ZIm/crates
Julia Ryan f11c749353
VSCode Settings import (#29018)
Things this doesn't currently handle:

- [x] ~testing~
- ~we really need an snapshot test that takes a vscode settings file
with all options that we support, and verifies the zed settings file you
get from importing it, both from an empty starting file or one with lots
of conflicts. that way we can open said vscode settings file in vscode
to ensure that those options all still exist in the future.~
- Discussed this, we don't think this will meaningfully protect us from
future failures, and we will just do this as a manual validation step
before merging this PR. Any imports that have meaningfully complex
translation steps should still be tested.
- [x] confirmation (right now it just clobbers your settings file
silently)
- it'd be really cool if we could show a diff multibuffer of your
current settings with the result of the vscode import and let you pick
"hunks" to keep, but that's probably too much effort for this feature,
especially given that we expect most of the people using it to have an
empty/barebones zed config when they run the import.
- [x] ~UI in the "welcome" page~
- we're planning on redoing our welcome/walkthrough experience anyways,
but in the meantime it'd be nice to conditionally show a button there if
we see a user level vscode config
- we'll add it to the UI when we land the new walkthrough experience,
for now it'll be accessible through the action
- [ ] project-specific settings
- handling translation of `.vscode/settings.json` or `.code-workspace`
settings to `.zed/settings.json` will come in a future PR, along with UI
to prompt the user for those actions when opening a project with local
vscode settings for the first time
- [ ] extension settings
- we probably want to do a best-effort pass of popular extensions like
vim and git lens
- it's also possible to look for installed/enabled extensions with `code
--list-extensions`, but we'd have to maintain some sort of mapping of
those to our settings and/or extensions
- [ ] LSP settings
- these are tricky without access to the json schemas for various
language server extensions. we could probably manage to do translations
for a couple popular languages and avoid solving it in the general case.
- [ ] platform specific settings (`[macos].blah`)
  - this is blocked on #16392 which I'm hoping to address soon
- [ ] language specific settings (`[rust].foo`)
  - totally doable, just haven't gotten to it yet
 
~We may want to put this behind some kind of flag and/or not land it
until some of the above issues are addressed, given that we expect
people to only run this importer once there's an incentive to get it
right the first time. Maybe we land it alongside a keymap importer so
you don't have to go through separate imports for those?~

We are gonna land this as-is, all these unchecked items at the bottom
will be addressed in followup PRs, so maybe don't run the importer for
now if you have a large and complex VsCode settings file you'd like to
import.

Release Notes:

- Added a VSCode settings importer, available via a
`zed::ImportVsCodeSettings` action

---------

Co-authored-by: Mikayla Maki <mikayla@zed.dev>
Co-authored-by: Kirill Bulatov <kirill@zed.dev>
Co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com>
Co-authored-by: Marshall Bowers <git@maxdeviant.com>
2025-04-23 20:54:09 +00:00
..
activity_indicator Git activity indicator (#28204) 2025-04-07 18:10:01 +00:00
agent VSCode Settings import (#29018) 2025-04-23 20:54:09 +00:00
anthropic Default to fast model for thread summaries and titles + don't include system prompt / context / thinking segments (#29102) 2025-04-19 23:26:29 +00:00
askpass Remove netcat dependency (#28920) 2025-04-16 19:46:36 -04:00
assets Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
assistant VSCode Settings import (#29018) 2025-04-23 20:54:09 +00:00
assistant_context_editor agent: Support pasting images as context (#29177) 2025-04-22 09:01:01 +00:00
assistant_settings VSCode Settings import (#29018) 2025-04-23 20:54:09 +00:00
assistant_slash_command Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
assistant_slash_commands Add ability to attach rules as context (#29109) 2025-04-21 20:16:51 +00:00
assistant_tool agent: Render diffs for the edit file tool (#29234) 2025-04-23 15:43:33 -03:00
assistant_tools eval: New add_arg_to_trait_method example (#29297) 2025-04-23 18:46:39 +00:00
audio Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
auto_update VSCode Settings import (#29018) 2025-04-23 20:54:09 +00:00
auto_update_helper Update block diagnostics (#28006) 2025-04-15 09:35:13 -06:00
auto_update_ui Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
aws_http_client Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
bedrock Default to fast model for thread summaries and titles + don't include system prompt / context / thinking segments (#29102) 2025-04-19 23:26:29 +00:00
breadcrumbs breadcrumbs: Update multibuffer to match singleton (#28267) 2025-04-07 20:26:55 +00:00
buffer_diff Fix diff recalculation hang (#28377) 2025-04-10 22:58:41 +00:00
call VSCode Settings import (#29018) 2025-04-23 20:54:09 +00:00
channel Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
cli Try to weak-link ScreenCaptureKit always (#28585) 2025-04-11 17:38:14 +00:00
client VSCode Settings import (#29018) 2025-04-23 20:54:09 +00:00
clock Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
collab collab: Add head_commit_details column to project_repositories (#29284) 2025-04-23 15:35:49 +00:00
collab_ui VSCode Settings import (#29018) 2025-04-23 20:54:09 +00:00
collections Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
command_palette Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
command_palette_hooks Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
component Add example agent tool preview (#28984) 2025-04-17 17:29:19 +00:00
component_preview component preview: Focus search input immediately upon opening (#29155) 2025-04-21 11:28:49 -03:00
context_server agent: Render diffs for the edit file tool (#29234) 2025-04-23 15:43:33 -03:00
context_server_settings VSCode Settings import (#29018) 2025-04-23 20:54:09 +00:00
copilot Default to fast model for thread summaries and titles + don't include system prompt / context / thinking segments (#29102) 2025-04-19 23:26:29 +00:00
credentials_provider Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
dap VSCode Settings import (#29018) 2025-04-23 20:54:09 +00:00
dap_adapters debugger: More tidy up for SSH (#28993) 2025-04-21 16:00:03 +00:00
db debugger_ui: Move DEBUGGER_PANEL_PREFIX out of db (#28768) 2025-04-15 14:59:42 +00:00
debugger_tools debugger: Open debugger panel on session startup (#29186) 2025-04-22 19:35:47 -04:00
debugger_ui debugger: Fix stack frame list flickering (#29282) 2025-04-23 16:12:53 +00:00
deepseek Default to fast model for thread summaries and titles + don't include system prompt / context / thinking segments (#29102) 2025-04-19 23:26:29 +00:00
diagnostics Fix duplicated multi-buffer excerpts (#29193) 2025-04-22 05:25:09 +00:00
docs_preprocessor Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
editor VSCode Settings import (#29018) 2025-04-23 20:54:09 +00:00
eval eval: New add_arg_to_trait_method example (#29297) 2025-04-23 18:46:39 +00:00
extension extension: Use heck instead of convert_case for snake_case check (#28608) 2025-04-11 22:01:25 +00:00
extension_api zed_extension_api: Release v0.4.0 (#29237) 2025-04-22 21:07:52 +00:00
extension_cli Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
extension_host VSCode Settings import (#29018) 2025-04-23 20:54:09 +00:00
extensions_ui Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
feature_flags agent: Expose web search tool to beta users (#29273) 2025-04-23 15:30:20 +00:00
feedback feedback: Update issue template URL (#28790) 2025-04-15 21:36:30 -04:00
file_finder VSCode Settings import (#29018) 2025-04-23 20:54:09 +00:00
file_icons Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
fs Highlight merge conflicts and provide for resolving them (#28065) 2025-04-23 12:38:46 -04:00
fsevent Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
fuzzy Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
git Highlight merge conflicts and provide for resolving them (#28065) 2025-04-23 12:38:46 -04:00
git_hosting_providers VSCode Settings import (#29018) 2025-04-23 20:54:09 +00:00
git_ui VSCode Settings import (#29018) 2025-04-23 20:54:09 +00:00
go_to_line VSCode Settings import (#29018) 2025-04-23 20:54:09 +00:00
google_ai agent: Add support for google gemini 2.5 flash preview (#29205) 2025-04-22 09:37:12 +00:00
gpui agent: Render diffs for the edit file tool (#29234) 2025-04-23 15:43:33 -03:00
gpui_macros Rename regex search tool to grep and accept an include glob pattern (#29100) 2025-04-20 00:53:30 +00:00
gpui_tokio Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
html_to_markdown Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
http_client Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
http_client_tls Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
icons agent: Support pasting images as context (#29177) 2025-04-22 09:01:01 +00:00
image_viewer VSCode Settings import (#29018) 2025-04-23 20:54:09 +00:00
indexed_docs Add --user-data-dir CLI flag and propose renaming support_dir to data_dir (#26886) 2025-04-10 21:16:43 +00:00
inline_completion Show edit predictions usage in status bar menu (#29046) 2025-04-18 14:15:19 +00:00
inline_completion_button inline_completion_button: Show the usage limits returned from the API (#29239) 2025-04-22 21:16:54 +00:00
install_cli install_cli: Show feedback when installing CLI from welcome screen (#28532) 2025-04-11 01:47:40 +05:30
journal VSCode Settings import (#29018) 2025-04-23 20:54:09 +00:00
language VSCode Settings import (#29018) 2025-04-23 20:54:09 +00:00
language_extension Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
language_model agent: Expose web search tool to beta users (#29273) 2025-04-23 15:30:20 +00:00
language_model_selector inline assistant: Fix model picker (#29136) 2025-04-21 01:12:57 +00:00
language_models VSCode Settings import (#29018) 2025-04-23 20:54:09 +00:00
language_selector Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
language_tools gpui: Introduce PlatformKeyboardLayout trait for human-friendly keyboard layout names (#29049) 2025-04-19 22:23:03 +08:00
languages Add new action to run agent eval (#29158) 2025-04-21 21:30:21 -07:00
livekit_api Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
livekit_client Fix deafening new participants (#28330) 2025-04-08 16:01:27 +00:00
lmstudio Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
lsp Add support for insert_text_mode of a completion (#28171) 2025-04-07 10:35:11 -06:00
markdown Fix panic when copying smart quotes in MarkdownElement (#29285) 2025-04-23 15:17:27 +00:00
markdown_preview Use buffer size for markdown preview (#29172) 2025-04-21 19:29:21 -04:00
media chore: Make objc a workspace level crate (#28258) 2025-04-07 18:46:09 +00:00
menu Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
migrator agent: Migrate tool names in settings (#29168) 2025-04-21 17:03:42 +00:00
mistral Switch from open-codestral-mamba to codestral-latest for default mistral model (#29104) 2025-04-19 23:29:36 +00:00
multi_buffer Highlight merge conflicts and provide for resolving them (#28065) 2025-04-23 12:38:46 -04:00
node_runtime Add --user-data-dir CLI flag and propose renaming support_dir to data_dir (#26886) 2025-04-10 21:16:43 +00:00
notifications Merge Component and ComponentPreview trait (#28365) 2025-04-08 16:09:06 -06:00
ollama Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
open_ai Default to fast model for thread summaries and titles + don't include system prompt / context / thinking segments (#29102) 2025-04-19 23:26:29 +00:00
outline Highlight merge conflicts and provide for resolving them (#28065) 2025-04-23 12:38:46 -04:00
outline_panel VSCode Settings import (#29018) 2025-04-23 20:54:09 +00:00
panel Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
paths VSCode Settings import (#29018) 2025-04-23 20:54:09 +00:00
picker agent: Refine language model selector (#28597) 2025-04-11 23:02:50 +00:00
prettier Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
project VSCode Settings import (#29018) 2025-04-23 20:54:09 +00:00
project_panel VSCode Settings import (#29018) 2025-04-23 20:54:09 +00:00
project_symbols Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
prompt_library Add ability to attach rules as context (#29109) 2025-04-21 20:16:51 +00:00
prompt_store Add ability to attach rules as context (#29109) 2025-04-21 20:16:51 +00:00
proto debugger: More tidy up for SSH (#28993) 2025-04-21 16:00:03 +00:00
recent_projects VSCode Settings import (#29018) 2025-04-23 20:54:09 +00:00
refineable Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
release_channel Fix handling of --system-specs argument so it happens before Application::new (#29240) 2025-04-22 21:32:32 +00:00
remote Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
remote_server Fix handling of --system-specs argument so it happens before Application::new (#29240) 2025-04-22 21:32:32 +00:00
repl VSCode Settings import (#29018) 2025-04-23 20:54:09 +00:00
reqwest_client Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
rich_text Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
rope chore: Bump Rust version to 1.86 (#28021) 2025-04-03 23:32:50 +02:00
rpc rpc: Remove llm module in favor of zed_llm_client (#28900) 2025-04-16 20:22:44 +00:00
schema_generator Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
search Rename regex search tool to grep and accept an include glob pattern (#29100) 2025-04-20 00:53:30 +00:00
semantic_index agent: Attach thread ID and prompt ID to telemetry events (#29069) 2025-04-18 20:41:02 +00:00
semantic_version Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
session Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
settings VSCode Settings import (#29018) 2025-04-23 20:54:09 +00:00
settings_ui VSCode Settings import (#29018) 2025-04-23 20:54:09 +00:00
snippet Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
snippet_provider snippet_provider: Use proper casing of VsCode in identifiers (#29038) 2025-04-18 12:11:54 +00:00
snippets_ui Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
sqlez Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
sqlez_macros Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
story Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
storybook Merge Component and ComponentPreview trait (#28365) 2025-04-08 16:09:06 -06:00
streaming_diff Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
sum_tree Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
supermaven Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
supermaven_api Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
tab_switcher tab_switcher: Add keybind to close tab tooltip (#27212) 2025-04-08 15:57:36 -06:00
task agent: Render diffs for the edit file tool (#29234) 2025-04-23 15:43:33 -03:00
tasks_ui debugger: More tidy up for SSH (#28993) 2025-04-21 16:00:03 +00:00
telemetry Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
telemetry_events Add new action to run agent eval (#29158) 2025-04-21 21:30:21 -07:00
terminal VSCode Settings import (#29018) 2025-04-23 20:54:09 +00:00
terminal_view Fix relative paths not properly resolved in the terminal during cmd-click (#29289) 2025-04-23 19:36:58 +03:00
text format: Re-implement support for formatting with code actions that contain commands (#28392) 2025-04-09 01:53:54 +00:00
theme VSCode Settings import (#29018) 2025-04-23 20:54:09 +00:00
theme_extension Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
theme_importer theme_importer: Handle comma-separated token scopes (#27740) 2025-04-23 14:06:58 +00:00
theme_selector Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
time_format Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
title_bar project: Show detached head commit SHA in branch pickers (#29007) 2025-04-18 04:23:56 +05:30
toolchain_selector toolchain: Respect currently focused file when querying toolchains (#28875) 2025-04-16 19:05:57 +02:00
ui ui: Add .color method to the Switch (#29074) 2025-04-21 10:56:42 -03:00
ui_input Merge Component and ComponentPreview trait (#28365) 2025-04-08 16:09:06 -06:00
ui_macros Merge Component and ComponentPreview trait (#28365) 2025-04-08 16:09:06 -06:00
ui_prompt markdown: Don't retain MarkdownStyle in favor of using MarkdownElement directly (#28255) 2025-04-07 19:03:24 +00:00
util Fix zed sometimes stopping by using setsid on interactive shells (#29070) 2025-04-18 15:04:26 -06:00
util_macros Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
vim VSCode Settings import (#29018) 2025-04-23 20:54:09 +00:00
vim_mode_setting VSCode Settings import (#29018) 2025-04-23 20:54:09 +00:00
web_search agent: Expose web search tool to beta users (#29273) 2025-04-23 15:30:20 +00:00
web_search_providers agent: Expose web search tool to beta users (#29273) 2025-04-23 15:30:20 +00:00
welcome VSCode Settings import (#29018) 2025-04-23 20:54:09 +00:00
workspace VSCode Settings import (#29018) 2025-04-23 20:54:09 +00:00
worktree VSCode Settings import (#29018) 2025-04-23 20:54:09 +00:00
zed Bump Zed to v0.185 (#29287) 2025-04-23 16:20:08 +00:00
zed_actions Add ability to attach rules as context (#29109) 2025-04-21 20:16:51 +00:00
zeta Add new action to run agent eval (#29158) 2025-04-21 21:30:21 -07:00
zlog zlog: Add default filters (#29244) 2025-04-22 18:54:56 -04:00
zlog_settings VSCode Settings import (#29018) 2025-04-23 20:54:09 +00:00