1a8bfdf
feat(workspace): add option for moving the tab close button to the left (#2739)
Click to expand commit body
Fixes https://github.com/zed-industries/community/issues/1760
Release Notes:
- Add option for chosing where the close button should be displayed on
editor tabs
Mikayla Maki
created
ede86a6
Prevent multiple submissions of the same feedback text
Click to expand commit body
Co-Authored-By: Julia <30666851+ForLoveOfCats@users.noreply.github.com>
Joseph T. Lyons
and
Julia
created
4efcf49
feat(workspace): add option for moving the tab close button to the left
Alex Viscreanu
created
04625fe
feat(workspace): show git status on editor tabs (#2736)
Click to expand commit body
Fixes https://github.com/zed-industries/community/issues/1674
Release Notes:
- Added option for showing git status on editor tabs
Mikayla Maki
created
6793d4b
feat(workspace): show git status on editor tabs
fef73ae
Make macOS application menu aware of which key bindings are disabled (#2735)
Click to expand commit body
Follow-up of https://github.com/zed-industries/zed/pull/2678
Deals with https://github.com/zed-industries/community/issues/772
Refreshes macOs menu panel on keymap file change and properly ignore
disabled actions.
Release Notes:
- Fixes a bug when disabled actions from macOs menu were still working
Max Brunsfeld
created
3e13694
After first panic, ignore others and tear down process even if in thread (#2725)
Click to expand commit body
Spent a bit in a deep dive into how to handle this and honestly the
situation is rather unfortunate. The core problem is that when we have a
panic anywhere we need to tear down the app, and we'd like to do that as
cleanly as possible, avoiding throwing any other panics along the way if
possible.
We've been seeing a number of panics being reported which are
nonsensical, seemingly pointing to being a fallout panic from a worker
thread panic-ing, at which point we would write multiple panics to the
panic file, and we could possibly upload either both or the wrong panic
causing a wild goose chase. Unfortunately I've been entirely unable to
reproduce the specific panic we've been seeing but I was able to read
through the code responsible and confirm that under specific situations
a panic on one worker can cause another worker or the main thread to
also panic.
An easy solution to this is just to ignore any panics after the first
one. I'm thinking that *hopefully* we can trust the first panic to reach
the panic hook first so that the flag doesn't accidentally filter out
the panic we actually care about.
That being said we were expecting that to have already been the case
about which panic gets written to the panic file first, the first one in
the file being the one we upload, which doesn't seem to have been the
case. I'm hoping it was IO silliness causing that and that the flag
shouldn't be race-y, however this is still a shot in the dark. 🤞
As for cleanly shutting down, there's not really much we can do. One
thread physically cannot cause another to unwind without somehow sending
a message which isn't super useful. The only way for a thread to shut
down all threads and the process is to go nuclear and abort/exit the
process. This will never unwind other threads, effectively having the
same effect on those threads as compiling with `panic = "abort"` would.
With some (mis)use of `std::panic::resume_unwind` we can at least say
that for whatever thread actually panic-ed we will unwind, and any other
threads that panic as a result will probably get at least partway
through unwinding. This is weird, almost a combination of panic
rewinding and aborting, and may actually be worse than just biting the
bullet and aborting immediately.
I'm really not a fan of where I've ended up but it does seem to at the
very least an improvement. The main question in my mind at this point is
whether it would be better to attempt to unwind what we can or go all in
on abort. I'd love some input on that.
Release Notes:
- Improved panic reporting when a background thread panics.
Julia
created
6770aee
After first panic, ignore others and tear down process even if in thread
Linear:
https://linear.app/zed-industries/issue/Z-2578/zed-launches-very-slow-for-user
I was searching for the cause of a slow startup time reported in the
above issue, and I don't think I found it, but I did find two very
noticeable slow code paths while profiling, and fixed them.
### Notes
1. When starting the JSON language server, we provide it with a JSON
schema for our settings. For the `theme` setting, the JSON schema needs
to read all of the themes in the registry, to generate a list of valid
theme names. Previously, as part of this, we were deserializing each
theme from JSON, which took a lot of CPU. Now, we don't do that.
2. When an FS event occurs within a git repository, we reload the git
status for all entries in that git repository. Previously, we did that
via a separate `libgit2` call per FS entry (including ignored entries,
so many thousands in the case of the `zed` repo). Now we do one
`libgit2` call, asking for all of the statuses. Git carries an index of
all of the files with statuses, so this is fast.
Release Notes:
- Improved the the performance of starting up a JSON language server.
- Improved the performance of handling changes to git repositories, such
as changing branches or committing.
Max Brunsfeld
created
b9e0074
Perform only one git statuses call when reloading a git repo after it changes
Max Brunsfeld
created
c69d0d5
Avoid deserializing all themes to compute settings JSON schema
Fixes https://github.com/zed-industries/community/issues/54
Release Notes:
- Added modifiers for opening files and symbols on a split
- Added modifiers for navigating to definition and type definitions on a
split
Alex Viscreanu
created
c0b2326
fix(flexes): reset flexes when collapsing axis
Click to expand commit body
Co-authored-by: Mikayla Maki <mikayla@zed.dev>
Alex Viscreanu
and
Mikayla Maki
created
c766931
feat(workspace): allow alternative actions to open files and symbols in split
Click to expand commit body
Co-authored-by: Mikayla Maki <mikayla@zed.dev>
Alex Viscreanu
and
Mikayla Maki
created
369ccc7
branch_list: Bail in case of missing worktrees. (#2726)
Click to expand commit body
Z-2632
Release Notes:
- Fixed a crash that occurred when opening a modal branch picker without
a corktree.
Closes https://github.com/zed-industries/community/issues/75
Closes https://github.com/zed-industries/community/issues/1749
The PR
* changes keybindings for `Editor && mode == auto_height` context:
before, `alt-enter` and `alt-shift-enter` added new lines in such
editors, including the one from buffer search.
New bindings are the same as in `Editor && mode == full` context.
* adds `search::SelectAllMatches` action and binds it to `Alt + Enter`
by default, to select all matches of a buffer search
The behavior mimics VSCode: we do not move the screen even if all
selections are out of the visible range (Cmd+G will navigate there) and
allow reselecting the results from both pane and search field, as long
as the search is not dismissed.
Release Notes:
- Added `search::SelectAllMatches` (`Alt + Enter` default) action to
place carets and select all buffer search results
([#75](https://github.com/zed-industries/community/issues/75),
[#1749](https://github.com/zed-industries/community/issues/1749)).
Kirill Bulatov
created
c6195e6
branch_list: Bail in case of missing worktrees.
Click to expand commit body
Z-2632
Piotr Osiewicz
created
0f54893
Fix syntax map issues that caused bugs in editing HEEx (#2723)
Click to expand commit body
Fixes [Z-2575 : HEEX files are using deprecated commenting
sytle](https://linear.app/zed-industries/issue/Z-2575/heex-files-are-using-deprecated-commenting-sytle)
- Fixed a bug where comment toggling and bracket matching used the wrong
characters in templating languages like ERB and HEEx
([#1724](https://github.com/zed-industries/community/issues/1724)).
- Fixed a bug where interpolated code was sometimes not parsed correctly
within templating languages like ERB and HEEx.
Max Brunsfeld
created
c466711
branch_list: Ensure index is within list bounds. (#2724)
Click to expand commit body
Z-2630
Release Notes:
- Fixed a crash in branch list that occurred when confirming a match in
empty list.
Piotr Osiewicz
created
9c15025
branch_list: Ensure index is within list bounds.
Click to expand commit body
Z-2630
Piotr Osiewicz
created
31720d8
Add randomized syntax map test with elixir within heex within elixir
Max Brunsfeld
created
21e7e35
Include newlines in between combined injection ranges on different lines
Max Brunsfeld
created
2f2ef7c
Use workspace dependencies for tree-sitter grammars
Max Brunsfeld
created
2e23331
Find the layer with the smallest enclosing node in language_scope_at