0.176.3
03/06/2025
- Fixed some potential panics in the AWS Bedrock model provider. (#26242)
Keep up with the weekly Zed releases.
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).0.172.11
02/10/2025
0.172.10
02/07/2025
0.172.9
02/07/2025
0.172.8
02/05/2025
Users have been asking us for a long time to give them the ability to customize their file icons:
With today's release of icon themes, this is now possible! 🎉
icon theme selector: toggle
action to switch between installed icon themes.alt+click
) (#22896; thanks 0xtimsb).Open File
action in file menu for Linux and Windows (#23707; thanks 0xtimsb).show_tab_bar_buttons
setting, under tab_bar
, that enables hiding the pane tab bar buttons (#23752).editor: open selections in multibuffer
(alt-enter
) command (#23644).o3-mini
and remove support for o1-mini
(#24080; thanks SkywardSyntax).Copy Permalink
menu item by disabling it when not in a Git repository (#23350; thanks Swiftaff).workspace: new window
action to now bring app to foreground (#24015).inline_completions.disabled_globs
(#24051).yaml-language-server
as YAML formatter (#23612).ab
/ib
"AnyBrackets" text objects that are the smallest of a(
, a[
or a{
or i(
, i[
or i{
(#23679; thanks oca159).ctrl-g
and {count} ctrl-g
to show the filename in the status bar (#23562).project_panel::NewDirectory
, editor:: NewlineAbove
in TextMate keymap (#23825; thanks huacnlee)..gitignore
d files filter occasionally not working in context file picker (#23777).ZED_WORKTREE_ROOT
incorrectly pointing to a file. Now points to a directory when current file is a project or unset when in out-of-project files (settings.json, tasks.json, etc) (#23150; thanks aborg-dev).GoToLine
and caret position (#23654).The path /.../tsserver.js doesn't point to a valid tsserver install. Falling back to bundled TypeScript version.
pop-up appearing (#23525).editor: open excerpts split
key binding to cmd-alt-enter
on macOS and ctrl-alt-enter
on Linux, to be more consistent with other actions that open files in a new split (#23646).0.171.6
02/01/2025
0.171.5
02/01/2025
0.171.4
01/31/2025
0.171.3
01/29/2025
editor: swap selection ends
action which swaps the cursor location from the beginning/end of a given selection (#23428).workspace: activate next window
and workspace: activate previous window
actions for cycling between windows (#23356; thanks 0xtimsb).workspace: move focused panel to next position
(#23317; thanks dinocosta).bindings
will take precedence. The default keymaps have been updated accordingly (#23378).@function.arguments
, @function.kwargs
, @type.class.inheritance
, @keyword.definition
, @attribute.builtin
and @type.builtin
(#21454; thanks elisiariocouto).o1-preview
to o1
for OpenAI provider (#23425).ctrl-space
/ ctrl-@
to set mark; ctrl-x ctrl-x
to swap mark/cursor) (#23297).:!
, :<range>!
and :r!
support (#23169).!
operator in normal/visual mode (#23169).%
in Vim mode not working correctly for multi-char brackets, such as do/end
in Elixir or \begin
and \end
in LaTeX (#23471).editor: copy path
not work in ssh remote (#23235; thanks CharlesChen0823).assistant
setting (#23190).selection
keyboard context has been replaced with selection_mode
(#23297).0.170.4
01/27/2025
0.170.3
01/27/2025
0.170.2
01/23/2025
0.170.1
01/22/2025
project_panel.entry_spacing
setting to configure spacing between entries in the project panel: comfortable
(default) or standard
(#16255; thanks mikesun).json-language-server
completions and tooltips, especially for actions requiring input (#23044).yaml-language-server
on the$PATH
(#22036; thanks henryhchchc).editor: format
command now, it will default to the language server. clangd
can format C++ files, whereas prettier cannot (#23112, #23119).luau-lsp
(#23000).Server Info
section of the language server logs (#23084).tail
(#22996).Sneak
and SneakBackward
operators (#22793; thanks nilehmann).ctrl-t
transposing characters on Linux (#22974).Diagnostics
key context allowing Diagnostic pane-specific keybinds (#23043; thanks everdrone).fn-f
keyboard shortcut for fullscreen toggle (#23184).fn-X
(where X is a printing key) on macOS (#23070).dxG
delete to line (#23053; thanks 0x2CA).ctrl-right
to ctrl-cmd-right
on macOS, because ctrl-right
is already bound to jump to the end of the line (#23357)0.169.3
01/21/2025
0.169.2
01/15/2025
workspace::OpenFiles
action to enable opening individual files on Linux and Windows (#22625)debug: open language server logs
to display more language server data (#22797)TERM
to xterm-256color
in Zed's built-in terminal (#22777)RemoveFromProject
action to remove all selected items (#22455; thanks pepyakin).ExpandExcerpts
action (shift+enter
by default) so it expands all excerpts that have selected text, rather than just excerpts that contain the end of a selection (#22748).file://
URLs with line numbers in the Zed terminal (#22559).pip
commands inside a virtual environment on Windows 11. (#22587; thanks TorratDev)typescript-language-server
completion details rendering (#23034)end >= start
in lsp::Range
(fixes some Zig zls crashes; perhaps others) (#22690; thanks unexge).gopls
path construction on Windows 11 (#22727; thanks TorratDev).aq
/iq
"any quote" text objects that are the smallest of a"
, a'
or <code>a`</code> (#22263; thanks oca159).Y
so it yanks entire line instead of selection (#22416; thanks 0x2CA).ctrl-x ctrl-c
will quit emacs in terminal not zed)alt-;
Toggle Commentsalt-^
Join Linesctrl-/
Undoalt-.
GotoDefinition and alt-,
GoBackalt-<
/ alt->
Goto End/Beginning of Bufferalt-g g
or alt-g alt-g
Goto Line Numberctrl-x h
SelectAllctrl-x b
Switch Tabsctrl-g
Menu::cancelctrl-x 5 0
CloseWindowctrl-x 5 2
as workspace::NewWindow {
"context": "Workspace",
"bindings": {
"alt-z": ["app_menu::OpenApplicationMenu", "Zed"],
"alt-f": ["app_menu::OpenApplicationMenu", "File"],
"alt-e": ["app_menu::OpenApplicationMenu", "Edit"],
"alt-s": ["app_menu::OpenApplicationMenu", "Selection"],
"alt-v": ["app_menu::OpenApplicationMenu", "View"],
"alt-g": ["app_menu::OpenApplicationMenu", "Go"],
"alt-w": ["app_menu::OpenApplicationMenu", "Window"],
"alt-h": ["app_menu::OpenApplicationMenu", "Help"]
}
}
cmd-shift-e
/ ctrl-shift-e
) so it works in more contexts (#22713).#[test]
attribute (#22823; thanks RemcoSmitsDev).settings.json
is a symlink (#22660; thanks 0xtimsb.TERM
from the parent environment (#22615; thanks JuliusDeBoer).blur_radius
of 0 would not render (#22441).zed
cli crash (ScreenCaptureKit
library not loaded) on older macOS versions (#22515; thanks huacnlee).robotgo
failing when Zed window is open on Linux (#22348; thanks 0xtimsb).OpenFile
action to OpenSelectedFilename
for clarity (#22494).<tab>
at start of line when an inline completion (Copilot, Supermaven, ...) is visible. If the cursor is before the suggested indentation, <tab>
now indents the line instead of accepting the visible completion. (#22892).0.168.3
01/13/2025
0.168.2
01/08/2025
<!--
and -->
for Markdown files (#22352; thanks Rusydy).workspace::ToggleRightDock
open the assistant panel if no right-dock panel has yet been activated (#22346).cmd-n
now opens a new terminal instead of a new file (#22253).cmd-k e
/ cmd-k t
(macOS) or ctrl-k e
/ ctrl-k t
(Linux) (#22402).OpenAI o1
model (non-preview) in GitHub Copilot Chat (#22376; thanks chirpcel).using
(#22479; thanks jaydenseric).zls
renames applying duplicate edits (#22512).zls
not working properly when typos
extension is installed (#22511).terminal::ToggleViMode
action which is bound by-default to ctrl-shift-space
(#22103; thanks agomezl).
) and macro playback of insertions in diagnostics and assistant (#22210).d(
and d)
), which would previously delete the whole line instead of just a sentence. (#22289)*
and #
vim bindings) (#22213).Failed to start language server
errors when starting from dekstop entry on Linux (#22335; thanks 0xtimsb).0.167.2
01/06/2025
0.167.1
01/01/2025
.prettierignore
support to the Prettier integration (#21297; thanks 0xtimsb)MoveItemToPane
and MoveItemToPaneInDirection
actions (#21760; thanks Igonato).editor::OpenUrl
to also handle the selected portion of a URL (#21825; thanks 0xtimsb).// Assuming you have a task labeled "echo hello"
"ctrl--": ["task::Spawn", { "task_name": "echo hello", "target": "center" }]
<shift-tab>
and the active entry in the completion menu with <tab>
(#21858, #22069, #22077, #22093)..pyx
, .pxd
and .pxi
files (#22053; thanks lgeiger).Editor::DuplicateSelection
action. Bound to cmd-d
/ ctrl-d
in JetBrains/SublimeText keymaps (#21154 and #21976; thanks CharlesChen0823)Editor && selection
context for keybindings that are active when there is a text selection (#21927; thanks ozanmakes).ToggleRegex
action (macos: cmd-alt-x
, linux: ctrl-alt-x
) for buffer search (#21799; thanks CharlesChen0823):g/<pattern>/<cmd>
and :v/<pattern>/<cmd>
(#22177)<esc>
(#22075).ctrl-a
/ ctrl-e
/ home
/ end
behavior (#21923)ctrl-s
/ ctrl-r
/ ctrl-g
for navigating buffer search results (#21923)hover_popover_delay
to control the delay before showing hover boxes (#22006; thanks AaronFeickert).lsp_highlight_debounce
to configure delay for querying highlights from language server (#21702; thanks xzbdmw).horizontal_scroll_margin
and scrollbar.axis
settings (#19495; thanks frqubit).max_tabs
to limit the maximum number of open tabs (#18933; thanks BuonOmo).task::Spawn
sort order so project tasks are shown first. (#21706; thanks IViktorov).Failed to run direnv
messages showing up in case Zed restored a window that contained a worktree with a single file (#22246.0.166.2
01/01/2025
Failed to run direnv
messages showing up in case Zed restored a window that contained a worktree with a single file. https://github.com/zed-industries/zed/issues/219720.166.1
12/18/2024
left_neighbour
option to the tabs.activate_on_close
setting to activate the left adjacent tab on tab close (#21800; thanks MrSubidubi).show_completions_on_input
and show_completion_documentation
per-language settings. These settings were available before, but were not configurable per-language (#21722).editor: insert uuid v4
and editor: insert uuid v7
actions for inserting generated UUIDs into the editor (#21656)."project_panel": {"show": "always"}
) to display error and warning indicators in tabs (#21383; thanks nilskch).editor::OpenContextMenu
action to open context menu at current cursor position (#21494).*.C
and *.H
(uppercase) to be recognized as C++ (#21647; thanks budde25).context
and suite
methods for mochajs framework (#21719; thanks RemcoSmitsDev).[ c
& ] c
to select prev/next git modified file within the project panel (#20941; thanks Anthony-Eid).[ d
& ] d
to select prev/next file with diagnostics from an LSP within the project panel (#20941; thanks Anthony-Eid).{
& }
to select prev/next directory within the project panel (#20941; thanks Anthony-Eid).musl
dependency required to build from source on ArchLinux (#21830; thanks connortsui20).completion_documentation_secondary_query_debounce
setting, which is now deprecated (#21716).cmd-escape
could act like .
(#21667).panel.background
color was not used in the file tree (#21559; thanks nilskch).editor::ShowInlineCompetion
is now option-tab
on macOS (not option-/
). editor::{Next,Previous}Completion
are option-tab
and option-shift-tab
(not option-[
and option-]
). This fixes typing characters generated by option-{/,[,]} on keyboards like Croatian (#21669)."use_layout_keys": true
is now the default. If you want to opt-out of this behaviour, set "use_key_equivalents": true
to have keys mapped for your keyboard (#21662). See documentation.0.165.4
12/11/2024
zed --uninstall
via the CLI binary (#21213; thanks WeetHet).completionItem/resolve
calls done in the completion menu (#21286).autoscroll_on_clicks
to configure this behavior. (#20287; thanks haruleekim)Trash
action for remote projects. (#21300; thanks Moshyfawn)show_user_picture
setting (default: true) to allow users to hide their profile picture in titlebar (#21526).editor::FoldFunctionBodies
action to fold all function bodies (textobject languages only) (#21504).pcss
files are now recognized as CSS (#21402; thanks MrSubidubi)==
indent line (#21490)highlight_on_yank
or highlight_on_copy
(#21479; thanks RustyDev24).[[
, []
, ]]
, ][
for navigating by section, [m
, ]m
, [M
, ]M
for navigating by method, and [*
, ]*
, [/
, ]/
for comments. These currently only work for languages built in to Zed, as they are powered by new tree-sitter queries (#20924).ic
, ac
for inside/around classes, if
,af
for functions/methods, and g c
for comments. These currently only work for languages built in to Zed, as they are powered by new tree-sitter queries (#20924).multi_cursor_modifier
is cmd_or_ctrl
(#20949; thanks remixz).0.164.2
12/04/2024
file_scan_inclusions
setting to force Zed to index files that match the provided globs, even if they're gitignored (#16852; thanks Hawkbawk).show_summary
/ show_command
(#20920; thanks omennia).ctrl-k
/ ctrl-y
alternate cut/yank buffer on macOS (#21003).string.doc
python syntax highlighting to class and module-level docstrings. (#20486; thanks clwainwright)=
operator, for auto-indent (#21427)ctrl-w _
and ctrl-w =
(#21227).ctrl-w {+,-,>,<}
for resizing the current pane (#21038; thanks AidanV).]}
, ])
, [{
and [(
(#21098; thanks helgemahrt).vii
, vai
and vaI
for selecting indent-text-object
(#21121; thanks vultix).:
on the welcome screen (#20937)dia
to mean "delete in argument" instead of "delete within angle brackets". (#20918)
To keep this in your own keymap use:
{
"context": "vim_operator == a || vim_operator == i || vim_operator == cs",
"use_layout_keys": true,
"bindings": {
"a": "vim::AngleBrackets"
}
}
code_actions_on_format
setting when used with a language server like ZLS (#20847; thanks Techatrix).ctrl-home
/ ctrl-end
(MoveToBeginning
, MoveToEnd
) (#21007).cmd-shift-\
(cmd-|
) not working for MoveToEnclosingBracket (#21207).pane::RevealInProjectPanel
/ project_panel::ToggleFocus
) to better my VSCode behavior (#21228).always_treat_brackets_as_autoclosed
enabled. (#21482)0.163.3
12/02/2024
0.163.2
11/27/2024
editor: open docs
action to open links to documentation via rust-analyzer (#19233; thanks wanlufun)."file_finder": {
"modal_width": "medium"
},
editor::SelectAllMatches
compatibility bind (find_all_under
). Mac: ctrl-cmd-g
and Linux: alt-f3
(#20866)..env.*
files as Shell Scripts by default (#20429).ui-density
(#19076; thanks Aaron-212).{"assistant": {"show_hints": false}}
) (#20824).:<range>cpplink
to copy a permanent git link to the highlighted range to the clipboard (#20707).%
to jump between pairs of tags (#20536; thanks hrou0003).ctrl-o
in insert mode to enter temporary normal mode (#19454; thanks axelcarl).function.definition
matches the highlight for e.g. rust, function.call
is new (thanks clwainwright).@
symbol is punctuation, and now the decorator itself has a function.decorator
tag) (thanks clwainwright).cls
a special variable (like self
) (thanks clwainwright).ellipsis
as a built-in constant (thanks clwainwright).?
and :
in ternary expressions as operator (#20573; thanks Huliiiiii).low_speed_timeout
setting from LLM provider settings, since it was only used to increase the timeout to give LLMs more time, but since we don't have any other use for it, we simply remove the setting to give LLMs as long as they need (#20681).