0.157.1
10/09/2024
- Fixed a potential hang and panic when an SSH project goes through a slow reconnect.
Keep up with the weekly Zed releases.
0.157.1
10/09/2024
0.157.0
10/09/2024
Example task configuration:
[
{
"label": "Run ${ZED_STEM}",
"command": "gcc",
"args": [
"$ZED_FILE",
"-o",
"${ZED_DIRNAME}/${ZED_STEM}.out",
"&&",
"${ZED_DIRNAME}/${ZED_STEM}.out"
],
"tags": ["c-main"]
}
]
regex
and caseSensitive
arguments to vim::MoveToNext
and vim ::MoveToPrev
commands, for toggling regex and case sensitive search (#18429; thanks osa1).Example:
{
"context": "VimControl && !menu",
"bindings": {
"*": ["vim::MoveToNext", { "regex": false, "caseSensitive": false }],
"#": ["vim::MoveToPrev", { "regex": false, "caseSensitive": false }]
}
}
$PATH
of a project (#18611).option-t
and option-shift-t
in terminal on macOS (#18749).tabs.git_status
setting (#18733; thanks Daste745)..proto
file (#18704).0.156.0
10/02/2024
cmd-k cmd-l
), fold every fold (cmd-k cmd-0
) unfold every fold (cmd-k cmd-j
) to fold recursively (cmd-k cmd-[
) and unfold recursively (cmd-k cmd-]
).snippets: configure snippets
command to create and modify snippets (#18453; thanks loczek).snippets: open folder
command for opening the ~/.config/zed/snippets
directory (#18453; thanks loczek).{"terminal": {"cursor_shape": "block"}}
. Possible values: block
, bar
, hollow
, underline
(#18530).
editor.document_highlight.bracket_background
field to the theme to set background color of highlighted brackets. This will fall back to editor.document_highlight.read_background
, if not set (#17566; thanks thataboy).direnv export json
) mode by default instead of relying on a shell hook (#18536; thanks WeetHet).view the release notes
button in the update toast to trigger the auto update: view release notes locally
action (#18486).ui_font_weight
and buffer_font_weight
settings to require values to be between 100
and 950
(inclusive) (#18594; thanks JunkuiZhang).pyright
if available (#18353).uv.lock
files with the TOML language (#18426; thanks thorbenk).:fo[ld]
, :foldo[pen]
and :foldc[lose]
(#18424).za
to toggle fold under cursor (#18421).zO
/zC
/zA
to open, close and toggle folds recursively (and fixed zc
to not recurse into selections) (#18421).zR
/zM
to open/close all folds in the buffer (#18421).Reveal in Finder/File Manager
, Copy Path
, Copy Relative Path
and Copy file location
actions not working with multibuffers (#18626).{"terminal": {"blinking": "[on|off|terminal_controlled]"}
to work correctly and to work correctly when custom cursor_shape
is set (#18538).
terminal.cursor_shape
only controls the default shape of the terminal, not the blinking.terminal.blinking = on
means that it's always blinking, regardless of what terminal programs wantterminal.blinking = off
means that it's never blinking, regardless of what terminal programs wantterminal.blinking = terminal_controlled (default)
means that it's blinking depending on what terminal programs want. when a terminal program resets the cursor to default, it sets it back to terminal.cursor_shape
if that is set.direnv
mode is set to direct
and .envrc
is not allowed (#18473; thanks WeetHet).go to definition
would scroll the editor even when the definition was already within the viewport (#18441; thanks osa1).low_speed_timeout_in_seconds
for Ollama (#18417).use_on_type_format
setting not working when defined inside "languages"
in the settings. This change will now change the default behavior for C, C++, and Markdown, by turning language server's OnTypeFormatting
completions off by default (#18387).{"cursor_shape": "..."}
setting is removed. This does not apply to Vim mode (#18379).alt-enter
in terminal (#18363).{"lsp":{"<lsp-name>":{"binary":{"path": "_"}}}}
will now work for all language servers including those defined by extensions (#18318).cmd-O
to correctly open files on the remote host (#18308).:{range}yank
(#18424).proto
to Proto
under file_types
and languages
(#18559).{"lsp":{"<lsp-name>":{"binary":{"ignore_system_version": true}}}}
(#18318). Previously this was {"lsp":{"<lsp-name>":{"binary":{"path_lookup": false}}}}
. Note that this setting still does not apply to extensions.0.155.2
10/01/2024
0.155.0
09/25/2024
assistant.inline_alternatives
setting to configure additional models that will be used to perform inline assists in parallel (#18098).Fix with Assistant
action on code with errors or warnings (#18163).qwen2.5-coder
model (#18290; thanks thehamsti).cmd-o
to correctly open files on the host (#18308).{"node": {"disable_path_lookup": true}}
in your settings. We do not yet use system/project-local node_modules (#18172).0.154.1
09/24/2024
vtsls
being initialized the wrong way, which would mean the wrong options were used to enable completions or inlay hints. (#18014)editor: rewrap
when working with a selection that contained comments at different indentation levels. (#18146)auto update: view release notes locally
feature to display release notes for each patch version associated with the installed minor version. (Partially addresses #17527))0.154.0
09/19/2024
"tabs": {"file_icons": true}
to settings
(#17115; thanks Daste745).editor: rewrap
command for rewrapping text to the maximum line width (#17909).assistant::CopyCode
action (cmd-k c
/ ctrl-k c
) to copy to the clipboard, or the assistant::InsertIntoEditor
action (cmd-<
/ ctrl-<
) to insert into editor (#17853; thanks thataboy).git diff
inside the built-in terminal (#17446; thanks watsoncj).ctrl-shift-pageup
, right: ctrl-shift-pagedown
) like Chrome (#15583; thanks tepek2).pane::JoinAll
action (#17673).cursor_shape
. Can be bar
, block
, underline
, or hollow
. Default is bar
(#17572; thanks thataboy).inlay_hints.show_background
setting to allow displaying backgrounds for inlay hints in the editor (#18010).
false
.hint.background
color from the theme.ui_font_size
and buffer_font_size
to require values to be between 6px and 100px (inclusive) (#17829).tab_size
setting to require values be between 1 and 16 (inclusive) (#17882; thanks ihavecoke).rust-analyzer
support to look up rust-analyzer
binaries by default in $PATH
. That changes the default value to something users requested (#17926).ctrl-a
/ctrl-x
(#17644; thanks hekmyr).OpenFile
(gf
in Vim mode) and the word under the cursor is not an existing file path, we now fall back and additionally check whether a file called <word-under-cursor>.<language-specific-path-suffixes>
exists. That's similar to Vim's suffixesadd
option (#17805)./delta
command to re-insert changed files that were previously included in a context (#17903).low_speed_timeout_in_seconds
option to 600
for OpenAI provider to accommodate recent o1 model release (#17804).~/.cache/zed
instead of ~/Library/Caches/Zed
(#17949).editor: toggle comments
command didn't use the right comment syntax in JSX and TSX elements (#17734).ctrl-b
not moving the cursor (#17808).initialization_options
being passed as workspace/Configuration
for the vtsls, TypeScript, and YAML language servers (#17757).is
and ...
highlights for TypeScript (#17787; thanks AlbertMarashi).gv
after > and < in visual mode (#17986).0.153.6
09/18/2024
Note This release replaces v0.153.5-pre
which had ci-related build failures.
0.153.5
09/18/2024
NOTE: Due to CI issues. This release did not finalize correctly will be superceeded by v0.153.6-pre shortly.
0.153.4
09/16/2024
0.153.3
09/15/2024
0.153.0
09/10/2024
DeleteToPreviousWordStart
and DeleteToNextWordEnd
interactions around newlines. You can opt-in into the previous behavior by adding {"ignore_newlines": true} to either action's binds in your keymap (#16848; thanks kjzl).display_name
for custom models in OpenAI and Google Gemini AI providers (#17508).search
settings section to configure default options enabled in buffer and project searches (#17179; thanks thataboy).:y[ank]
(#17448).s
keybind to open with default app (#17231; thanks KorigamiK).:diff
and :revert
(that work with '<,'>
) to open the selected diff and revert it (#17456).d o
to open the diff and d p
to revert (spiritually similar to vim's do/dp, though obviously not the same) (#17456).ctrl-p
and ctrl-n
to summon the autocomplete menu in insert mode (#17456).(
and )
for sentence motion (#17425)./file
command when pressing tab (#17652).tabs.file_icons
default value (#17629; thanks kachick).low_speed_timeout_in_seconds
was not respected (#17423)."_
register writes overwriting "
register (#17419).Y
to vim behavior. If you want the neovim version (as a built in mapping to y$
) you must configure it in your settings (#17563; thanks vbhavsar).:3 d
(#17474).0.152.3
09/10/2024
0.152.2
09/10/2024
Unreleased.
0.152.1
09/06/2024
0.152.0
09/04/2024
REPL: Added button to open full text output in a separate buffer (#16971).
Improved the Zed CLI zed
to pass along the environment as it was on the CLI to the opened Zed project. That environment is then used when opening new terminals, spawning tasks, or language servers (#17075). Specifically:
zed my-folder
, a terminal spawned with workspace: new terminal
will inherit these environment variables that existed on the CLI$PATH
(such as gopls
, zls
, rust-analyzer
if configured, ...) will look up the language server binary in the CLI environment too and use that environment when starting the process.RA_LOG=info zed .
and it will be picked up by the rust-analyzer that was spawned.Added multiuser support for up to 100 users on the same machine (#14143; thanks samsonjs).
Linux: Added an editor setting to toggle middle-click pasting (enabled by default) (#16572; thanks micahscopes).
Linux: Improved GPU detection (#17022).
prompts/get
responses, displayed as slash command labels (#17077; thanks dsp-ant).New Context
opening a new file when focused in the editor pane (#17106; thanks ramipellumbi).max_output_tokens
handling) (#17168).workspace::ActivatePaneInDirection
could not activate the center pane (i.e. one couldn't navigate from terminal or assistant panel to the center pane) after loading Zed (#17140).use_system_prompts: false
(#17027).go.mod
) was in a nested folder (#17108; thanks glaudiston). Pre-defined Go tasks now run in the package's directory. That means go test ./package -run MyTest
will run in ./package
and execute go test -run MyTest
. Also, go test ./...
will run in the package directory, not at the root of the Zed project, which is a small breaking change. In case one wants to run go test ./...
from the root, one can spawn a manual task that does this.0.151.1
08/30/2024
max_tokens
in setting.json (#17025)."use_system_path_prompts": false
or in remote project with two or more worktree (#16991; thanks CharlesChen0823).0.151.0
08/28/2024
editor: toggle inline completions
) to allow toggling inline completions (Copilot, Supermaven) on and off for the current buffer, taking precedence over any settings (#16947).pane: join into next
action (#16077; thanks tcard).editor: copy file location
command to copy the current file location (FILE:LINE) to the clipboard (#14793; thanks slembcke).Format Buffer
action to the right-click menu within a buffer (#16080; thanks terziele).soft_wrap
value bounded
, EditorWidth and PreferredLineLength min value (#16586; thanks 0x2CA).unnecessary_code_fade
setting to control how strongly to fade unused code (#14442; thanks MatthewScholefield).splitright
option (#16345; thanks jvanbaarsen).cmd-1
thru cmd-9
(macOS) and alt-1
thru alt-9
(Linux) matching Sublime behavior (#16930; thanks zzulu).F13
-F19
, Insert) (#16921).Copy Path
and Copy Relative Path
actions in the project panel's context menu when selecting multiple files. All selected files' paths will now be copied, separated by newlines (#16558; thanks kjzl).scrollbar.track.background
from the theme (#16546; thanks eliperkins).cmd
/ctrl
-clickable, opening them when clicked (#16534).property
tests in runnables for Elixir (#16985; thanks cschmatzler).graphql
tagged template literals and function calls in javascript, typescript and tsx languages (#16368; thanks affanshahid).pyrightconfig.json
as JSONC
(#16967).PHP
highlights by adding more language keywords (#16720; thanks BafS).insert
mode (#16567; thanks 0x2CA).gf
command to open files under the cursor (#16534).<
and >
in Git commit message popup (#16279; thanks dovakin0007)..fifo
files (#16039; thanks SultanTanirkul).HTML
injections inside JavaScript template tags (#16479; thanks florian-sanders).show_inline_completions: false
(#16621).esc
not removing focus from the filter editor in the collaboration panel (#16579).n
direction after searching backwards (#16754; thanks fmgornick).ctrl-d
/ctrl-u
when scroll_beyond_last_line
is set to off
(#15395; thanks ksweetie).ctrl-c
(#16847).ctrl-shift-f
(#16085; thanks VitorRamos).0.150.4
08/27/2024
0.150.3
08/22/2024
0.150.0
08/20/2024
Today's preview release is largely identical to today's stable release. We've fast-tracked all new recently-released preview features to Zed stable, where they're currently being highlighted. There are a few subtle updates in preview, but the main action is happening in stable and around Zed AI. Next week's preview will be back on track with new features and improvements.
For more information on Zed AI, read our in-depth blog post and see the assistant documentation on our revamped website.
0.149.3
08/19/2024
has_edits_since_in_range
to be smarter and more selective about when to invalidate the cache and when to fetch (#16395; thanks rowillia).0.149.2
08/19/2024
performance.show_in_status_bar: true
setting (MacOS-only) to show the time to the first window draw and FPS (#16422).0.149.1
08/16/2024
ctrl-a
until we can separate the behavior of the command for soft wraps and leading indentation (Preview Only) (#16246)./file
slash command (#16242).0.149.0
08/14/2024
javascript
, typescript
and tsx
languages for css
, html
, js
, json
, sql
, ts
, yaml
and yml
(#15984; thanks RobinMalfait).editor::ScrollCursorCenterTopBottom
action for toggling scroll position with a single key binding (#16134).editor::HandleInput
action to ease typing symbols that are part of keymaps. E.g. if , o k
key binding is bound, ", ,": ["editor::HandleInput", ","]
would allow to type ,
without timeouts (#16131).ctrl-a
and ctrl-e
on MacOS (#15981).assistant: Quote selection
to insert text into the assistant panel (#16038).:'<,'>
from visual mode (#15985).cmd
window showing when repl executing commands (#16016; thanks JunkuiZhang).ctrl-u
/ctrl-d
in Vim mode not working correctly when vertical_scroll_margin
is set to a really high value (#16031).vertical_scroll_margin
that exceeded the number of visible lines on the screen (#16029).0.148.0
08/07/2024
~/.config/zed/prompts/templates
directory. This is an advanced feature, and prevents you from getting upstream changes. It's intended for use by Zed developers.editor: go to declaration
editor action (thanks coszio).title_bar.inactive_background
to a non-transparent value.update_display_data
support for REPL.
ctrl-alt-enter
keybinding for repl::RunInPlace
(ctrl-option-enter
on MacOS). This keeps your screen position and cursor in place when running any block.Deno.jupyter.md
and in IPython use IPython.display.Markdown
.test
substring (#15580; thanks MayankJikadara).language_servers
setting. The first language server in this list will be used as the primary language server.editor: go to declaration
editor action. The new keybindings are the following (and can be found here, alongside the other key bindings) (thanks coszio):
g d
- Go to definitiong D
- Go to declarationg y
- Go to type definitiong I
- Go to implementation0.147.2
08/02/2024
0.147.1
08/01/2024
0.147.0
07/31/2024
Once you've signed into GitHub Copilot within Zed, Copilot Chat should be available as an option in the model dropdown in the assistant.
ctrl-enter
to summon the inline assistant in the terminal, which lets you generate terminal commands based on your description.
ui_font_fallbacks
, buffer_font_fallbacks
, and terminal.font_fallbacks
(#5180, #5055).cd
ed into a project directory. That means environment variables set by direnv
/asdf
/mise
and other tools are now picked up (#12125).
Option|Alt+Click
will open the preview to the side (#15215).comment.doc
(#15322; thanks earomc).gh cs ssh
or gcloud compute ssh
etc. See https://zed.dev/docs/remote-development for alternatives.>
/<
in visual mode (thanks Tobbe).TryExec
(#15148; thanks HarshNarayanJha)../
breaking the new-path file picker when the system prompts are disabled (#15426).settings.json
were missing their descriptions.ui_font_weight
setting (#15234).0.146.3
07/30/2024
0.146.2
07/30/2024
0.146.1
07/26/2024
ctrl-d
on Linux. Preview-only. (#15238, thanks @unixtensor)0.146.0
07/24/2024
Zed now features a built-in REPL!
You can run code:
# %%
)View the blog post for more details.
{"restore_on_startup": "last_workspace"}
(Part of #4985 and #4683).{"session": {"restore_unsaved_buffers": false}}
(#4985, #4683).[
{
"context": "Editor && mode == full",
"bindings": {
"ctrl-shift-enter": [
"assistant::InlineAssist",
{ "prompt": "Build a snake game" }
]
}
}
]
esc
(#12404).shell
and hide
fields to use custom shells and allow for custom close behavior.format
and format_on_save
now accept an array of formatting actions to run; language_server
formatter option now accepts the name of a language server to use (e.g. {"language_server": {"name": "ruff"}}
); when not specified, a primary language server is used (#4822).ctrl-shift-up
on Linux and cmd-ctrl-up
on MacOS) (#15089; thanks unixtensor).Copy
, Paste
, Select All
, & New Terminal
to the terminal context menu (thanks versecafe)."command_aliases"
setting to let you abbreviate commands.zed: extensions
and then in the search bar of the extensions view type in Ruff. Once installed, you can configure ruff
to add additional lints and provide formatting via the following setting snippet:"languages": {
"Python": {
"format_on_save": { "language_server": { "name": "ruff" } },
"formatter": { "language_server": { "name": "ruff" } },
"language_servers": ["pyright", "ruff"]
}
}
tsconfig.json
files are now treated as JSONC
.using
keyword in TypeScript (#14762; thanks versecafe).infer
keyword (#14696; thanks rimuy).Y
to yank to end of line (like neovim) (#14771, thanks vbhavsar).jk
binding preventing you from repeating j
(#14725).escape
in normal mode to also clear the selected register (#14311).gv
after y
, d
, etc. (#13760).assistant: quote selection
not working correctly when making visual-line-mode selections in Vim mode.source.organizeImports
code action was used on save. Zed now filters out code actions sent to the language servers by checking whether they are supported first (#13633).ctrl-/
on some systems.0.145.1
07/19/2024
go test
command to work again in bash
, zsh
, etc. (#14818).0.145.0
07/17/2024
Remote Development (alpha) for everyone 🖥️🌐
Edit files or run commands on your server over SSH, whether working solo or using Zed's collaboration tools to tackle tasks together.
Learn more about remove dev and its current limitations here: https://zed.dev/docs/remote-development
/symbols
slash command in the assistant panel, which automatically inserted the active file's symbols into the assistant."show_signature_help_after_completion": false
to settings.json
"tabs": { "file_icons": true }
.keymap.json
file (#14248).zed.dev/channel
(zed://
) URIs to open on Linux (#14104; thanks korewaChino).use_system_path_prompts
(default true) that can be disabled to use Zed's builtin keyboard-driven prompts (#14524).TERM_PROGRAM
and TERM_PROGRAM_VERSION
environment variables in the integrated terminal (#4571; thanks ldm0).yarn dlx @yarnpkg/sdks base
in the root of your project in order to elevate your experience (#10107).-
/+
to go to beginning of line above/below (#14183; thanks ika-musuko).ctrl-m
now is equivalent to enter
in editor.c <motion>
omitting trailing multibyte characters (#13909).-
to open the project panel. You can re-add it to your keymap file with: {"context":"VimControl", "bindings":{ "-": "pane::RevealInProjectPanel"}}
(thanks ika-musuko).zed: open licenses
) crashing on Linux ARM machines. (#14302).ctrl-l
; Added ctrl-m
for JetBrain on Linux for the same (#5247).Cmd-\
did not toggle left dock when using Atom base keymap on macOS (#14098, thanks audionerd).ui_font_size
values.direnv
environments by directly interfacing with it using direnv export
(#8633; thanks WeetHet).terminal.option_as_meta
is enabled (#7728; thanks denisw).preferred_line_length
by default. (#12473).0.144.3
07/16/2024
prettier
detection to pick up its installation from transitive dependencies (12731textDocument/didSave
request (14286)0.144.2
07/12/2024
0.144.1
07/11/2024
editor::JoinLines
to ctrl-shift-j (#14136).0.144.0
07/10/2024
Linux when? Linux now. 🎉🐧
For the last 6 months, our team and our open source community have been working hard to bring Zed to Linux.
As of today, we've released our first, official, stable build of Zed on Linux!
classAttributes
in the configuration for tailwindcss-language-server
. Example: { "lsp": { "tailwindcss-language-server": { "settings": { "classAttributes": [ "class", "className", "ngClass", "styles" ] } } } }
.snippets.json
file next to the extension manifest.config_dir
(#7155).terminal.font_weight
user setting (thanks hron).unzip
to extract .zip
files downloaded by extensions.flake.lock
files are now automatically identified as JSON.0.143.6
07/10/2024
0.143.5
07/09/2024
editor::RevealInFinder
to editor::RevealInFileManager
.0.143.4
07/09/2024
0.143.3
07/09/2024
0.143.2
07/05/2024
0.143.1
07/05/2024
0.143.0
07/03/2024
assistant: insert into editor
Action. Default keybinding: cmd-<
on macOS, ctrl-<
on Linux (#13467).editor::MovePageDown
). Previous scroll only behavior (editor::PageDown
) is now available via cmd-pagedown
on MacOS and alt-pagedown
on Linux (#13389)shift shift
as a default binding to open the command palette in the JetBrains keymap (#13556).q
and @
) to record and replay (#1506, #4448).:
in empty diagnostics view (#13624)g/
outside of an editor (#13624).editor
crate (#13565, thanks @Peiffap).0.142.4
07/03/2024
0.142.3
06/28/2024