Commit log

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

9459394 Re-enable language plugin functionality with some fixes (#7105)

Click to expand commit body
Part of https://github.com/zed-industries/zed/issues/7096

* [x] Load all queries for language plugins, not just highlight query
* [x] Auto-reload languages when changing the `plugins` directory
* [x] Bump Tree-sitter for language loading and unloading fixes
* [x] Figure out code signing

Release Notes:

- N/A

---------

Co-authored-by: Antonio <antonio@zed.dev>
Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>

Max Brunsfeld , Antonio , and Marshall Bowers created

db99d4f No more nightly/preview collab anymore (#7112)

Click to expand commit body
Release Notes:

- N/A

Conrad Irwin created

aee0f65 Attempt to fix a panic in worktree scanning (#7128)

Click to expand commit body
Somehow (and this should be investigated separately) we're ending up
with paths that look like: /path/to/project/../../path/to/dependency,
these pass the Ok(repo_path) = path.strip_prefix(), but then fail.

Release Notes:

- Fixed (hopefully) a panic that could occur due to path confusing in
git status

Conrad Irwin created

dbb5fad Fix some formatting issues in `Cargo.toml` files (#7127)

Click to expand commit body
This PR fixes some formatting issues in some of the `Cargo.toml` files.

I tried to fix most of these in #7126, but there were a few that I
missed.

Release Notes:

- N/A

Marshall Bowers created

28f875f Note installation step via Homebrew (#7053)

Click to expand commit body
https://formulae.brew.sh/cask/zed

Zongle Wang created

e338f34 Sort dependencies in `Cargo.toml` files (#7126)

Click to expand commit body
This PR sorts the dependency lists in our `Cargo.toml` files so that
they are in alphabetical order.

This should make them easier to visually scan when looking for a
dependency.

Apologies in advance for any merge conflicts 🙈 

Release Notes:

- N/A

Marshall Bowers created

d97e780 Restrict access to global `Audio` (#7122)

Click to expand commit body
This PR restricts access to the `Audio` global to force consumers to go
through the `Audio` public interface to interact with it.

Release Notes:

- N/A

Marshall Bowers created

176f63e Add ability to copy a permalink to a line (#7119)

Click to expand commit body
This PR adds the ability to copy the permalink to a line from within
Zed.

This functionality is available through the `editor: copy permalink to
line` action in the command palette:

<img width="589" alt="Screenshot 2024-01-30 at 7 07 46 PM"
src="https://github.com/zed-industries/zed/assets/1486634/332282cb-211f-4f16-9eb1-415bcfee9b7b">

Executing this action will create a permalink to the currently selected
line(s) and copy it to the clipboard.

Here is an example line:

```
https://github.com/maxdeviant/auk/blob/56c80e80112744740be1969c89fdd34db4be6f64/src/lib.rs#L25
```

Currently, both GitHub and GitLab are supported.

### Notes and known limitations

- In order to determine where to permalink to, we read the URL of the
`origin` remote in Git. This feature will not work if the `origin`
remote is not present.
- Attempting to permalink to a ref that is not pushed to the origin will
result in the link 404ing.
- Attempting to permalink when Git is in a dirty state may not generate
the right link.
- For instance, modifying a file (e.g., adding new lines) and grabbing a
permalink to it will result in incorrect line numbers.

Release Notes:

- Added the ability to copy a permalink to a line
([#6777](https://github.com/zed-industries/zed/issues/6777)).
- Available via the `editor: copy permalink to line` action in the
command palette.

Marshall Bowers created

cbcaca4 Show highlighted symbol in the scrollbar (#7029)

Click to expand commit body
Release Notes:

- Added highlighted symbols to the scrollbar; partially mentioned in:
  - https://github.com/zed-industries/zed/issues/5308
  - https://github.com/zed-industries/zed/issues/4866

Felix Salazar created

871b852 Fix per-env settings override (#7114)

Click to expand commit body
Due to a misplaced .trim(), the RELEASE_CHANNEL_NAME included the
trailing newline.

Release Notes:

- N/A

Conrad Irwin created

a5826e2 Add Go file icon (#7110)

Click to expand commit body
![IMG_4664](https://github.com/zed-industries/zed/assets/8725798/75436116-7c7e-4ae6-b76c-13f21c52bee8)

Release Notes:

- Added icon to `.go` files

Derrick Laird created

7f66e36 Release version of clippy? (#7107)

Click to expand commit body
Release Notes:

- N/A

Conrad Irwin created

3075e58 collab 0.43.0

Conrad Irwin created

911b4b5 Migrate automatically on service start (#7103)

Click to expand commit body
This avoids a forgettable manual step in deploying collab

Release Notes:

- N/A

Conrad Irwin created

2e7f9c4 Use fully-qualified name to avoid an unused import (#7104)

Click to expand commit body
This PR adjusts how we implement `Global` conditionally to avoid an
unused import when compiling in release mode.

Release Notes:

- N/A

Marshall Bowers created

a54eaae Add raw window handle implementations to GPUI (#7101)

Click to expand commit body
This is in preparation for experiments with wgpu. This should have no
external effect.

Release Notes:

- N/A

Mikayla Maki created

1d794db Only `impl Global` for `DebugBelow` when compiling with `debug_assertions` (#7102)

Click to expand commit body
This PR fixes this error when compiling a release build:

<img width="504" alt="Screenshot 2024-01-30 at 2 30 38 PM"
src="https://github.com/zed-industries/zed/assets/1486634/96470735-2b9e-4945-b4c3-c86ef0168b8c">

`DebugBelow` only exists when compiling with `debug_assertions`, so we
only want to implement it using that same criterion.

Release Notes:

- N/A

Marshall Bowers created

e756602 log: Use local timezone in log timestamps (#7079)

Click to expand commit body
I'm gonna let it sit for a day in case anybody has any objections to
that change.

Release Notes:

- Logs now use local timestamps instead of UTC-based timestamps

---------

Co-authored-by: Beniamin <beniamin@zagan.be>

Piotr Osiewicz and Beniamin created

e6ebe79 gpui: Add Global marker trait (#7095)

Click to expand commit body
This should prevent a class of bugs where one queries the wrong type of
global, which results in oddities at runtime.

Release Notes:

- N/A

---------

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

Piotr Osiewicz , Marshall , and Marshall Bowers created

7bfa584 Add protobuf support (#6748)

Click to expand commit body
Release Notes:

- Added protobuf syntax highlighting
([#5160](https://github.com/zed-industries/zed/issues/5160)).

Derrick Laird created

dfbcaf3 nightly url setting (#7037)

Click to expand commit body
Release Notes:

- Added the ability to set settings per-release stage
- Added a `"server_url"` setting

Conrad Irwin created

c073552 Add logging for the font_descriptor panic (#7097)

Click to expand commit body
Release Notes:

- Fixed a panic caused by an inconsistency in font metrics.

Conrad Irwin created

631f885 Ensure sqlez build succeeds on Windows (#7072)

Click to expand commit body
On Windows, `OsStr` must be a valid
[WTF-8](https://simonsapin.github.io/wtf-8/) sequence, and there are no
safety ways converting from bytes to OsStr in std. So I added
`PathExt::try_from_bytes` and use it in `sqlez`.

白山風露 created

30b9cef Improve mention visibility by adding a background color (#7014)

Click to expand commit body
When the chat if going fast, It's hard to see who is mentioning you, so
this feature will make it more clear by the UI instead of needing to
read all the messages.

<img width="242" alt="Screenshot 2024-01-29 at 21 19 07"
src="https://github.com/zed-industries/zed/assets/62463826/65ec307d-5027-4ead-9568-854fc746c822">

Release Notes:

- Added background to messages that mention you.

Remco Smits created

e5c4c85 C# Support: Add treesitter and OmniSharp LSP support (#6908)

Click to expand commit body
This PR adds the C# tree-sitter grammar. It also adds OmniSharp-Roslyn
for LSP support.

Resolves issue
[#5299](https://github.com/zed-industries/zed/issues/5299)

Release Notes:

- Added C# support

## VSCode
<img width="984" alt="vscode"
src="https://github.com/zed-industries/zed/assets/6967829/1f6b4cb7-4e00-4d61-8e58-2867dc5c8ecf">

## Zed
<img width="1722" alt="zed"
src="https://github.com/zed-industries/zed/assets/6967829/88436c78-93de-4e26-be15-b0dea6590c55">

fminkowski created

2980f05 Rework loading images from files (#7088)

Click to expand commit body
This PR is a follow-up to #7084, where I noted that I wasn't satisfied
with using `SharedUri` to represent both URIs and paths on the local
filesystem:

> I'm still not entirely happy with this naming, as the file paths that
we can store in here are not _really_ URIs, as they are lacking a
protocol.
>
> I want to explore changing `SharedUri` / `SharedUrl` back to alway
storing a URL and treat local filepaths differently, as it seems we're
conflating two different concerns under the same umbrella, at the
moment.

`SharedUri` has now been reverted to just containing a `SharedString`
with a URI.

`ImageSource` now has a new `File` variant that is used to load an image
from a `PathBuf`.

Release Notes:

- N/A

Marshall Bowers created

6d4fe80 Fix panic in fuzzy-finder for unicode characters (#7080)

Click to expand commit body
This fixes a panic in the fuzzy finder which someone ran into when
typing in a query that contained the lower-case version of a unicode
character that has more chars than its upper-case version.

It also fixes another problem which was that we didn't find a match if
both candidates and query contained upper-case characters whose
lower-case version had more chars.


Release Notes:

- Fixed a panic in fuzzy-finder that could occur when matching with
queries containing upper-case unicode characters whose lower-case
version has more chars.

Co-authored-by: bennetbo <bennetbo@gmx.de>

Thorsten Ball and bennetbo created

6c7893d Rename `SharedUrl` to `SharedUri` (#7084)

Click to expand commit body
This PR renames `SharedUrl` to `SharedUri` to better reflect its intent.

I'm still not entirely happy with this naming, as the file paths that we
can store in here are not _really_ URIs, as they are lacking a protocol.

I want to explore changing `SharedUri` / `SharedUrl` back to alway
storing a URL and treat local filepaths differently, as it seems we're
conflating two different concerns under the same umbrella, at the
moment.

Release Notes:

- N/A

Marshall Bowers created

d18c0d9 Make minor documentation corrections and improvements (#7070)

Click to expand commit body
This PR makes minor documentation corrections and improvements.

Release Notes:

- N/A

Noritada Kobayashi created

a0582d0 Make avif/heif/webp files to use image icon (#7063)

Click to expand commit body
The Wikipedia Link:

- https://en.wikipedia.org/wiki/AVIF
- https://en.wikipedia.org/wiki/High_Efficiency_Image_File_Format
- https://en.wikipedia.org/wiki/WebP

Release Notes:

- Made avif/heif/webp files to use an image icon

d1y created

fb9eb6a Add taplo `toml` LSP (#7034)

Click to expand commit body
Release Notes:

- Added `toml` LSP using [taplo](https://taplo.tamasfe.dev/)

Ammar Arif created

7b8bd97 vim: implement <space> in normal mode (#7011)

Click to expand commit body
This fixes #6815 by implementing `<space>` in normal mode in Vim. Turns
out that `<space>` behaves like a reverse `<backspace>` (which we
already had): it goes to the right and, if at end of line, to the next
line.

That means I had to touch `movement::right`, which is used in a few
places, but it's documentation said that it would go to the next line,
which it did *not*. So I changed the behaviour.

But I would love another pair of eyes on this, because I don't want to
break non-Vim behaviour.

Release Notes:

- Added support for `<space>` in Vim normal mode: `<space>` goes to the
right and to next line if at end of line.
([#6815](https://github.com/zed-industries/zed/issues/6815)).

Thorsten Ball created

4af5425 Fix a spelling typo (#7059)

Click to expand commit body
Release notes: N/A

Hans created

dc5f4c8 Add CSS file type icon (#7062)

Click to expand commit body
The SVG icon RAW link: https://www.svgrepo.com/svg/473577/css3
The Licensing https://www.svgrepo.com/page/licensing/#CC0

<img width="309" alt="image"
src="https://github.com/zed-industries/zed/assets/45585937/4b1fa935-144f-4c02-a378-b0974e4d0b39">


Release Notes:

- Added a CSS file type icon

d1y created

cddc0fb vim: fix `t` not being repeatable with `,` (#7007)

Click to expand commit body
This fixes `t` not being repeatable with `,` and `;` in normal mode.

Release Notes:

- Fixed `t` in Vim mode not being repeatable with `,` or `;`.

---------

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

Thorsten Ball and Conrad created

843916d Fix two typos (#7056)

Hans created

561cd37 Spell adjust (#7050)

Hans created

dd74643 gpui: Support loading image from filesystem (#6978)

Click to expand commit body
This PR implements support for loading and displaying images from a
local file using gpui's `img` element.

API Changes:
- Changed `SharedUrl` to `SharedUrl::File`, `SharedUrl::Network`

Usage:
```rust
// load from network
img(SharedUrl::network(...)) // previously img(SharedUrl(...)

// load from filesystem
img(SharedUrl::file(...))
```

This will be useful when implementing markdown image support, because we
need to be able to render images from the filesystem (relative/absolute
path), e.g. when implementing markdown preview #5064.

I also added an example `image` to the gpui crate, let me know if this
is useful. Showcase:
<img width="872" alt="image"
src="https://github.com/zed-industries/zed/assets/53836821/b4310a26-db81-44fa-9a7b-61e7d0ad4349">

**Note**: The example is fetching images from [Lorem
Picsum](https://picsum.photos) ([Github
Repo](https://github.com/DMarby/picsum-photos)), which is a free
resource for fetching images in a specific size. Please let me know if
you're okay with using this in the example.

Bennet Bo Fenner created

b865db4 Fix terminal line background being reset on each line (#7040)

Click to expand commit body
Release Notes:

- Fixed #5027
- Fixed #5079

Info:

The terminal draws a rectangle for the background color of cells, but
this was being reset on every line. The effect of this was that tools
like Vim, Helix, and git-delta would only have one line with a
background color:

<img width="979" alt="Screenshot 2024-01-30 at 2 48 13 pm"
src="https://github.com/zed-industries/zed/assets/52195359/ab1873d2-0653-44c6-9406-bc2a277d9a2f">

After this change:

<img width="1011" alt="Screenshot 2024-01-30 at 2 49 45 pm"
src="https://github.com/zed-industries/zed/assets/52195359/6e4d2a70-590b-48b0-a464-4c827f55622e">

Robert Clover created