Commit log

eecbf20 Fix 100s freeze on boot on X11 (#13156)

Click to expand commit body
Release Notes:

- Fixed switching between dark and light mode with no windows open.

Conrad Irwin created

7fe5c27 repl: Add missing LICENSE file (#13161)

Click to expand commit body
This PR adds a missing LICENSE file to the `repl` crate.

Release Notes:

- N/A

Marshall Bowers created

221edfc Bring Jupyter to Zed Editing (#12062)

Click to expand commit body
Run any Jupyter kernel in Zed on any buffer (editor):

<img width="1074" alt="image"
src="https://github.com/zed-industries/zed/assets/836375/eac8ed69-d02b-4d46-b379-6186d8f59470">

## TODO

### Lifecycle

* [x] Launch kernels on demand
* [x] Wait for kernel to be started
* [x] Request Kernel info on start
* [x] Show in progress indicator
* [ ] Allow picking kernel (it defaults to first matching language name)
* [ ] Menu for interrupting and shutting down the kernel
* [ ] Drop running kernels once editor is dropped

### Media Outputs

* [x] Render text and tracebacks with ANSI color handling
* [x] Render markdown as text
* [x] Render PNG and JPEG images using an explicit height based on
line-height
* ~~Render SVG~~ -- not happening for this PR due to lack of text in SVG
support
* [ ] Process `update_display_data` message and related `display_id`
* [x] Process `page` data from payloads as outputs
* [ ] Render markdown as, well, rendered markdown -- Note: unsure if we
can get line heights here

### Document

* [x] Select code and run
* [x] Run current line
* [x] Clear previous overlapping runs
* [ ] Support running markdown code blocks
* [ ] Action to export session as notebook or output files
* [ ] Action to clear all outputs
* [ ] Delete outputs when lines are deleted

## Other missing features

The following is a list of missing functionality or expectations that
are out of scope for this PR.

### Python Environments

Detecting python environments should probably be done in a separate PR
in tandem with how they're used with LSP. Users likely want to pick an
environment for their project, whether a virtualenv, conda env, pyenv,
poetry backed virtualenv, or the system. Related issues:

* https://github.com/zed-industries/zed/issues/7646
* https://github.com/zed-industries/zed/issues/7808
* https://github.com/zed-industries/zed/issues/7296

### LSP Integration

* Submit `complete_request` messages for completions to interleave
interactive variables with LSP
* LSP for IPython semantics (`%%timeit`, `!ls`, `get_ipython`, etc.)

## Future release notes

- Run code in any editor, whether it's a script or a markdown document

Release Notes:

- N/A

Kyle Kelley created

d95c424 Show correct line number for entry placeholders in `/search` (#13151)

Click to expand commit body
Release Notes:

- N/A

Antonio Scandurra created

d6d5619 Properly propagate git statuses in the outline panel (#13150)

Click to expand commit body
Release Notes:

- N/A

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

Kirill Bulatov and Max created

2e87e1d assistant: Fix loading local crate docs (#13147)

Click to expand commit body
This PR fixes an issue where loading the crate-level docs with
`/rustdoc` wasn't working as expected.

Release Notes:

- N/A

Marshall Bowers created

e8862c4 assistant: Indicate when the `/rustdoc` output is from the index (#13148)

Click to expand commit body
This PR makes it so that when `/rustdoc` returns content from the local
index it indicates as such in the placeholder.

Release Notes:

- N/A

Marshall Bowers created

0c28b6a rustdoc: Don't start indexing if a crate is already being indexed (#13149)

Click to expand commit body
This PR updates the rustdoc indexing to not start indexing a crate that
is already being indexed.

Currently the indexing of a crate might get continuously interrupted by
the user's typing, resulting in thrashing of the indexing task and never
indexing the crate in its entirety.

Release Notes:

- N/A

Marshall Bowers created

16fce64 Fix Hide Copilot context menu item (#13113)

Click to expand commit body
The `features.copilot` setting appears to have been replaced by
`"inline_completion_provider": "none"` at some point, but the Hide
Copilot context menu was never updated to reflect that.

Release Notes:

- Fixed the Hide Copilot context menu item to modify the appropriate
setting.

dontwanttothink created

b075ce8 Rename flaps to creases (#13144)

Click to expand commit body
This is a simple rename and should be transparent for users.

Release Notes:

- N/A

Antonio Scandurra created

54828ab Remove Gemini testing script (#13143)

Click to expand commit body
This PR removes `script/gemini.py`, which just looks like it was used
for initially testing the Gemini API.

Now that it's built into collab as a completion provider, it doesn't
seem like we need this script anymore.

Release Notes:

- N/A

Marshall Bowers created

6322351 Draw gutter highlights and indicators on top of blocks (#13142)

Click to expand commit body
This ensures that the gutter progress in the inline assistant is
contiguous.

Release Notes:

- N/A

Antonio Scandurra created

78091fa Don't include prompt titles / "Default Prompt:" in slash command output (#13139)

Click to expand commit body
This only includes a newline to ensure there's always something to fold.

Release Notes:

- N/A

Antonio Scandurra created

d5735da assistant: Add glob matching for `file` slash command (#13137)

Click to expand commit body
This PR adds support for glob matching when using the `file` slash
command inside the assistant panel:


https://github.com/zed-industries/zed/assets/53836821/696612d2-486c-4ab0-bf3c-d23a3eeefd25

Release Notes:

- N/A

Bennet Bo Fenner created

c793bbd docs: Fix the missing shortcut for Go Back (#13138)

Click to expand commit body
Release Notes:

- N/A

Tackoil created

03c5462 Allow cursor to be moved into an unconfirmed prompt editor via esc (#13134)

Click to expand commit body
This also swaps the icons in the prompt editor.

Release Notes:

- N/A

Antonio Scandurra created

0afb3ab Improve outline panel entries' revealing and grouping (#13127)

Click to expand commit body
Release Notes:

- N/A

Kirill Bulatov created

2b46a4a Ensure context inserted via commands is syntax-highlighted (#13133)

Click to expand commit body
Release Notes:

- N/A

Antonio Scandurra created

bedf57d Fix cursor blinking not working (#13130)

Click to expand commit body
This was a bug in https://github.com/zed-industries/zed/pull/12990, due
to the new focus restoration logic introduced with the editor.

With this pull request, the editor will only restore focus when a
descendant lost it. If the focus was lost by the editor itself, there's
no need to restore it and we can instead proceed with starting the
cursor blink.

Release Notes:

- N/A

Antonio Scandurra created

4855da5 Don't hide inline assist when editor loses focus (#12990)

Click to expand commit body
Release Notes:

- Now when an editor loses focus (e.g. from switching tabs) and then
gains focus again, it doesn't close the inline assist. Instead, it only
closes when you move the cursor outside of it, e.g. by clicking
somewhere else in its parent editor.

---------

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

Richard Feldman and Antonio Scandurra created

15d3e54 Remove textDocument/diagnostic capability (#13102)

Click to expand commit body
Zed currently does not support pull diagnostics, yet still has the
capability for it (`textDocument/diagnostic`) (added in
https://github.com/zed-industries/zed/commit/14993e087669c7103df2239a2628ee0d3ce38596).
Some language servers therefore assume Zed will use pull diagnostics,
which leads to there being no diagnostics at all. This PR removes this
capability, making it possible to get diagnostics with more language
servers.

Release Notes:

- N/A

Edwin Aronsson created

064bdab theme: Warn when deprecated `scrollbar_thumb.background` style is used (#13081)

Click to expand commit body
This PR adds a warning when the deprecated `scrollbar_thumb.background`
style property is present in a theme.

This property has been succeeded by `scrollbar.thumb.background`.

The primary reason for this is to get it into the `zed-extension` CLI so
that we can use it to detect which themes need to be updated.

Release Notes:

- N/A

Marshall Bowers created

38cb95f linux: Update cosmic_text (#13095)

Click to expand commit body
Bumps cosmic_text, removes some stale `todo`s and stores a ShapeBuffer
to prevent reallocations

Improvements:

- Performance should be a lot better (haven't actually tested it)
- Fixed display of `\t` in the terminal

![image](https://github.com/zed-industries/zed/assets/71973804/ca994912-851d-48ef-8dc7-b244c9eb484d)

![image](https://github.com/zed-industries/zed/assets/71973804/42fa9acf-ec10-4247-a5e3-2d4fe664ded6)


Release Notes:

- N/A

apricotbucket28 created

7cc2538 vim: Fix minor keybinding bugs (#13086)

Click to expand commit body
Fixes: #13068
Fixes: #9383



Release Notes:

- vim: Fixed `home` and `end` in visual mode (#13068)
- vim: Fixed inserting a 0 in insert mode with a count (#9383)

Conrad Irwin created

fc19cc0 vim: ctrl-r while we're on a register kick (#13085)

Click to expand commit body
Release Notes:

- vim: Support `ctrl-r X` to paste in insert mode (#4308)

Conrad Irwin created

e6def62 Silence git related errors on linux (#13083)

Click to expand commit body
It's hard to imagine a world where we should package this on linux.

Release Notes:

- N/A

Conrad Irwin created

ff2347d Add events for identifying node projects (#13078)

Click to expand commit body
Release Notes:

- N/A

Joseph T. Lyons created

6319ae0 extension_cli: Allow building without dynamically linking WebRTC (#13080)

Click to expand commit body
This PR fixes an issue where the `zed-extension` CLI could no longer be
run as a static binary due to the following error:

```
dyld[36964]: Library not loaded: @rpath/WebRTC.framework/WebRTC
  Referenced from: <56332E1D-292E-3F9B-97B9-8A9962D21599> /Users/maxdeviant/projects/zed-extensions/zed-extension
  Reason: no LC_RPATH's found
fish: Job 1, './zed-extension --scratch-dir .…' terminated by signal SIGABRT (Abort)
```

This is the result of the addition of a dependency on `workspace` to the
`extension` crate (and thus, the `extension_cli` crate) in #12360.

Since we don't actually _need_ WebRTC in the extension CLI, we don't
care about dynamically linking it.

To resolve this, a new `no-webrtc` feature has been added to the
`live_kit_client` client crate and threaded through all of the crates
between it and the `extension_cli`.

Enabling the `no-webrtc` feature will prevent linking to the LiveKit
Swift SDK as well as linking the WebRTC framework.

Release Notes:

- N/A

Marshall Bowers created

a8bd602 Remove stray eprintln

Max Brunsfeld created

af45db6 Fix FS-related issues that were causing a test failure on linux (#13072)

Click to expand commit body
This fixes `project_tests::rescan_and_remote_updates` .

That test was actually correctly failing, revealing two bugs on Linux.

Release Notes:

- Fixed an issue where file renames were not detected on Linux.
- Fixed performance problems caused by excessive file system events on
Linux.

---------

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

Max Brunsfeld and Mikayla created

fab4b01 Make linux prompts a bit better (#13067)

Click to expand commit body
Also prompt with a sensible error on install:cli

Release Notes:

- N/A

Conrad Irwin created

2f6cb49 overwrite

Conrad Irwin created

411ee7a Move keyboard focus when foregrounding windows on X11 (#13071)

Click to expand commit body
Release Notes:

- N/A

Conrad Irwin created

831f7db Fix collab deploy (#13076)

Click to expand commit body
Release Notes:

- N/A

Conrad Irwin created

78fd378 Remove extra `cargo install cargo-about` (#13077)

Click to expand commit body
This PR removes an extra `cargo install cargo-about` in the
`generate-licenses` script, as we already install a specific version of
`cargo-about`.

It also improves the way we detect if `cargo-about` is already
installed, to avoid logging an error when it is not installed.

Resolves #13075.

Release Notes:

- N/A

Marshall Bowers created

d5a6ca4 Add os_name and os_version to all event types (#13063)

Click to expand commit body
Release Notes:

- N/A

Joseph T. Lyons created

ea69846 Silence error logs in `zed` tests (#13069)

Click to expand commit body
This PR silences the remaining error logs in the `zed` crate tests by
initializing `env_logger` in test mode.

This means that the logs will no longer be shown unless `--nocapture` is
passed to `cargo test`.

Release Notes:

- N/A

Marshall Bowers created

ff8486e Properly align excerpt and outline items (#13070)

Kirill Bulatov created

9bc3c68 Register Markdown language in some tests to silence error logs (#13066)

Click to expand commit body
This PR registers the Markdown language in some of the tests in the
`zed` crate to silence the error logs about the language not being found
when the chat panel attempts to load it.

Release Notes:

- N/A

Marshall Bowers created

45ae0dc Fix dw at the end of a soft wrapped line (#13065)

Click to expand commit body
Co-Authored-By: Richard <richard@zed.dev>
Release Notes:

- vim: Fixed behavior of `dw` at the end of a soft wrapped line

Co-authored-by: Richard <richard@zed.dev>

Conrad Irwin and Richard created

e40c49a Fix incorrect data being assigned to os_name (#13064)

Click to expand commit body
Release Notes:

- N/A

Joseph T. Lyons created

0d43d48 Use square buttons for code action and run indicators in the gutter (#12906)

Click to expand commit body
### Before

<img width="94" alt="Screenshot 2024-06-14 at 1 34 54 PM"
src="https://github.com/zed-industries/zed/assets/1486634/fe756434-f072-4506-8fd2-c220c17cf112">

<img width="115" alt="Screenshot 2024-06-14 at 1 35 04 PM"
src="https://github.com/zed-industries/zed/assets/1486634/e378f02b-cb55-467d-9a5e-04e162d6daab">

### After

<img width="128" alt="Screenshot 2024-06-14 at 1 34 27 PM"
src="https://github.com/zed-industries/zed/assets/1486634/3d857a85-7673-43b1-8c48-56766455dd81">

<img width="134" alt="Screenshot 2024-06-14 at 1 34 33 PM"
src="https://github.com/zed-industries/zed/assets/1486634/b04c1fef-0a30-4eb1-b8f7-4eff351fcdc7">


Release Notes:

- Improved the look of code action and run indicators in the gutter
([#12803](https://github.com/zed-industries/zed/issues/12803)).

---------

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

versecafe and Marshall Bowers created

6ca09bd project: Disable `project_tests::test_rescan_and_remote_updates` on Linux (#13062)

Click to expand commit body
This PR disables the
`project::project_tests::test_rescan_and_remote_updates` test on Linux,
as we've been seeing it fail quite consistently in CI.

We can re-enable it once we've had a chance to investigate and fix.

Release Notes:

- N/A

Marshall Bowers created

53f702c Allow Ollama Model KeepAlive to be None, defaulting to indefinite (#13059)

Click to expand commit body
Putting this back to `Option<KeepAlive>` to make existing configs keep
working.

Release Notes:

- N/A

Kyle Kelley created

b036533 Update `Cargo.lock` (#13061)

Click to expand commit body
This PR updates `Cargo.lock`, since it was missed in #12818.

Release Notes:

- N/A

Marshall Bowers created

993109a 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

4cb45e6 windows: Update `windows-rs` crate and better error handling in `DirectWrite` (#12818)

Click to expand commit body
- Update `windows-rs` from `0.56` to `0.57`
- Use the newly introduced `Owned` struct in `0.57` to handle the RAII
stuff of `HANDLE`
- Better error handling in `DirectWrite`

Release Notes:

- N/A

张小白 created

1413b5a Select the first available model when none configured for Ollama (#13048)

Click to expand commit body
Selects the first available model for Ollama if a model is not
configured.

Release Notes:

- N/A

Kyle Kelley created

d9c21b4 Accept numeric keep alive in Ollama settings (#13046)

Click to expand commit body
This adds the ability to set the keep alive as an integer, including
`-1` for staying alive indefinitely until a new model is loaded or
Ollama exits. I've also set the default to `-1` so that models stay
ready to go for Zed to use.

Release Notes:

- N/A

Kyle Kelley created

44f66aa rustdoc: Add `CrateName` newtype (#13056)

Click to expand commit body
This PR adds a `CrateName` newtype used to represent crate names.

This makes the code a bit more self-descriptive and prevents confusing
other string values for a crate name.

It also changes the internal representation from a `String` to an
`Arc<str>` for cheaper clones.

Release Notes:

- N/A

Marshall Bowers created