I did \*something\* Friday afternoon which changed something about my
system SDK to break the `media` crate's bindings generation. Some of the
types and consts were not being generated despite being able to prove
that they exist in the source, such as when running the header through
the preprocessor myself and feeding that through the generator. Updating
my OS, XCode, command line tools, and reinstalling Rust as well as
working from fresh clones of the repo had no effect.
Updating rust-bindgen resolved the issue and downgrading the version
back to the original version caused the issue to reappear. I'm still not
sure what happened to change the SDK but at this point with being able
to build the project again I'm not going to look a gift horse in the
mouth.
Release Notes:
- N/A
* Add an `identifying_backtrace` field that only contains symbols in
*our* own codebase, which can be used for better deduplication.
* In the main backtrace, include file and line numbers for all symbols
in our codebase
* Exclude any stack frames within the panic handling/hooking system
itself, so that the top line of the backtrace is where the panic
originated in our codebase.
This should improve our panic deduplication, and also make panic reports
a bit more readable.
example:
```
{
"thread": "main",
"payload": "wtf",
"location_data": {
"file": "crates/zed/src/zed.rs",
"line": 459
},
"backtrace": [
"zed::open_log_file::{{closure}}::{{closure}}::{{closure}}",
" crates/zed/src/zed.rs:459",
"gpui::app::AppContext::spawn_internal::{{closure}}",
" crates/gpui/src/app.rs:2073",
"gpui::executor::any_local_future::{{closure}}",
" crates/gpui/src/executor.rs:1026",
"<core::pin::Pin<P> as core::future::future::Future>::poll",
"<async_task::runnable::spawn_local::Checked<F> as core::future::future::Future>::poll",
"async_task::raw::RawTask<F,T,S>::run",
"async_task::runnable::Runnable::run",
"<gpui::platform::mac::dispatcher::Dispatcher as gpui::platform::Dispatcher>::run_on_main_thread::trampoline",
" crates/gpui/src/platform/mac/dispatcher.rs:40",
"<() as objc::message::MessageArguments>::invoke",
"objc::message::platform::send_unverified",
"objc::message::send_message",
"<gpui::platform::mac::platform::MacForegroundPlatform as gpui::platform::ForegroundPlatform>::run",
" crates/gpui/src/platform/mac/platform.rs:366",
"gpui::app::App::run",
" crates/gpui/src/app.rs:251",
"Zed::main",
" crates/zed/src/main.rs:118",
"core::ops::function::FnOnce::call_once",
"std::sys_common::backtrace::__rust_begin_short_backtrace",
"std::rt::lang_start::{{closure}}",
"core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once",
"std::rt::lang_start"
],
"release_channel": "dev",
"os_name": "macOS",
"os_version": "12.6.1",
"architecture": "aarch64",
"panicked_on": 1685734744050,
"identifying_backtrace": [
"zed::open_log_file::{{closure}}::{{closure}}::{{closure}}",
"gpui::app::AppContext::spawn_internal::{{closure}}",
"gpui::executor::any_local_future::{{closure}}",
"<gpui::platform::mac::dispatcher::Dispatcher as gpui::platform::Dispatcher>::run_on_main_thread::trampoline",
"<gpui::platform::mac::platform::MacForegroundPlatform as gpui::platform::ForegroundPlatform>::run",
"gpui::app::App::run",
"Zed::main"
]
}
```
Release Notes:
N/A
* Add an 'identifying_backtrace' field that only contains symbols in our
codebase, which can be used for better deduplication.
* In the main backtrace, include file and line numbers for all symbols
in our codebase
For whatever reason, the optimizations of panes and workspace have
caused the terminal to notify less often then it should. This PR fixes
that oversight.
The files will still get created if the user opens their settings and
saves, otherwise everything will transparently work
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
This PR allows you to customize Zed's settings within a particular
folder by creating a `.zed/settings.json` file within that folder.
Todo
* [x] respect folder-specific settings for local projects
* [x] respect folder-specific settings in remote projects
* [x] pass a path when retrieving editor/language settings
* [x] pass a path when retrieving copilot settings
* [ ] update the `Setting` trait to make it clear which types of
settings are locally overridable
Release Notes:
* Added support for folder-specific settings. You can customize Zed's
settings within a particular folder by creating a `.zed` directory and a
`.zed/settings.json` file within that folder.
This PR updates the dock key bindings according to the following model:
There are three bits:
Visible: Opened / closed.
Focus: Panel focused / center focused.
Zoom: Zoomed / Not zoomed.
Each of these variables is 'sticky' in that they won't effect each other
unless they need to. 'Zooming' a panel conceptually merges the visible
and focus bits.
cmd-shift-j/b/r have all been removed.
cmd-j/b/r have been updated to mean 'toggle visibility of a certain
dock', firing them should *always* reveal the panel to you (where you
last left it), or hide it, without moving focus (unless the focused
element is invisible). This means that, when the terminal panel is
zoomed, cmd-j has the same effect as ctrl-`
ctrl-` and cmd-shift-e now toggle a panel's focus, without updating the
zoom state of a panel. Toggling the focus of a zoomed panel causes it to
automatically hide itself, without losing the zoom bit.
When focused or made visible, panels which cannot be zoomed
automatically unzoom everything else so as to preserve user intent of
'show me this panel' and 'everything stays where it is if I don't take
an action'
Release Notes:
- cmd-shift-j/b/r have been removed. (preview only)
- cmd-j/b/r unconditionally show or hide their associated dock,
respecting zoom settings. (preview only)
- ctrl-` and cmd-shift-e now retain zoom state. (preview only)
- Fixed a bug where terminal dock tab would always be in the active
state (preview only)
- Fixed a bug where terminals would not always open in the terminal
panel
- Changed the look of zoomed panels to fill more of the screen (preview
only)
Rather than assuming a specific family exists, try a set of specific
names and if they fail, just grab any old font that the system reports
as existing
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
* ESC (project_search::ToggleFocus) toggles focus from
include/exclude fields to the editor
* Cmd+Shift+F (workspace::NewSearch) can be triggered from the editor,
and moves focus to the query editor
This PR makes the worktree's change events more useful in a few ways:
* The changes are now described by a cheaply clone-able collection, so
that they can be used in background tasks. Right now, I'm using a simple
Arc slice.
* The `UpdatedEntries` event now captures not only changes due to FS
changes, but also newly-loaded paths that are discovered during the
initial scan.
* The `UpdatedGitRepositories` event now includes repositories whose
work-dir changed but git dir didn't change. A boolean flag is included,
to indicate whether the git content changed.
* The `UpdatedEntries` and `UpdatedGitRepositories` events are now
*used* to compute the worktree's `UpdateWorktree` messages, used to sync
changes to guests. This unifies two closely-related code paths, and
makes the host more efficient when collaborating, because the
`UpdateWorktree` message computation used to require walking the entire
`entries` tree on every FS change.