Commit log

3728da1 collab 0.42.1

Max Brunsfeld created

c008c78 Fix slow query for fetching descendants of channels (#7008)

Click to expand commit body
Release Notes:

- N/A

---------

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

Conrad Irwin and Max created

1313402 Introduce cross-platform file-watching (#6855)

Click to expand commit body
This adds cross-platform file-watching via the
[Notify](https://github.com/notify-rs/notify) crate. The previous
fs-events implementation is now only used on MacOS, and on other
platforms Notify is used. The watching function interface is the same.

Related to #5391 #5395 #5394.

Release Notes:

- N/A

Amin Yahyaabadi created

b29f45e Change underlying type of BufferId to NonZeroU64.

Piotr Osiewicz created

5ab715a text: Wrap BufferId into a newtype

Piotr Osiewicz created

941e838 Prevent z-index id shuffle when number of z-indicies in the scene change

Julia created

849a132 Fix hovering over elements nested inside their parents

Click to expand commit body
Co-Authored-By: Conrad Irwin <conrad@zed.dev>

Julia and Conrad Irwin created

d60ef81 Setup Danger (#6994)

Click to expand commit body
This PR sets up [Danger](https://danger.systems/js/) to help us codify
some of our PR rules.

As an initial rule, Danger will check to ensure that every PR has a
`Release Notes` section:

<img width="943" alt="Screenshot 2024-01-29 at 11 50 12 AM"
src="https://github.com/zed-industries/zed/assets/1486634/4d56e759-e72f-4bc0-8e74-42c55e2e6888">

Release Notes:

- N/A

Marshall Bowers created

d694017 Add Haskell file type icon (#6995)

Click to expand commit body
Small change to add the Haskell logo as a file icon. Screenshot below
shows what this looks like.

![CleanShot 2024-01-29 at 11 21
30@2x](https://github.com/zed-industries/zed/assets/132238190/b484c679-965a-4e73-88dc-ebb670a0f390)

Pseudomata created

d1a6003 Use Git status color for icons in project panel (#6992)

Click to expand commit body
This PR updates the icons in the file tree in the project panel to also
use the Git status color:

<img width="267" alt="Screenshot 2024-01-29 at 10 21 41 AM"
src="https://github.com/zed-industries/zed/assets/1486634/2f4f6e9e-8050-4f5b-851a-e407aec823a0">

Release Notes:

- Updated icons in project panel to reflect Git status
([#6991](https://github.com/zed-industries/zed/issues/6991)).

Marshall Bowers created

d296886 rust: Update rust-analyzer repo address (#6986)

Click to expand commit body
I am so sorry that I closed the
https://github.com/zed-industries/zed/pull/6980 misoperationally. Here
is a new pr.

bestgopher created

a827d0d fixed zig config on line_comments (#6979)

Click to expand commit body
On a .zig files , the `CMD-/` keybinding don't work,
In the language config its the only language with '//' type comment that
is written in singular without array.
This fixed the problem, so i assume it was just a typo

![image](https://github.com/zed-industries/zed/assets/6186996/d7f2381a-8b21-4f50-8910-6685b81a5aec)

Release notes:
- Fixed line comment continuations and Editor::ToggleComments for Zig, Haskell and PureScript.

Abel Chalier created

843919d docs: Update configuring_zed__key_bindings.md (#6974)

Click to expand commit body
Release notes: N/A

liruifengv created

8263da0 Make .jsonc icon use storage icon (#6972)

Click to expand commit body
Jsonc is a simplified json format which allows comments and unquoted
values delimited by whitespace. A jsonc formatted file can be
unambiguously transformed to a json file. Comments will be stripped out
and quotes added.

Release Notes:

- Added an icon for .jsonc files

d1y created

4954275 Correctly check existence of target directory in `copy_recursive` function (#6875)

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

Release Notes:

- Fixed issue where copy-paste for folders was not working in the
project panel
([#6778](https://github.com/zed-industries/zed/issues/6778)).

George Munyoro created

9ef830e update: Add arch and os to release query parameters. (#6976)

Click to expand commit body
This is no-op right now, but we need it for multi-platform support and
(potentially) to split the Universal Binary on mac into two
non-universal targets.
Related to: #6837 
Release Notes:
- N/A

Piotr Osiewicz created

8fbc88b Load embedded fonts directly from .rdata instead of cloning (#6932)

Click to expand commit body
The fonts we embed in Zed binary (Zed Sans & Zed Mono) weigh about 30Mb in total and we are cloning them several times during startup and loading of embedded assets (once explicitly in Zed and then under the hood in font-kit). Moreover, after loading we have at least 2 copies of each font in our program; one in .rdata and the other on the heap for use by font-kit.
This commit does away with that distinction (we're no longer allocating the font data) and slightly relaxes the interface of `TextSystem::add_fonts` by expecting one to pass `Cow<[u8]>` instead of `Arc<Vec<u8>>`. Additionally, `AssetSource::get` now returns `Cow<'static, [u8]>` instead of `Cow<'self, [u8]>`; all existing implementations conform with that change.

Note that this optimization takes effect only in Release builds, as the library we use for asset embedding - rust-embed - embeds the assets only in Release mode and in Dev builds it simply loads data from disk. Thus it returns `Cow<[u8]>` in it's interface. Therefore, we still copy that memory around in Dev builds, but that's not really an issue. 
This patch makes no assumptions about the build profile we're running under, that's just an intrinsic property of rust-embed.

Tl;dr: this should shave off about 30Mb of memory usage and a fair chunk (~30ms) of startup time.

Release Notes:
- Improved startup time and memory usage.

Piotr Osiewicz created

e22ffb6 Run weekly update each day

Joseph T. Lyons created

00a6ac6 docs: Consistent shortcut style (#6961)

Click to expand commit body
Hey all. This is a follow-up to my last PR
https://github.com/zed-industries/zed/pull/6821. I went through and
applied the same style changes to more pages so your docs are more
consistent.

<img width="1330" alt="image"
src="https://github.com/zed-industries/zed/assets/18583882/b9adbb38-b98d-47c6-b585-7e298ffae854">


Note that some pages from your old docs repo haven't been ported to
`zed-industries/zed` yet.

Release Notes:

- Improved documentation consistency.

Kieran Gill created

6cd306e docs: Add initial language settings documentation (#6957)

Click to expand commit body
This pull request implements the following documentation changes:

- [x] Copy existing language settings docs from old docs repo
- [x] Add new pages for Zig, Haskell, Gleam, Deno and PureScript
- [x] Add `rust-analyzer` target directory section to Rust language page

Release Notes:

- Added initial language settings documentation
([#4264](https://github.com/zed-industries/zed/issues/4264)).

Brian Ginsburg created

5d0c144 theme_importer: Define more colors in `VsCodeTheme` (#6960)

Click to expand commit body
This PR extends the `VsCodeTheme` struct with more of the colors
available on a VS Code theme.

Release Notes:

- N/A

Marshall Bowers created

331b6e7 Support "dtx" vim key combination when "x" is immediately to the right of the cursor (#6830)

Click to expand commit body
Closes #4358

The bug originates on this line:
https://github.com/zed-industries/zed/blob/5db7e8f89ee4f5d9801a2eab88adc1db3fda0f46/crates/vim/src/motion.rs#L451

- When running "dtx" on "ˇabcx", the range to delete is 0 -> 2 ("abc")
- When running "dtx" on "abˇcx", the range to delete is 2 -> 2 ("c"), so
`new_point == point` and the function incorrectly returns `None` and "c"
is not deleted
- We need to disambiguate between the "not found" case and the "found
immediately to the right" case
- This bug does not apply to the backwards case ("dTx")

Release Notes:
- Fixed "dtx" vim key combination when "x" is immediately to the right
of the cursor (#4358)

Conrad Irwin created

4ab1d8a Add support for u and U in vim visual mode (#6948)

Click to expand commit body
This pull request adds support for upper / lower casing a visual
selection with `u` or `U` respectively, and resolves #6901.

I took an approach to split out the logic of the existing `ChangeCase`
action into something that could be reused for the two new actions. One
area that I could use feedback on is whether or not vim binding updates
make sense. Judging purely from the way things work from a clean install
of Vim / Neovim, I'm pretty sure that it's a bug that `u` applies an
undo in visual mode, so I think it's safe to make this change, but it
changes a behavior that some users may be used to by now in Zed.

Release Notes:

- Added support for `u` and `U` in Vim visual mode
([#6901](https://github.com/zed-industries/zed/issues/6901)).

Conrad Irwin created

7c93f62 Reinstate requirements.txt

Joseph T. Lyons created

92911de Update top ranking issues script to take in a day interval (#6951)

Click to expand commit body
Switch to `poetry`
Update script to take in a `query-day-interval` argument, so we can make
a report from all issues or just n last days.

Release Notes:

- N/A

Joseph T. Lyons created

80cdd60 Add a weekly report

Joseph T. Lyons created

6305761 Update top ranking issues script to take in a day interval

Joseph T. Lyons created

db68fc5 Add PureScript LSP/Highlighting support (#6911)

Click to expand commit body
This PR adds basic support for the language using the
`purescript-language-server`.

Release Notes:

- Added support for PureScript.

Iván Molina Rebolledo created

7767062 Add missing workspace edit capabilities (#6950)

Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/6916

Specification:
https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#workspaceEdit
Adds a safe minimum of the capabilities that Zed supports already,
allowing rust-analyzer to send file edits on rename.

Release Notes:

- Fixed rust module rename from editor not renaming the FS entries
([6916](https://github.com/zed-industries/zed/issues/6916))

Kirill Bulatov created

444f918 Retrieve credentials for saved conversations (#6949)

Click to expand commit body
This PR fixes an issue where credentials for saved conversations weren't
being fully retrieved, which was preventing continuing a conversation
with the assistant in a saved conversation.

Release Notes:

- Fixed continuing a saved conversation with the Zed assistant.

Marshall Bowers created

52f7f2d Update name of function to match other implementation

Brooks Swinnerton created

c0c0aba Add support for u and U in vim visual mode

Brooks Swinnerton created

8e523d8 Fix #4628: npm install to a wrong location (#6742)

Click to expand commit body
By default `npm install` will walk up the folder tree checking for a
folder that contains either a package.json file, or a node_modules
folder. If such a thing is found, then that is treated as the effective
"current directory" for the purpose of running npm commands.
This caused npm dependencies for language servers sometimes to be
installed in the wrong folder, described in #4628.
Adding `--prefix ./` to `npm install` forces
node_runtime.npm_install_packages to install packages in provided path
even if node_modules dir exists somewhere up the filesystem tree from
installation path.

Julia created

1f82a2a Remove obviated comment in `zed-licenses.toml` (#6946)

Click to expand commit body
This PR removes a comment from `zed-licenses.toml`, as it no longer
applies now that we don't have `buildLicenses.ts` anymore.

Release Notes:

- N/A

Marshall Bowers created

b213458 Fix typo in copilot.rs (#6933)

Click to expand commit body
specifcially -> specifically

Release Notes:

- N/A

Ikko Eltociear Ashimine created

4fc0116 Add Vue file icon (#6930)

Click to expand commit body
https://github.com/vuejs/art/blob/master/white-on-dark-logo.svg
<img width="222" alt="image"
src="https://github.com/zed-industries/zed/assets/45585937/2839dd7e-ea25-4f9b-aac9-2437f1c3df23">

Release Notes:

- Added icon for `.vue` files.

d1y created

42e605a fix: adding prefix arg to npm subcommands

ge created

027f055 Update casing of "OpenAI" in identifiers to match Rust conventions (#6940)

Click to expand commit body
This PR updates the casing of "OpenAI" when used in Rust identifiers to
match the [Rust naming
guidelines](https://rust-lang.github.io/api-guidelines/naming.html):

> In `UpperCamelCase`, acronyms and contractions of compound words count
as one word: use `Uuid` rather than `UUID`, `Usize` rather than `USize`
or `Stdin` rather than `StdIn`.

Release Notes:

- N/A

Marshall Bowers created

e8bf06f Style crate names in `CONTRIBUTING.md` (#6939)

Click to expand commit body
This PR styles the crate names in `CONTRIBUTING.md` using inline code.

Release Notes:

- N/A

Marshall Bowers created

5dec9f7 Link to the Zed roadmap in `CONTRIBUTING.md` (#6937)

Click to expand commit body
This PR updates `CONTRIBUTING.md` to link to the public Zed roadmap.

Release Notes:

- N/A

Marshall Bowers created

f7b6bfe chore: Remove rerun-if-changed clause that might cause spurious rebuilds (#4193)

Click to expand commit body
Something is stomping over the timestamp of generated scene.h right
after the build script finishes:
`Dirty gpui v0.1.0 (/Users/someonetoignore/work/zed/zed/crates/gpui):
the file target/debug/build/gpui-ca04eedfe8d0e13c/out/scene.h has
changed (1705922004.637000680s, 1s after last build at
1705922003.507431315s)`
^ That's an output of `-v` flag added to either `cargo run` or `cargo
build`.
This comes up when you do `cargo build` followed by `cargo run` or
another `cargo build`; the artifact is not getting reused, even though
it should be possible?
Release Notes:
- N/A

Piotr Osiewicz created

e384891 Make .gitkeep icon use VCS icon (#6931)

Click to expand commit body
This should be a standard recognized by everyone

```bash
mkdir todo
touch todo/.gitkeep # just placeholder
git add todo
git commit
```

Release Notes:

- Added icon for `.gitkeep` files.

d1y created

3493e71 Add Ruby file icon (#6922)

Click to expand commit body
This icon is designed based on [Ruby's official logo], to harmonize with
the other icons.
It is deformed and simplified to be human-recognizable, even at letter
size.

[Ruby's official logo]: https://www.ruby-lang.org/en/about/logo/

Release Notes:

- Added Ruby file icon.

Noritada Kobayashi created

3eb0a2c theme_importer: Map more colors (#6913)

Click to expand commit body
This PR extends the `theme_importer` to map more colors from VS Code
themes.

Release Notes:

- N/A

Marshall Bowers created

ff76b2e Replace IIFE with `maybe!` (#6909)

Click to expand commit body
This PR replaces a usage of an IIFE with `maybe!`.

Release Notes:

- N/A

Marshall Bowers created

bbdf401 Use `async_maybe!` instead of inline IIFEs (#6906)

Click to expand commit body
This PR replaces instances where we were using an async IIFE with the
`async_maybe!` macro.

Release Notes:

- N/A

Marshall Bowers created

5b9cc26 Gracefully handle errors when loading themes (#6904)

Click to expand commit body
This PR improves the theme loading to gracefully handle when a theme
couldn't be loaded.

Trying to debug a panic that happens on startup in Nightly.

Release Notes:

- N/A

Marshall Bowers created

dfad36f Upgrade `tree-sitter-php` to v0.21.1 (#6902)

Click to expand commit body
This PR upgrades `tree-sitter-php` to v0.21.1.

Here is the diff between our current version and this version:
https://github.com/tree-sitter/tree-sitter-php/compare/d43130fd1525301e9826f420c5393a4d169819fc...29a49d3a53353444ee2226e2efa140fec69dd3e0

The primary impetus for this change is to get this change that adds the
`license` field to the `Cargo.toml`:
https://github.com/tree-sitter/tree-sitter-php/pull/193

This will silence the warning that is shown when running
`script/generate-licenses`.

Release Notes:

- Upgraded `tree-sitter-php` to v0.21.1.

Marshall Bowers created

96a02de Bump `tree-sitter-haskell` (#6899)

Click to expand commit body
This PR bumps our version of `tree-sitter-haskell` for the addition of
the `license` field in
https://github.com/tree-sitter/tree-sitter-haskell/pull/112.

This will silence the warning that is shown when running
`script/generate-licenses`.

Release Notes:

- N/A

Marshall Bowers created

9b453d2 Remove old themes using `UserTheme` constructs (#6897)

Click to expand commit body
This PR removes the themes defined using the `UserTheme` types, as we're
now loading the themes via JSON.

The `theme_importer` has also been reworked to read in a VS Code theme
and output a new JSON theme.

Release Notes:

- N/A

Marshall Bowers created