Commit log

b5f6c40 v0.140.x stable

Joseph T Lyons created

2b3adae zed 0.140.5

Joseph T Lyons created

2eb28ff Fix panic trying to go to next of 0 matches (cherry-pick #13233) (#13236)

Click to expand commit body
Cherry-picked Fix panic trying to go to next of 0 matches (#13233)

Release Notes:

- Fixed a panic when going to next search result when there are none

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>

gcp-cherry-pick-bot[bot] and Conrad Irwin created

29245ff Fix `windows` dependency version

Joseph T Lyons created

ac63c74 Allow telemetry from unofficial builds (#13224)

Click to expand commit body
Release Notes:

- N/A

Co-authored-by: Peter Tripp <notpeter@users.noreply.github.com>

Joseph T. Lyons and Peter Tripp created

f41926f Move project event logic to telemetry.rs (#13166)

Click to expand commit body
I previously put this logic directly into `project.rs`, but it doesn't
feel good to pollute that code with telemetry logic, so I've moved it
over to `telemetry.rs`.

Release Notes:

- N/A

Joseph T. Lyons created

b4736db Add events for identifying node projects (#13078)

Click to expand commit body
Release Notes:

- N/A

Joseph T. Lyons created

eea4e7b zed 0.140.4

Joseph T Lyons created

2e3410b Fix incorrect data being assigned to os_name (#13064)

Click to expand commit body
Release Notes:

- N/A

Joseph T. Lyons created

6f4c119 zed 0.140.3

Max Brunsfeld created

96336b2 Fix panic in worktree scanning (#13057)

Click to expand commit body
Release Notes:

- Fixed a panic when worktree paths are incorrectly relative.

Conrad Irwin created

eab19a8 Fix panic when doing various cursor movements with a pending mouse selection (#13016)

Click to expand commit body
This fixes a panic in the `SelectionsCollection::first_anchor` when
there was a pending mouse selection and no other selections. Until
recently, this method was only used in vim mode, but as of
https://github.com/zed-industries/zed/commit/53b0720d546b6541fbf236d2f9d2dadbce6f126e,
it's also used in the normal `move_up` and `move_down` actions.

So until recently, the panic that this fixes could only happen in vim
mode.

Release Notes:

- Fixed a crash that could happen when using certain cursor-motion
bindings with a pending mouse selection.

Max Brunsfeld created

1e6ee30 project panel: Improve performance in worktrees with lots of files. (#12980)

Click to expand commit body
When working on a repro for a different issue that involved a worktree
with lots of files (100k to be precise), UI became pretty unresponsive.
I pinned it down to us repeatedly preparing a HashSet of all paths in
the currently-scrolled-to worktree, once per each entry in the range
passed to for_each_visible_range (which is e.g. called during
rendering).

This PR makes that hashing happen just once per worktree. Additionally,
we no longer iterate over (potentially) all entries in a given worktree
when calculating the depth of a given entry.

Note that we could probably be smarter about this still; instead of
recalculating the hashset per each call to for_each_visible_entry, we
could do it whenever we update entries in the project panel. However,
with this PR I wanted to get a quick bang for a small buck; I'm pretty
confident in the change as is, it is relatively straightforward and
messing with worktree updates is more involved.



Release Notes:

- Improvement performance of project panel in large worktrees

Piotr Osiewicz created

69cbb12 Add missing LICENSE file to `ollama` crate (#12943)

Click to expand commit body
This PR adds a missing LICENSE file to the recently-added `ollama`
crate.

Also added the missing `lints.workspace = true` to the `Cargo.toml`.

Release Notes:

- N/A

Marshall Bowers created

5d6a4a1 zed 0.140.2

Max Brunsfeld created

705e754 Keep symbol names in bundled linux binaries (#13006)

Click to expand commit body
This ensures that linux panics still contain symbol names. It also
allows us to profile Zed on linux with `perf` and get symbol names.

Release Notes:

- N/A

Max Brunsfeld created

ed1f803 Add libstdc++-12-dev for linux (#12962)

Click to expand commit body
Release Notes:

- N/A

PS: :wave: Congrats on the release :confetti_ball: and hey from
discussing CRDTs at the [GitPod/DevX conference last
year](https://www.youtube.com/watch?v=wXT73bBr83s)! Just read the [blog
post](https://zed.dev/blog/zed-decoded-linux-when) and thought I'd
finally try zed out (I have a linux laptop). This was the only snag I
ran into :clap:

Philip Schatz created

10698c0 X11: Fix black flashes on boot and while resizing (#13002)

Click to expand commit body
Release Notes:

- N/A

Conrad Irwin created

1ba2909 Fix git watching on linux (#12989)

Click to expand commit body
Release Notes:

- N/A

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

Conrad Irwin and Nathan created

4a6d8f6 Fix issues where screen and window sizes contained Pixels, but were declared as DevicePixels (#12991)

Click to expand commit body
On most platforms, things were working correctly, but had the wrong
type. On X11, there were some problems with window and display size
calculations.

Release Notes:

- Fixed issues with window positioning on X11

---------

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Co-authored-by: Mikayla <mikayla@zed.dev>

Max Brunsfeld , Conrad Irwin , and Mikayla created

1b07cce Bump to 0.140.1 for @ConradIrwin

Zed Bot created

55426a3 Arm builds (#12961)

Click to expand commit body
Release Notes:

- N/A

Conrad Irwin created

2b936fe Fix headless mode (#12960)

Click to expand commit body
This was broken by two things:
1. A merge conflict in the install.sh script leading to bad sh syntax
2. A return removed by accident when we refactored main

Release Notes:

- N/A

Conrad Irwin created

3977b85 v0.140.x preview

Joseph T Lyons created

1b28f93 Make notification windows not have titles on X11 (#12935)

Click to expand commit body
Co-Authored-By: Max <max@zed.dev>

Release Notes:

- N/A

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

Conrad Irwin and Max created

2fd00a8 docs: Capitalize Vim in Vim mode documentation (#12934)

Click to expand commit body
Release Notes:

- N/A

Thorsten Ball created

bee3441 Ollama improvements (#12921)

Click to expand commit body
Attempt to load the model early on when the user has switched the model.

This is a follow up to #12902

Release Notes:

- N/A

Kyle Kelley created

113546f Do not encourage additional ignored labels

Click to expand commit body
We recently reduced the set of ignored labels down to a single label: "ignore top-ranking issues." It makes sense that we don't allow for multiple to be registered in this script now.

Joseph T Lyons created

5e9f9b4 Wrap JS/TS runnables in quotes (#12932)

Click to expand commit body
Some of the runnables added in #12118 don't work for tests (or code)
that contain spaces. In other words, the runnable for a test like
```js
it('does the thing', () => ...)
```
would end up w/ something like `npx jest does the thing
/path/to/file.spec.js`, but what we really want is `npx jest
--testNamePattern "does the thing" /path/to/file.spec.js`. A similar
thing was happening for the "node execute selection" runnable: selecting
`let foo = 1` would run `node -e let foo = 1`, not `node -e "let foo =
1"`.

In my (somewhat limited?) experience, it's very common for tests like
these to include spaces, and of course a code selection is almost
certain to contain whitespace.

Not covered: 
- this just blindly wraps quotes around the symbol/code; in the future
it may make sense to try to figure out *what type of quote* to use. (eg
`it('does the "thing"', () => ...)` is a valid test name, but
`--testNamePattern "does the "thing""` would not work. Note the doubled
quotes.)
- I did not wrap the filenames in quotes to escape those for the shell,
nor did I test if that's actually an issue. In my experience, I've not
seen many (any?) test files that contain spaces in the name, but I
suspect that it would be an issue if a containing dir includes spaces.
(eg `npx jest ... /path/to/My Documents/Code/file.spec.js`

/cc @RemcoSmitsDev 

Release Notes:

- Fixed some runnables in Javascript/Typescript

claytonrcarter created

ec95a33 Added TSX test runnables (#12922)

Click to expand commit body
Fix #12884

Release Notes:

- Added runnable tests for TSX files.

---
Runnable tests can be customized via `tsx-test` tag

---------

Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>

Chung Wei Leong and Piotr Osiewicz created

b823509 linux: Use filesystem based unix socket instead of abstract namespace (#12756)

Click to expand commit body
Release Notes:

- N/A

fixes: unable to launch multiple zed instances even if the support dirs
are different(example: bwrap based sandboxing)

maan2003 created

e16bbe0 Make install.sh sh-compatible (#12899)

Click to expand commit body
Co-Authored-By: Max <max@zed.dev>

Release Notes:

- N/A

---------

Co-authored-by: Max <max@zed.dev>
Co-authored-by: Shyim <github@shyim.de>

Conrad Irwin , Max , and Shyim created

ab41edd Fix cursors on some GNOME installations (#12914)

Click to expand commit body
This PR adds support for `org.gnome.desktop.interface`'s `cursor-theme`
setting on Wayland. This should fix cursors not showing up on some GNOME
installs. This PR also adds the wiring to watch the current cursor theme
value.

Thanks to @apricotbucket28 for helping debug the issue.

Release Notes:

- N/A

Mikayla Maki created

4cb8d6f Ollama Provider for Assistant (#12902)

Click to expand commit body
Closes #4424.

A few design decisions that may need some rethinking or later PRs:

* Other providers have a check for authentication. I use this
opportunity to fetch the models which doubles as a way of finding out if
the Ollama server is running.
* Ollama has _no_ API for getting the max tokens per model
* Ollama has _no_ API for getting the current token count
https://github.com/ollama/ollama/issues/1716
* Ollama does allow setting the `num_ctx` so I've defaulted this to
4096. It can be overridden in settings.
* Ollama models will be "slow" to start inference because they're
loading the model into memory. It's faster after that. There's no UI
affordance to show that the model is being loaded.

Release Notes:

- Added an Ollama Provider for the assistant. If you have
[Ollama](https://ollama.com/) running locally on your machine, you can
enable it in your settings under:

```jsonc
"assistant": {
    "version": "1",
    "provider": {
      "name": "ollama",
      // Recommended setting to allow for model startup
      "low_speed_timeout_in_seconds": 30,
    }
}
```

Chat like usual

<img width="1840" alt="image"
src="https://github.com/zed-industries/zed/assets/836375/4e0af266-4c4f-4d9e-9d74-1a91f76a12fe">

Interact with any model from the [Ollama
Library](https://ollama.com/library)

<img width="587" alt="image"
src="https://github.com/zed-industries/zed/assets/836375/87433ac6-bf87-4a99-89e1-96a93bf8de8a">

Open up the terminal to download new models via `ollama pull`:


![image](https://github.com/zed-industries/zed/assets/836375/af7ec411-76bf-41c7-ba81-64bbaeea98a8)

Kyle Kelley created

127b9ed project_panel: Don't show file icon during rename when file icons are otherwise hidden (#12910)

Click to expand commit body
This PR fixes an instance where the file icon for a project panel entry
would be shown during a rename even when the `project_panel.file_icons`
setting was set to `false`.

Resolves #12905.

Release Notes:

- Fixed an issue where file icons were displayed in the project panel
during a rename even when `project_panel.file_icons` was set to `false`
([#12905](https://github.com/zed-industries/zed/issues/12905)).

Marshall Bowers created

c30f6a1 Fix alt key getting stuck when tabbing on linux (#12912)

Click to expand commit body
Release Notes:

- N/A

Mikayla Maki created

8ccd2a0 Add tag handler for collecting crate items from rustdoc output (#12903)

Click to expand commit body
This PR adds a tag handler for collecting crate items from rustdoc's
HTML output.

This will serve as the foundation for getting more insight into a
crate's contents.

Release Notes:

- N/A

Marshall Bowers created

57b87be Hoist `indexmap` to workspace level (#12901)

Click to expand commit body
This PR hoists `indexmap` up to a workspace dependency.

Release Notes:

- N/A

Marshall Bowers created

80c14c9 Pull app / OS info out of GPUI, add Linux information, make fallible window initialization (#12869)

Click to expand commit body
TODO:
- [x] Finish GPUI changes on other operating systems 

This is a largely internal change to how we report data to our
diagnostics and telemetry. This PR also includes an update to our blade
backend which allows us to report errors in a more useful way when
failing to initialize blade.


Release Notes:

- N/A

---------

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>

Mikayla Maki and Conrad Irwin created

ec9e700 linux/x11: Mark windows as destroyed after destroy request (#12892)

Click to expand commit body
Turns out we still get FocusOut and UnmapNotify events after the window
has been destroyed, which resulted in error messages popping up because
we can't find the window anymore that we want to mark as unfocused.



Release Notes:

- N/A

Thorsten Ball created

a06189b Fix most vim tests on linux (#12873)

Click to expand commit body
Fixes most vim tests on linux (and a few editor ones) by loading Zed
Mono
instead of relying on the system fallback stack.

Release Notes:

- N/A

Conrad Irwin created

53b0720 Remove headers from prompt library picker (#12889)

Click to expand commit body
Also, as a drive-by, we're fixing up/down not working in inline
assistant editor.

Release Notes:

- N/A

Antonio Scandurra created

b6ea393 lsp: Add support for linked editing range edits (HTML tag autorenaming) (#12769)

Click to expand commit body
This PR adds support for [linked editing of
ranges](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#textDocument_linkedEditingRange),
which in short means that editing one part of a file can now change
related parts in that same file. Think of automatically renaming
HTML/TSX closing tags when the opening one is changed.
TODO:
- [x] proto changes
- [x] Allow disabling linked editing ranges on a per language basis.

Fixes #4535 

Release Notes:
- Added support for linked editing ranges LSP request. Editing opening
tags in HTML/TSX files (with vtsls) performs the same edit on the
closing tag as well (and vice versa). It can be turned off on a language-by-language basis with the following setting:
```
  "languages": {
    "HTML": {
      "linked_edits": true
    },
  }
```

---------

Co-authored-by: Bennet <bennet@zed.dev>

Piotr Osiewicz and Bennet created

98659ea Overhaul inline assistant (#12846)

Click to expand commit body
This pull request introduces a new diff mechanism that helps users
understand exactly which lines were changed by the LLM.

Release Notes:

- N/A

Antonio Scandurra created

3722275 linux/x11: Only create ModifiersChanged event if they changed (#12879)

Click to expand commit body
I noticed that when I use my mouse wheel, we get a ton of the
`XkbStateNotify` events, but the modifiers don't change, so we add a ton
of useless input events for the window.

Release Notes:

- N/A

Thorsten Ball created

ef84ce7 linux make install (#12870)

Click to expand commit body
Release Notes:

- N/A

Conrad Irwin created

44a5864 Wait for composition to end before sending InputIgnored (#12871)

Click to expand commit body
Release Notes:

- vim: Fixed `f`/`t` etc. for keys that require IME (#12522)

Conrad Irwin created

4e98c23 Reconnect button for remote projects (#12669)

Click to expand commit body
Release Notes:

- N/A

---------

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

Conrad Irwin and Max created

1914a42 Update windows doc to mention rust-lld linker error (#12859)

Click to expand commit body
Release Notes:

- N/A

## Description

When using rust-lld it's possible to get a `STATUS_ACCESS_VIOLATION`
error at compile time. I added a bit of information about it in the
build guide for windows to recommend using a different linker when
building `zed`.

---------

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

IceSentry and Marshall Bowers created

6afed19 Update EULA (#12858)

Click to expand commit body
Release Notes:

- N/A

Joseph T. Lyons created