Commit log

dc78995 zed 0.121.7

Max Brunsfeld created

59b2671 Replace `CADisplayLink` with `CVDisplayLink` (#7583)

Click to expand commit body
Release Notes:

- Fixed a bug that caused Zed to render at 60fps even on ProMotion
displays.
- Fixed a bug that could saturate the main thread event loop in certain
circumstances.

---------

Co-authored-by: Thorsten <thorsten@zed.dev>
Co-authored-by: Nathan <nathan@zed.dev>
Co-authored-by: Max <max@zed.dev>

Antonio Scandurra , Thorsten , Nathan , and Max created

d5a3370 Fix gopls langserver downloads (#7571)

Click to expand commit body
Fixes https://github.com/zed-industries/zed/issues/7534 by not requiring
assets for gopls and vscode-eslint langservers — those two are the only
ones in Zed that do not use assets directly when determining langserver
version and retrieving those.
All other servers deal with assets, hence require those to be present.

The problem with https://github.com/tamasfe/taplo/releases is that they
host multiple binary releases in the same release list, so for now the
code works because only the langserver has assets — but as soon as
another release there gets assets, it will break again.
We could filter out those by names also, but they also tend to change
(and can be edited manually), so keeping it as is for now.

Release Notes:

- Fixed gopls language server downloads
([7534](https://github.com/zed-industries/zed/issues/7534))

Kirill Bulatov created

0a9e34e Testing buf breaking (#7475)

Click to expand commit body
Release Notes:

- N/A

Conrad Irwin created

7894f57 zed 0.121.6

Conrad Irwin created

d1c4fc3 Fix panic! caused by bad utf16 clipping (#7530)

Click to expand commit body
Release Notes:

- Fixed a panic in diagnostics with emojis

**or**

- N/A

Conrad Irwin created

c6ff5c4 Go back to an alacritty release (#7474)

Click to expand commit body
Release Notes:

- N/A

Conrad Irwin created

85dfbe3 Bump alacritty to fix some panics (#7313)

Click to expand commit body
Release Notes:

- Fixed some panics in the Terminal
([#6835](https://github.com/zed-industries/zed/issues/6835)).

Conrad Irwin created

d10588d Prevent terminal being a single column wide (#7471)

Click to expand commit body
Fixes: #2750
Fixes: #7457



Release Notes:

- Fixed a hang/panic that could happen rendering a double-width
character in a single-width terminal
([#2750](https://github.com/zed-industries/zed/issues/2750),
[#7457](https://github.com/zed-industries/zed/issues/7457)).

Conrad Irwin created

3b28b37 zed 0.121.5

Conrad Irwin created

c544ce0 Stop display link when window is occluded (#7511)

Click to expand commit body
Release Notes:

- Fixed a bug that caused the window to become unresponsive after
foregrounding.

---------

Co-authored-by: Conrad <conrad@zed.dev>

Antonio Scandurra and Conrad created

a3a7ae4 v0.121.x stable

Joseph T. Lyons created

ac85440 Attempt to fix random lag (#7506)

Click to expand commit body
Co-Authored-By: Antonio <antonio@zed.dev>
Co-Authored-By: Thorsten <thorsten@zed.dev>
Co-Authored-By: Mikayla <mikayla@zed.dev>

Release Notes:

- N/A

**or**

- N/A

Co-authored-by: Antonio <antonio@zed.dev>
Co-authored-by: Thorsten <thorsten@zed.dev>
Co-authored-by: Mikayla <mikayla@zed.dev>

Conrad Irwin , Antonio , Thorsten , and Mikayla created

f28a4c7 zed 0.121.4

Max Brunsfeld created

824e7e4 Disable extra frames for ProMotion when screen is not active. (#7410)

Click to expand commit body
This was causing an issue where windows about 1/10 of the way across the
display would hang for a fully second after being deactivated.

Release Notes:

- N/A

Co-authored-by: max <max@zed.dev>
Co-authored-by: nathan <nathan@zed.dev>
Co-authored-by: antonio <antonio@zed.dev>

Mikayla Maki , max , nathan , and antonio created

5721dec zed 0.121.3

Antonio Scandurra created

9f90ebd Fix cmd+k in terminal and fix sporadic keybind misses (#7388)

Click to expand commit body
This fixes `cmd+k` in the terminal taking 1s to have an effect. It is
now immediate.

It also fixes #7270 by ensuring that we don't set a bad state when
matching keybindings.

It matches keybindings per context and if it finds a match on a lower
context it doesn't keep pending keystrokes. If it finds two matches on
the same context level, requiring more keystrokes, then it waits.

Release Notes:

- Fixed `cmd-k` in terminal taking 1s to have an effect. Also fixed
sporadic non-matching of keybindings if there are overlapping
keybindings.
([#7270](https://github.com/zed-industries/zed/issues/7270)).

---------

Co-authored-by: Conrad <conrad@zed.dev>
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
# Conflicts:
#	crates/gpui/src/window.rs

Thorsten Ball , Conrad , and Conrad Irwin created

17a529c Scope line layout cache to each window (#7235)

Click to expand commit body
This improves a performance problem we were observing when having
multiple windows updating at the same time, where each window would
invalidate the other window's layout cache.

Release Notes:

- Improved performance when having multiple Zed windows open.

Co-authored-by: Max Brunsfeld <max@zed.dev>
# Conflicts:
#	crates/gpui/src/window.rs

Antonio Scandurra and Max Brunsfeld created

3a0fb0d Mark the window as dirty when first opening it (#7384)

Click to expand commit body
Otherwise we won't display anything if the window never notifies.

Release Notes:

- N/A

Co-authored-by: Nathan <nathan@zed.dev>

Antonio Scandurra and Nathan created

f8bc7fb Use window's screen rather than window itself to start display link

Click to expand commit body
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Julia , Antonio Scandurra , and Nathan Sobo created

a413729 Reintroduce ProMotion support (#7347)

Click to expand commit body
This re-introduces the changes of #7305 but this time we create a
display link using the `NSScreen` associated with the window. We're
hoping we'll get these frame requests more reliably, and this seems
supported by the fact that awakening my laptop restores the frame
requests.

Release Notes:

- See #7305.

Co-authored-by: Nathan <nathan@zed.dev>
# Conflicts:
#	crates/gpui/src/window.rs

Antonio Scandurra and Nathan created

441a21e Remove unnecessary `focus_invalidated` field (#7320)

Click to expand commit body
I believe at some point this was used for tests but it doesn't seem
necessary anymore.

Release Notes:

- N/A
# Conflicts:
#	crates/gpui/src/app.rs

Antonio Scandurra created

234673a Reduce GPU memory usage (#7319)

Click to expand commit body
This pull request decreases the size of each instance buffer and shares
instance buffers across windows.

Release Notes:

- Improved GPU memory usage.

---------

Co-authored-by: Nathan Sobo <nathan@zed.dev>
# Conflicts:
#	crates/gpui/src/platform/mac/window.rs

Antonio Scandurra and Nathan Sobo created

34e846b Use `Mutex` instead of a `RefCell` to acquire/release instance buffers (#7291)

Click to expand commit body
This fixes a panic happening when releasing an instance buffer.
Releasing the buffer happens on a different thread but the borrow
checker was not catching it because the metal buffer completion handler
API doesn't have a `Send` marker on it.

Release Notes:

- N/A

Antonio Scandurra created

889a6e2 Use `command_buffer.wait_until_scheduled` in metal renderer (#7283)

Click to expand commit body
This commit goes back to using `wait_until_scheduled` as opposed to
`wait_until_completed`. What this means, however, is that another draw
could take place before the previous one finished. When that happens we
don't want to reuse the same instance buffer because the GPU is actively
reading from it, so we use a pool instead.

Release Notes:

- Fixed a bug that caused inconsistent frame rate when scrolling on
certain hardware.

---------

Co-authored-by: Antonio Scandurra <me@as-cii.com>
Co-authored-by: Antonio <antonio@zed.dev>

Thorsten Ball , Antonio Scandurra , and Antonio created

21b755a zed 0.121.2

Joseph T. Lyons created

0bf444d Introduce a fast path for drawing quads with no borders / corner radii (#7231)

Click to expand commit body
This will introduce an extra conditional but saves us from doing a bunch
of math in the simple case of drawing simple rectangles that aren't
rounded or don't have borders.


![Figure_1](https://github.com/zed-industries/zed/assets/482957/cba95ce2-2d9a-46ab-a142-35368334eb75)

Release Notes:

- Improved rendering performance.

Antonio Scandurra created

a745e9b zed 0.121.1

Thorsten Ball created

958fbac Filter LSP github releases that have no assets to properly download LSP servers (#7189)

Click to expand commit body
Fixes https://github.com/zed-industries/zed/issues/7183

Release Notes:

- Filter lsp github releases that have no assets ([7189](https://github.com/zed-industries/zed/issues/7183))

Ares Andrew created

bb6c06e assistant: render api key editor if no credentials are set (#7197)

Click to expand commit body
This hopefully reduces confusion for new users. I updated the docs just
this morning, but I figured it's probably better to fix the issue
itself.

So what this does is to render the API key editor whenever the assistant
panel is opened/focused and no credentials can be found.

See: https://github.com/zed-industries/zed/discussions/6943

Release Notes:

- Fixed assistant panel not showing dialog to enter API key when opened
without saved credentials.

---------

Co-authored-by: Piotr <piotr@zed.dev>

Thorsten Ball and Piotr created

2e9f665 Watch the themes directory for changes (#7173)

Click to expand commit body
This PR makes Zed watch the themes directory for changes.

When theme files are added or modified, we reload the theme and apply
any changes to Zed.

Release Notes:

- Added live reloading for the themes directory.

Marshall Bowers created

3fdccaa disallow opening private files (#7165)

Click to expand commit body
- Disallow sharing gitignored files through collab
- Show errors when failing to open files
- Show a warning to followers when view is unshared

/cc @mikaylamaki, let's update this to use your `private_files` config
before merge.


Release Notes:

- Added the ability to prevent sharing private files over collab.

---------

Co-authored-by: Piotr <piotr@zed.dev>
Co-authored-by: Mikayla <mikayla@zed.dev>

Conrad Irwin , Piotr , and Mikayla created

7dd7ecd v0.121.x preview

Joseph T. Lyons created

f98d636 WIP: Add a setting to visually redact enviroment variables (#7124)

Click to expand commit body
Release Notes:

- Added bash syntax highlighting to `.env` files. 
- Added a `private_files` setting for configuring which files should be
considered to contain environment variables or other sensitive
information.
- Added a `redact_private_values` setting to add or remove censor bars
over variable values in files matching the `private_files` patterns.
-(internal) added a new `redactions.scm` query to our language support,
allowing different config file formats to indicate where environment
variable values can be identified in the syntax tree, added this query
to `bash`, `json`, `toml`, and `yaml` files.

---------

Co-authored-by: Nathan <nathan@zed.dev>

Mikayla Maki and Nathan created

5333eff Improve file finder by ignoring spaces in query (#7068)

Click to expand commit body
Release Notes:

- Changed file finder to ignore spaces in queries ([#5324
](https://github.com/zed-industries/zed/issues/5324)).


![image](https://github.com/zed-industries/zed/assets/7274458/14f3d511-129d-4e73-b9d3-12ce1aaa892f)

---------

Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>

Ben Hamment and Marshall Bowers created

135bca2 vim: Make H/M/L work in visual mode (#7166)

Click to expand commit body
Release notes:
- N/A

Conrad Irwin created

5d85801 Add highlighting for go.work (#7142)

Click to expand commit body
<img width="617" alt="image"
src="https://github.com/zed-industries/zed/assets/45585937/ecb28152-db02-450e-bc81-395abd1c1eef">

Release Notes:

- Added  highlighting for go.work

d1y created

ebdabb9 vim: Support counts for `H` and `L` motions (#7149)

Click to expand commit body
Release Notes:

- Added support for counts to `H` and `L` motions
([#4941](https://github.com/zed-industries/zed/issues/4941)).

Vishal Bhavsar created

689d430 Don't panic when collaborating with older Zed versions (#7162)

Click to expand commit body
Older Zed versions may send a buffer id of 0, which is no-longer
supported. (as of #6993)

This doesn't fix that, but it does ensure that we don't panic in the
workspace by maintaining the invariant that from_proto_state returns
Some(Task) if the variant matches.

It also converts the panic to an error should something similar happen
again in the future.


Release Notes:

- N/A

Conrad Irwin created

59f77d3 Use mimalloc as default allocator (#7140)

Click to expand commit body
From https://github.com/microsoft/mimalloc:
> In our benchmarks (see
[below](https://github.com/microsoft/mimalloc#performance)), mimalloc
outperforms other leading allocators (jemalloc, tcmalloc, Hoard, etc),
and often uses less memory. A nice property is that it does consistently
well over a wide range of benchmarks. There is also good huge OS page
support for larger server programs.


Release Notes:

- Changed default allocator to mimalloc.

Ares Andrew created

b7ced39 Add highlighting for git_commit (#7147)

Click to expand commit body
https://github.com/zed-industries/zed/assets/45585937/32cf5622-e960-4775-986d-bcfd30c81098

Release Notes:

- Added highlighting for git_commit

d1y created

39200ec Adjust heading levels in docs (#7163)

Click to expand commit body
This PR adjusts the heading levels in the docs, as some of them weren't
following the right hierarchy.

I also formatted all of the docs with Prettier.

Release Notes:

- N/A

Marshall Bowers created

6e443ac Add PHP file type icon (#7159)

Click to expand commit body
Add PHP file type icon from
[file-icons/icons](https://github.com/file-icons/icons)


[https://github.com/file-icons/icons/blob/master/svg/PHP.svg](https://github.com/file-icons/icons/blob/master/svg/PHP.svg)

<img width="408" alt="Screenshot 2024-01-31 at 23 14 55"
src="https://github.com/zed-industries/zed/assets/44226349/26c3d19d-3a5d-4fc6-b551-f5351ba62b7d">


Release Notes:

- Added PHP file type icon.

Pyae Sone Aung created

5941102 gpui: Add runtime-shaders feature so that Xcode.app is no longer necessary for Nix-based workflows (#7148)

Click to expand commit body
Release Notes:

- N/A

Co-authored-by: Niklas <niklas@niklaskorz.de>

Piotr Osiewicz and Niklas created

8c8a5ad Make theme parsing more lenient (#7154)

Click to expand commit body
This PR improves the theme parsing to be a bit more lenient, allowing
things like comments and trailing commas in theme files.

Release Notes:

- N/A

Marshall Bowers created

7cb97e5 Add debounce for re-querying completion documentation

Julia created

634fe99 Add LSP support for Elm (#7116)

Click to expand commit body
Closes #4595

Release Notes:

- Added LSP support for Elm
([#4595](https://github.com/zed-industries/zed/issues/4595)).

---------

Co-authored-by: Jared M. Smith <absynce@gmail.com>

Andrey Kuzmin and Jared M. Smith created

c3d4fa4 Permalink add Gitee host support (#7134)

Click to expand commit body
China's largest git code hosting platform
About Gitee: https://gitee.com/about_us

Release Notes:

- Added Gitee host support   with Git-Permalink

d1y created

ba91adf languages: add highlighting for go.mod (#7137)

Click to expand commit body
Release Notes:

- Added syntax highlighting for go.mod files. Fixes #7133 

<img width="863" alt="image"
src="https://github.com/zed-industries/zed/assets/8725798/dc521a02-c53a-44aa-b0c1-eebf31835679">

Derrick Laird created

e5fe811 theme_importer: Add ability to print theme JSON schema (#7129)

Click to expand commit body
This PR adds a quick subcommand to the `theme_importer` to facilitate
printing out the JSON schema for a theme.

Note that you do need to pass a `<PATH>` to the subcommand still, even
though it will be ignored. I'll rework the CLI to this at some point.

The JSON schema for the current version of the theme can also be found
at
[`https://zed.dev/schema/themes/v0.1.0.json`](https://zed.dev/schema/themes/v0.1.0.json).

Release Notes:

- N/A

Marshall Bowers created