0.183.11
04/25/2025
- assistant: Fix issue when using inline assistant with Gemini models (#29408)
Keep up with the weekly Zed releases.
0.183.11
04/25/2025
0.183.10
04/23/2025
Today's release features Git amend support, customizable bottom dock layouts, improved diagnostics rendering, and support for OpenAI's o3
and o4-mini
models.
f8
/shift-f8
) are rendered more clearly. (#28006)f8
/shift-f8
now always go to the "next" or "prev" diagnostic, regardless of the state of the editor. (#28006)bottom_dock_layout
setting that can take the following options: contained
(default), full
, left_aligned
, and right_aligned
. This setting defines how the bottom dock should be laid out when multiple docks are open at the same time. (#26211; thanks th0jensen)editor::FindNextMatch
and editor::FindPreviousMatch
that are similar to editor::SelectNext
and editor::SelectPrevious
with "replace_newest": true
, but jump to the first or last selection when there are multiple selections. (#28559)git::Restore
compatibility bind (revert_hunk). Mac: cmd-k cmd-z
and Linux: ctrl-k ctrl-z
. (#28444).vy
, .vyi
) files. (#28307; thanks ThatOneCalculator).vscode/tasks.json
files even if they are .gitignore
d. (#28631; thanks hrou0003)editor: select all matches
. (#28435; thanks neunato)editor: copy and trim
command. (#29023; thanks redforks)f
, b
, u
, r
, rb
, and the newly released t
strings. (#28709).go
files and other file types. (#27336; thanks rodrigoFfreire)single-repeat
after accepting a completion; now pressing .
to replay the completion will re-insert the completion text at the cursor position. (#28586):s//
command now defaults to replacing the first match per line (like Vim). Use /g
to replace all matches. (#28138; thanks dinocosta)feedback: file bug report
action would redirect to an outdated URL. (#28790; thanks MrSubidubi)ExtensionLspAdapter
were lost. (#28173; thanks vitallium)select_larger_syntax_node
to first expand to the word within a string, and then to the larger syntax node. (#29184)gv
after p
in visual line mode. (#29251)ctrl-c
in normal mode. (#29169)0.182.11
04/17/2025
file bug report
action would redirect to an outdated URL. (#28790; thanks @MrSubidubi)0.182.10
04/17/2025
0.182.9
04/16/2025
editor: toggle case
command. Use cmd-shift-u
for macOS and ctrl-shift-u
for Linux, when using the JetBrains
keymap. (#28415)insert_text_mode
field of completions from the language server protocol. (#28171)ConfirmCompletionInsert
and ConfirmCompletionReplace
that control how completions are inserted, these override completions.lsp_insert_mode
, by default, shift-enter
triggers ConfirmCompletionReplace
which replaces the whole word. (#28121)completions.lsp_insert_mode
that changes what will be replaced when an LSP completion is accepted. (#27453; thanks frederik-uni)[-
, ]-
, [+
, ]+
, [=
, ]=
. (#28044; thanks 5brian)^
wasn't being escaped in Go tests. Run regex to improve shell compatibility (notably with zsh). (#27746; thanks jakejx)0.181.8
04/15/2025
0.181.7
04/14/2025
GPT-4.1
, GPTβ4.1 mini
, and GPTβ4.1 nano
via Copilot Chat and OpenAI API, accessible in both the stable Assistant panel and the new Agent panel (beta). (#28708)0.181.6
04/11/2025
0.181.5
04/09/2025
hide_mouse
to on_typing_and_movement
, on_typing
or never
.control
, shift
, etc. are now parsed case-insensitively, so for example F8
, CTRL
, SHIFT
are now acceptable alternatives to f8
, ctrl
, and shift
when declaring keybindings. Additionally, upper-case (ASCII) characters will now be converted explicitly to shift
+ the lowercase version of the character, to match the Vim behavior. (#27813)ProjectPanel::ToggleHideGitIgnore
action to toggle the new project_panel.hide_gitignore
setting. (#26636; thanks AlvaroParker)GIT_ASKPASS
if you already have one set instead of overriding with our own. Fixes git push
in Coder. (#27681):ls
and :buffers
. (#27797; thanks 5brian):options
and :map
. (#27798; thanks 5brian)g?
convert to Rot13
/Rot47
. (#27824; thanks 0x2CA)d]}
to not delete the closing brace (#27786)d}
from the start of the line to not delete the paragraph separator (#27786)d}
from the middle of the line to not delete the final newline (#27786)space
on multibyte characters at end of line. (#27860; thanks mastion)o
and shift-o
in visual block mode. (#27678; thanks mastion)Terminal && vi_mode
as keybinding context to detect when the terminal is in vi_mode. (#26236; thanks iyht)workspace::ToggleRightDock
would open the assistant panel even when disabled via settings (#27215; thanks MrSubidubi)text
, background
) were incorrectly being used instead of terminal theme colors (terminal.{foreground,background}
) (#27617)ZED_DEVICE_ID
environment variable. You can obtain the device ID of your GPU by running lspci -nn | grep VGA
which will output each GPU on one line like:
08:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA104 [GeForce RTX 3070] [10de:2484] (rev a1)
2484
. This value is in hexadecimal, so to force Zed to use this specific GPU you would set the environment variable like so:
ZED_DEVICE_ID=0x2484
.bashrc
or similar0.180.4
04/08/2025
0.180.3
04/07/2025
0.180.2
04/02/2025
editor::CopyAndTrim
action to trim selections when copying. (#27206)go_to_definition_fallback
setting, which can be assigned find_all_references
(default) or none
. (#27426)--system-specs
flag to the Zed binary (not the CLI!), to retrieve the system specs we ask for in GitHub issues without needing to open Zed. (#27285){"lsp": {"rust-analyzer": {"binary": {"path": "/some/abs/path/rust-analyzer", "env": {"RA_PROFILE": "*>100"} }}}}
. (#27213; thanks davidbarsky)tasks.json
file while in an invalid state. (#27185)nerd-fonts
package installed (which provides around 2000 monospaced fonts), it decreases RAM usage from ~800MB to around ~300MB. (#27362; thanks AlvaroParker)editor::SelectLargerSyntaxNode
for better visibility. (#27295)settings.json
, now the whole string is queried instead of just the last word of the string, which filters out a lot of false positives. (#27175)keymap.json
, where now you can double click to only select certain parts of an action, instead of selecting the whole action. (#27175)stderr
-prefix of a language server's stderr logs. (#27213; thanks davidbarsky)File "file.py", line 8
are now clickable in the terminal. (#26903; thanks thorbenk)APKBUILD
files as "Shell Script". (#27099; thanks vixalien)bun.lock
files to be recognized as JSONC. (#27359; thanks A-caibird)'
and "
marks (last location jumped from in the current buffer, and location when last exiting a buffer). (#27231; thanks AidanV):marks
which brings up a list of current marks. (#26885; thanks AidanV)@github/copilot-language-server
. (#27401)except
, finally
, else
, and elif
control flow keywords in Python would be incorrectly indented when entered at the correct level of indentation. (#27428)inactiveRegions
didn't replace existing diagnostics anymore when using the clangd
language server. (#26737; thanks naim94a).
access like <Foo.Bar>
would be auto-closed as </>
instead of </Foo.Bar>
. (#27374)soft_wrap
at window width instead of preferred_line_length
. (#27205)0.179.5
03/31/2025
0.179.4
03/28/2025
0.179.3
03/27/2025
hide_mouse_while_typing
setting. (#27519)0.179.2
03/26/2025
We introduced a new display mode for Edit Prediction called subtle
, which makes predicted text hidden by default and only visible when you're holding a modifier key. To turn it on, open the Edit Prediction
status bar menu and select subtle
. This can also be adjusted via your settings.json
with: "edit_predictions": { "mode": "subtle" }
. To read about this new mode, check the blog post.
editor: show word completions
. (#26410)use_system_prompts
. On macOS, you can set this to false
to use Zed's in-window confirmation dialogs instead of the system ones. (On Linux, Zed's dialogs are always used). (#26201; thanks Hawkbawk)version_control.<variant>
theme properties. (#27106)SelectRepo
action that opens the repository selector in a modal. (#26950)git_hosting_providers
setting for configuring custom Git hosting providers. (#26879; thanks khayyamsaleem)@
in connection strings: e.g., ssh jim.lv@es2@10.220.67.57@11.239.1.231
improving support of jump hosts running JumpServer. (#25314; thanks ColorFuzzy)Expand Excerpt Down
so the button stays in place, allowing rapid expansion without moving the mouse. (#27058)keymap.json
by treating ::
like word characters when inside a string. (#26574; thanks KyleBarton)'[A-Z]
. (#25702; thanks AidanV)'(
and ')
. (#25702; thanks AidanV)copilot
key from features
in settings. Use edit_prediction_provider
instead. (#26689)eager
or subtle
) directly from the UI via the status bar menu. (#26680)enable_preview_from_code_navigation
set to true
, "Go Back" from a newly opened tab could focus on the tab to the right instead of returning to the original preview tab. (#26943)auto_reveal
, file_scan_inclusions
, and .gitignore
within the Project Panel. Files that are always included will now be auto-revealed in the Project Panel, even if those files are also gitignored. (#26197; thanks Hawkbawk)space
not handling non-ASCII characters. (#27053; thanks 5brian)0.178.5
03/19/2025
0.178.4
03/19/2025
git.hunk_style
setting to control whether staged or unstaged
hunks are hollow. (26816; thanks jakcharvat)alt-shift-enter
to interact with the button on the new status toasts, toast::RunAction
. (#26420)Open Remote...
to File
menu. (#26288)cmd
on macOS and ctrl
off of macOS. (#26390)Open With
menu. (#26357)workspace/executeCommand
for actions' data. (#26239)cmd-click
in terminal to find more paths. (#26174)npm
from PATH is newer than 18.0.0). (#26209)@variable.special
syntax highlights. (#26271; thanks edwloef)ctrl-o
) work by default in terminal. (#26479)inactiveRegions
extension. (#26146; thanks naim94a)vtsls
and typescript-language-server
to the list of available language servers. (#26046; thanks sacki5)<count>%
motion. (#25839; thanks 5brian):reg[isters]
to show the current values of registers. (#25945; thanks AidanV)ctrl-a
/ctrl-x
. (#25997; thanks 5brian)path/to/file.ext:row:col:description or error message
would not be correctly identified as file paths due to the colon & additional text at the end. (#26401)Go to Line
palette is open would cause it to jump to the previous scroll position. (#26362)txt
files. (#25420; thanks MrSubidubi)!!
to rerun the last command. (#26122; thanks dinocosta)cmd+click
on a URL was not working sometimes. (#26128)Cmd+Click
on a file import. (#26120)()
or []
would not be highlighted properly. (#26695)cmd-click
s. (#26582)shift-i
) in visual modes. (#25603; thanks 5brian)cursor_shape
settings. (#25439; thanks 0x2CA).
repeat for remapped surrounds/exchange actions. (#26101)"seed_search_query_from_cursor" : "selection"
. (#26107; thanks 0x2CA)x g ctrl-a
step. (#26023; thanks 0x2CA)ctrl-alt-f
not correctly toggling search filters in project search. (#25917; thanks GuilhermeRGoncalves)vim::Backspace
and vim::Space
actions to vim::WrappingLeft
and vim::WrappingRight
respectively. The old names are still available, but they are marked as deprecated and users are advised to use the new names. (#25694; thanks asqarslanov)0.177.11
03/18/2025
0.177.10
03/17/2025
0.177.9
03/14/2025
multibuffer
key context. (#26264)editor::MoveToStartOfNextExcerpt
and editor::MoveToEndOfPreviousExcerpt
. (#26264)cmd-down
and cmd-shift-down
on Mac now move to the end of the last line of a singleton buffer instead of the beginning. In multibuffers, these now move to the start of the next excerpt. (#26264)vim::PreviousSectionEnd
(bound to [ ]
) to move to the beginning of the line, matching the behavior of vim::NextSectionEnd
. (#26264)0.177.8
03/13/2025
editor::ToggleGitBlame
to git::Blame
. (#26565)soft_wrap
setting not applying to buffers starting with a different language. (#25880; thanks alexozer)0.177.7
03/12/2025
π Zed now has built-in Git support! π
You can view your diff, stage changes, commit, and push from within the editor. For more information, check out the blog post.
stop_at_indent
to Editor::DeleteToBeginningOfLine
. (Thanks @felixpackard)"inlay_hints": {
/// A set of modifiers which, when pressed, will toggle the visibility of inlay hints.
/// If the set is empty or not all the modifiers specified are pressed, inlay hints will not be toggled.
"toggle_on_modifiers_press": {
"control": false,
"shift": false,
"alt": false,
"platform": false,
"function": false
}
}
copy permalink
action for self-hosted GitHub enterprise instances. (#26482)ssh_config
files (ssh -F ssh_config
) in connection string. (#25619)zed-remote-server
with busybox wget (Alpine, etc). (#25621)ZED_WORKTREE_ROOT
fallbacks. (#25605)always_show_close_button
key to show_close_button
and introduced a new hidden
value, that allows never displaying the close button. (#23880; thanks @Morgandri1)package.json
and tsconfig.json
. (#25826)``
not recognized as object. (#24999; thanks @yichengliu)editor::OrganizeImports
action to organize imports (sort, remove unused, etc.) for supported LSPs. You can trigger it by using the alt-shift-o
key binding. (#25793)enabled_in_assistant
setting. (#25767)edit_predictions.disabled_globs
.buffer: deploy search
after using Vim search (*
& #
) which enable all search options. (#25838)active_pane_modifiers
settings would be applied to a parent pane if one of its child panes was active. (#25836)Zed.log
could grow excessively large during long sessions of Zed. (#25768)editor: copy permalink to line
to now use the upstream of the current branch instead of origin
. (#26398)j/k
on folded multibuffer header. (#25944)d u/d U
for staging/unstaging in the project diff view. d o/d O
to show hide/toggle staged in the editor and d p
for restoring the hunk. (#26045)GoToPrevHunk
β GoToPreviousHunk
, TabPrev
β Backtab
, etc). Your existing configured keybindings will still work. You can click "Backup and Update" at the top of your keymap file to easily update to the new actions. (#25909)0.176.3
03/06/2025
0.176.2
03/04/2025
GoToPrevHunk
β GoToPreviousHunk
, TabPrev
β Backtab
, etc.). Your existing configured keybindings will still work. You can click "Backup and Update" at the top of your keymap file to easily update to the new actions. (#25909, 25931)0.176.1
03/03/2025
Today, we are launching our private beta for enhanced Git integrations. We'll gradually invite users from the Git beta waitlist daily. Keep an eye out for an invite email from our team in the coming days.
editor::RevertSelectedHunks
and editor::RevertFile
to git::Restore
and git::RestoreFile
for consistency with git (#25197)editor::ExpandAllHunkDiffs
action to editor::ExpandAllDiffHunks
(#25369)allow_rewrap
setting to control the editor::Rewrap
behavior for a given language. (#25173)on_last_window_closed
setting, that allows users to quit the app when the last window is closed (#25185)stop_at_indent
option for MoveToBeginningOfLine and SelectToBeginningOfLine. (#25428)package-version-server
on the $PATH
. (#23849; thanks matthewpi)chromium.googlesource.com
for Git blames and permalinks. (#24881; thanks hferreiro)raw
keyword to Rust language highlights (see the Rust 1.82.0 announcement). (#25342)true
and false
to match boolean
highlight defined in themes for C, C++, Go, JSON, JSONC, Python, and Rust. (#25338; thanks everdrone)@variable
syntax highlights to be less intense. (#25464)@variable
syntax highlights. (#25468)vim-exchange
(#24678; thanks thomasheartman)Vim::CurrentLine
for replace with register mode (grr
) (#24678; thanks thomasheartman)gr
in visual mode (#25301; thanks 0x2CA)assistant: insert into editor
was missing the selected range. (#25133; thanks rien7)editor: copy
was missing the selected range. (#25133; thanks rien7)alt-m
(back-to-indentation
). (#25428)alt-{
and alt-}
paragraph navigation. (#25284)ctrl-_
) not working by default in Terminal on macOS. (#25578)ctrl-b
being broken in the Terminal on Linux by default. (#25476)cmd-up
now moves to the previous multibuffer excerpt start, and cmd-down
moves to the next multibuffer excerpt end. For normal buffers these behave the same as before, moving to the beginning or end. (#25299)--target-dir
for Rust tasks (#24725; thanks bnjjj)cargo test
task for a tests
module in lib.rs
, main.rs
, or mod.rs
(#25092):
. (#25437)LICENSE.md
and LICENCE.md
files to license detection. (#25422; thanks pngdrift)This Buffer
option when predictions are disabled for its language. (#25566)edit_prediction_provider
is set to none
. (#25505)GoToDefinitionSplit
action where splitting wouldn't happen if the definition was in the same active editor. (#24990)copy_recursive
ran infinitely when copying a folder into its subfolder. (#25317)~/.hushlogin
exists (#25224)buffer_line_height
. (#25172)shift-
modifier symbol (#25238; thanks 0x2CA)editor::SelectLargerSyntaxNode
is called repeatedly in multi buffer. (#25585)menu::SelectLast
action (#25160; thanks pjtatlow)auto_indent_on_paste
was set to false
in certain languages. (#25447)0.175.6
02/27/2025
0.175.5
02/26/2025
We are currently working to integrate Git more deeply into Zed. Join the waitlist for the private beta, and we will pull you in when it's ready!
Andromeda
, Atelier
, RosΓ© Pine
, Sandcastle
, Solarized
& Summercamp
. If you would like to continue using one of these extensions (#24589):
zed: extensions
zed-legacy-themes
extensionshift-click
in the terminal. (#25143)alt-shift
while mouse is down. (#25096).bats
files as Shell Script
. (#24877; thanks bersace)keybindings.json
file:
"cmd-=": ["zed::IncreaseBufferFontSize", { "persist": true }]
"cmd-+": ["zed::IncreaseBufferFontSize", { "persist": true }]
"cmd--": ["zed::DecreaseBufferFontSize", { "persist": true }]
"cmd-0": ["zed::ResetBufferFontSize", { "persist": true }]
.rdata
and .RData
files. (#24925; thanks aymennasri).sln
).suo
).csproj
).fsproj
).vbproj
).cr
, .ecr
) files. (#24903; thanks nobodywasishere)aq
, iq
, ab
, and ib
motions to work more like mini.ai plugin. (#24167; thanks oca159)select all matches
in search (to be consistent with ga
). (#24897; thanks dinocosta)edit_prediction_conflict
context without modified keybinds for AcceptEditPrediction
. (#25015).dev.vars
files from edit prediction. (#24838)restore_unsaved_buffers: true
). (#25106)editor: split selection into lines
was adding an extra line at the end of the selection. (#25053)elixir-ls
, tailwindcss
, phpactor
) failing to start up due to an unfilled root_uri property in the InitializeParams. (#25290)next-ls
in the process. (#25344)cmd-click
on links/files when terminal is not focused. (#25104)cmd
, when switching to another application and back. (#25104)ci{
. (#25138)gr
with dot repeat. (#24932; thanks xzbdmw):wq
in a multibuffer. (#24603)F10
and Alt+Fn
. (#24745; thanks gim913)0.174.8
02/25/2025
0.174.7
02/25/2025
0.174.6
02/20/2025
zed: increase buffer font size
and zed: decrease buffer font size
commands would alter the user's settings.json
file. Now, by default, using these commands will not alter your settings file, but you can opt into persistence by adding some of the following keybindings to your keybindings.json
file:
"cmd-=": ["zed::IncreaseBufferFontSize", { "persist": true }]
"cmd-+": ["zed::IncreaseBufferFontSize", { "persist": true }]
"cmd--": ["zed::DecreaseBufferFontSize", { "persist": true }]
"cmd-0": ["zed::ResetBufferFontSize", { "persist": true }]
0.174.5
02/19/2025
Recent Branches
button. (#24809)0.174.4
02/19/2025
Last week, we introduced the public beta of Edit Prediction. To support the launch of this beta, we accelerated the release of all preview features and bug fixes to the stable version. This resulted in a more substantial stable release last week, followed by a smaller update this week. Check out today's preview release (v0.175.0
) for more action.
0.173.11
02/18/2025
0.173.10
02/14/2025
task::Spawn
opened the task selector instead of executing the task. (#24902)0.173.9
02/14/2025
0.173.8
02/13/2025
Introducing Edit Prediction. Powered by Zeta, our open-source, open-dataset language model.
To learn more, check out the blog post.
.bicep
) (#24757; thanks jezikk)..cs
) (#24711; thanks sethstha).cue
) (#24711; thanks sethstha)gitlab-ci.yml
) (#24711; thanks sethstha).luau
) (#24711; thanks sethstha).md
, .markdown
) (#24648).mjsx
, .cjsx
, .mtsx
, .ctsx
) (#24659, thanks twlite).sol
) (#24711; thanks sethstha).svelte
) (#24644)stylelint.config.cjs
, stylelint.config.js
, stylelint.config.mjs
, etc.) (#24605; thanks radmorecameron){
"icon_theme": {
"mode": "system",
"light": "Zed (Default)",
"dark": "Zed (Default)"
}
}
ToggleStagedSelectedDiffHunks
action for staging and unstaging individual diff hunks (#24606).editor: copy file name
and editor: copy file name without extensions
(#22174; thanks ankddev).editor: select all matches
(#23993).NODE_EXTRA_CA_CERTS
environment variable through to NPM when installing language servers (#23662; thanks jswny).project_panel::NewSearchInDirectory
to search the parent directory when triggered on a file (#23696; thanks wblazer).debug::OpenSyntaxTreeView
action by automatically opening in split to the right (#24452).keymap.json
file.e
for entire file object. yae
to copy entire file (#24039).ctrl-w a
to close all items in the current pane (#24162).gr
for replace with register (#24326).normal
mode after pressing escape during a pending visual-surround
operation (#24484; thanks roycrippen4).:set
with support for [no]wrap
, [no]number
, [no]relativenumber
(#24209; thanks maxbucknell).eslint.config.js
) would not have their specific icon without a leading .
(.eslint.config.js
) (#24391).
in hover popovers (#24388; thanks WeetHet).select_next_git_entry
project panel action would only select a previous entry or the currently selected entry (#24217; thanks Anthony-Eid).json
file icon could not be replaced via icon themes (#24432; thanks sethstha).outline_panel::Open
(#24535).editor::GoToDiagnostics
action stuck when multiple diagnostics groups belong to the same place (#24697).editor::SelectPrevious
twice in a row (#24660).ctrl-{<,>,+,-}
for resizing docks in addition to panes (#23874; thanks AidanV).inline_completions > disabled_globs
setting would not be respected when manually requesting a completion (editor: Show inline completion
) (#24121)./
/?
, n
/N
, gn
/gN
,*
/#
in project search results (#23819).