5360c0e
theme_importer: Make VS Code theme parsing more lenient (#7292)
Click to expand commit body
This PR updates the `theme_importer` to use `serde_json_lenient` to
parse VS Code themes.
This should allow us to parse themes that have trailing commas and such,
in addition to the comment support that we already had.
Release Notes:
- N/A
Marshall Bowers
created
3995c22
Use async-native-tls for websockets (#7254)
Click to expand commit body
This change switches from using async_tungstenite::async_tls to
async_tungstenite::async_std with the async-native-tls feature.
The previous feature, async_tls, used async-tls which wraps rustls.
rustls bundles webpki-roots, which is a copy of Mozilla's root
certificates. These certificates are used by default, and manual
configuration is required to support custom certificates, such as those
required by web security gateways in enterprise environments.
Instead of introducing a new configuration option to Zed,
async-native-tls integrates with the platform-native certificate store
to support enterprise environments out-of-the-box. For MacOS, this adds
support for Security.framework TLS. This integration is provided through
openssl-sys, which is also the SSL certificate provider for isahc, the
library underlying Zed's HTTP client. Making websockets and HTTP
communications use the same SSL provider should keep Zed consistent
operations and make the project easier to maintain.
Release Notes:
- Fixed WebSocket communications using custom TLS certificates
([#4759](https://github.com/zed-industries/zed/issues/4759)).
James Roberts
created
659423a
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
This change makes it so that if you are the first to join a channel,
your project is automatically shared.
It also makes it so that if you join a channel via a link and there are
no shared projects, you open the notes instead of an empty workspace
with nothing.
This is to try and address the discoverability of project sharing: we've
had
two reviews that have talked about channels, but not talked about
sharing
projects into them, which makes me suspect they didn't know about the
feature.
Release Notes:
- Added a setting `share_on_join` (defaulting to true). When set, and
you join an empty channel, your project is automatically shared.
Conrad Irwin
created
6f6cb53
Tweak pull request template to (hopefully) make it clearer (#7287)
Click to expand commit body
I keep seeing people leave the wrapping parentheses, like `(Added)` in
their release notes.
This PR tries making it clearer that we only want *one* of "Added",
"Fixed", or "Improved".
Release Notes:
- N/A
Marshall Bowers
created
3d76ed9
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
Fixes the padding of the "notes" button in collab-ui. I'm not sure why
the previous code used `div().h_7().w_full()`. Am I missing something
here?
### Before

### After

Release Notes:
- Fixed padding of the "notes" button in the collaboration panel.
Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
Bennet Bo Fenner
and
Marshall Bowers
created
bacb2a2
Add more data into LSP header parsing error contexts (#7282)
Click to expand commit body
Follow-up of https://github.com/zed-industries/zed/pull/6929
Release Notes:
- N/A
Kirill Bulatov
created
33e5ba6
Revert "Add YAML file type icon (#7185)" (#7286)
Click to expand commit body
This PR reverts the addition of the YAML icon, as it doesn't look good
at the moment:
<img width="305" alt="Screenshot 2024-02-02 at 10 55 16 AM"
src="https://github.com/zed-industries/zed/assets/1486634/2fe2ddd5-5b73-4c52-a121-562d07352005">
This reverts commit a853a80634149ad5d069c48c4a0ece0bd584b5b1.
Release Notes:
- N/A
Marshall Bowers
created
11bd288
editor: Add MoveUpByLines and MoveDownByLines actions (#7208)
Click to expand commit body
This adds four new actions:
- `editor::MoveUpByLines`
- `editor::MoveDownByLines`
- `editor::SelectUpByLines`
- `editor::SelectDownByLines`
They all take a count by which to move the cursor up and down.
(Requested by Adam here:
https://twitter.com/adamwathan/status/1753017094248018302)
Example `keymap.json` entries:
```json
{
"context": "Editor",
"bindings": [
"alt-up": [ "editor::MoveUpByLines", { "lines": 3 } ],
"alt-down": [ "editor::MoveDownByLines", { "lines": 3 } ],
"alt-shift-up": [ "editor::SelectUpByLines", { "lines": 3 } ],
"alt-shift-down": [ "editor::SelectDownByLines", { "lines": 3 } ]
]
}
```
They are *not* bound by default, so as to not conflict with the
`alt-up/down` bindings that already exist.
Release Notes:
- Added four new actions: `editor::MoveUpByLines`,
`editor::MoveDownByLines`, `editor::SelectUpByLines`,
`editor::SelectDownByLines` that can take a line count configuration and
move the cursor up by the count.
### Demo
https://github.com/zed-industries/zed/assets/1185253/e78d4077-5bd5-4d72-a806-67695698af5d
https://github.com/zed-industries/zed/assets/1185253/0b086ec9-eb90-40a2-9009-844a215e6378
Thorsten Ball
created
01ddf84
completions: do not render empty multi-line documentation (#7279)
Click to expand commit body
I ran into this a lot with Go code: the documentation would be empty so
we'd display a big box with nothing in it.
I think it's better if we only display the box if we have documentation.
Release Notes:
- Fixed documentation box in showing up when using auto-complete even if
documentation was empty.
## Before

## After

This pull request implements support for the [OCaml
Language](https://ocaml.org/).
### Additions
- [x]
[tree-sitter-ocaml](https://github.com/tree-sitter/tree-sitter-ocaml)
grammar
- [x] Highlight, Indents, Outline queries
- [x] A new file icon for .ml(i) files. Based on
[ocaml/ocaml-logo](https://github.com/ocaml/ocaml-logo/blob/master/Colour/SVG/colour-transparent-icon.svg)
- [x] LSP Integration with
[ocaml-language-server](https://github.com/ocaml/ocaml-lsp)
- [x] Completion Labels
- [x] Symbol Labels
### Bug Fixes
- [x] Improper parsing of LSP headers.
### Missing [will file a separate issue]
- Documentation on completionItem, requires: `completionItem/resolve`
with support for `documentation` as a provider.
### Screenshots
<details><summary>Zed</summary>
<img width="1800" alt="Screenshot 2024-02-01 at 03 33 20"
src="https://github.com/zed-industries/zed/assets/69181766/e17c184e-203e-40c3-a08f-4de46226b79c">
</details>
Release Notes:
- Added OCaml Support
([#5316](https://github.com/zed-industries/zed/issues/5316)).
> [!NOTE]
> Partially completes #5316
> To complete #5316:
> 1. addition of a reason tree-sitter grammar.
> 2. opam/esy integration, however it may be better as it's own plugin.
Rashid Almheiri
created
980d4f1
Add inline code blocks in markdown preview (#7277)
Click to expand commit body
Fixes #7236.
The reason why the code was not displayed correctly is due to missing
background color for the inline code block.
Previously to this PR:
<img width="1840" alt="SCR-20240202-mclv"
src="https://github.com/zed-industries/zed/assets/67913738/92f63e72-db86-4de9-bb42-40549679e159"
alt="Screenshot showing that inline code blocks are not highlighted in
Markdown preview">
After this PR:
<img width="1796" alt="SCR-20240202-mccs"
src="https://github.com/zed-industries/zed/assets/67913738/5cf039af-82d7-41b8-b461-f79dec5ddf6a"
alt="Screenshot showing that inline code blocks are now highlighted in
Markdown preview">
Release Notes:
- Fixed inline code block not shown in markdown preview
([#7236](https://github.com/zed-industries/zed/issues/7236)).
Robin Pfäffle
created
79c1003
go: fix highlighting of brackets, variables, fields (#7276)
Click to expand commit body
This changes the highlighting of Go code to make it more similar to how
we highlight Rust
* normal variables have the normal color, vs. being highlighted. This
really stuck out.
* brackets are properly highlighted
It also brings it closer to Neovim's tree-sitter highlighting by
changing how struct fields are highlighted.
Release Notes:
- Improved highlighting of Go code by tuning highlighting of variables,
brackets, and struct fields.
## Before & After

Thorsten Ball
created
d576cda
project: Do not inline LSP related methods
Click to expand commit body
The way Rust generics works, having a generic argument puts the burden of codegen on the crate that instantiates a generic function, which in our case is an editor.
Piotr Osiewicz
created
10cd978
go: improve outline queries to get rid of whitespace (#7273)
Click to expand commit body
This changes the Go `outline.scm` queries a bit so that we don't have
these stray whitespaces floating around. I'm sure there's more
improvements possible, but for now I think this makes it look less
wrong.
Release Notes:
- Improved outline and breadcrumbs for Go code.
## Before

## After

This PR implements support for displaying diagnostics in the scrollbar,
similar to what is already done for search results, symbols, git diff,
...
For example, changing a field name (`text`) without changing the
references looks like this in `buffer.rs` (note the red lines in the
scrollbar):

As you can see, the errors, warnings, ... are displayed in the scroll
bar, which helps to identify possible problems with the current file.
Relevant issues: #4866, #6819
Release Notes:
- Added diagnostic indicators to the scrollbar
Bennet Bo Fenner
created
2940a0e
Revert "Avoid excessive blocking of main thread when rendering in direct mode (#7253)" (#7272)
Click to expand commit body
This reverts commit 020c38a8916c063cba36c2c88a69b5e287269d5a because it
leads to glitches when selecting text.
https://github.com/zed-industries/zed/assets/1185253/78c2c184-bc15-4b04-8c80-a23ca5c96afa
Release Notes:
- N/A
Thorsten Ball
created
8fed9aa
Fix project panel selection related issues (#7245)
Click to expand commit body
Fixes #7003 and #7005.
Selecting as a reaction to actually opening a new item doesn’t seem
robust in all cases, the PR improves that.
Release Notes:
- Fixed missing project panel file selection in certain cases
Release Notes:
- Added outline support for Markdown files
- Added the ability to link to channel notes:
https://zed.dev/channel/zed-283/notes#Roadmap
Conrad Irwin
created
b35a722
Add missing secret in release nightly workflow
Max Brunsfeld
created
020c38a
Avoid excessive blocking of main thread when rendering in direct mode (#7253)
Click to expand commit body
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: Nathan Sobo <nathan@zed.dev>
Max Brunsfeld
,
Antonio Scandurra
, and
Nathan Sobo
created
21f4da6
Correctly log LSP adapter name on LSP request error (#7232)
Click to expand commit body
Previously, we were logging the language server's binary filename
instead.
Release Notes:
- N/A
Co-authored-by: Nathan <nathan@zed.dev>
Co-authored-by: Antonio <antonio@zed.dev>
Max Brunsfeld
,
Nathan
, and
Antonio
created
da44f63
Order history items by open recency (#7248)
Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/7244
Follow-up of https://github.com/zed-industries/zed/pull/7210 that
returns back ordering of history items by open recency (last opened
history item should be on top)
Release Notes:
- N/A
---------
Co-authored-by: Andrew Lygin <alygin@gmail.com>
After this change we'll be able to push a tag to github to deploy to
collab.
The advantages of this are that there's no longer a separate step to
first
build the image, and then deploy it.
In the future I'd like to make this happen more automatically (maybe as
part of
bump nightly).
Release Notes:
- N/A
Conrad Irwin
created
5424c8b
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.

Release Notes:
- Improved rendering performance.