Commit log

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

Alex Viscreanu created

c9bf407 Avoid optional on select_match

Conrad Irwin created

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

Julia created

a4bf19c Simplify NoAction filtering logic

Click to expand commit body
co-authored-by: Max Brunsfeld <max@zed.dev>

Kirill Bulatov and Max Brunsfeld created

4cc0674 Ignore keybindings with NoAction in config overrides

Kirill Bulatov created

f887a17 Merge branch 'main' into vim-search

Conrad Irwin created

dd6b674 Remove dbg calls

Piotr Osiewicz created

8642a1d Remove dbg! calls

Piotr Osiewicz created

ee9123a Remove test

Piotr Osiewicz created

5b6582a rustfmt

Piotr Osiewicz created

6c7a6d4 Cargo fix

Piotr Osiewicz created

94796e9 Set language id for PHP. LSP works!

Piotr Osiewicz created

965cc2e Fix a crash in tree-sitter-php

Piotr Osiewicz created

11173b2 Merge branch 'main' into piotr/z-2588-php

Piotr Osiewicz created

dc557e1 Add scaffolding of php language server

Piotr Osiewicz created

f5eac82 Reload menu after keybindings change

Kirill Bulatov created

eaa8224 Use id instead of type_id for actions

Click to expand commit body
Currently, both are the same thing, so the logic is not changed.

Kirill Bulatov created

10a1df3 Fix fold indicator active hover style (#2731)

Click to expand commit body
Release Notes:

- Fix: adjusted fold indicator styles

Mikayla Maki created

419cbcb Fix fold indicator active hover style

Mikayla Maki created

f24001c Simplify db tests (#2730)

Click to expand commit body
The open_db function I wrote was doing far more than it needed to to
preserve the database and it was doing it badly. It no longer does all
of that.

Mikayla Maki created

322ebc3 Simplify db tests

Mikayla Maki created

4d91409 Require only a single click to split pane when using cmd in project panel (#2729)

Click to expand commit body
Release Notes:

- N/A

Joseph T. Lyons created

c3e8ea3 Require only a single click to split pane when using cmd in project panel

Joseph T. Lyons created

dcc2cd8 Optimize two slow code paths (#2728)

Click to expand commit body
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

Max Brunsfeld created

031172d file/symbol navigation modifiers (#2727)

Click to expand commit body
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.

Piotr Osiewicz created

cde5b39 Select all matches (#2717)

Click to expand commit body
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

Max Brunsfeld created

b14cd5f Add a new button for the action

Kirill Bulatov created

ccc7800 Preserve serach index for multicaret selection editor events

Kirill Bulatov created

c130dd6 Add styles for an `action_button` ahead of the "Select all matches" UI button

Nate Butler created

f710efc Use a better name

Kirill Bulatov created

2053418 Use VSCode-like shortcuts by default

Kirill Bulatov created