Commit log

89d2ace Make LSP task cancellation discoverable (#13226)

Click to expand commit body
Release Notes:

- Added the ability to cancel a cargo check by clicking on the status
bar item.

Max Brunsfeld created

84a44be storybook: Use `theme::setup_ui_font` helper function (#13227)

Click to expand commit body
This PR updates the storybook to use the new `theme::setup_ui_font`
helper function to initialize the UI font.

Release Notes:

- N/A

Marshall Bowers created

6b9ddbf Add more menus to Zed (#12940)

Click to expand commit body
### TODO

- [x] Make sure keybinding shows up in pane + menu
- [x] Selection tool in the editor toolbar
- [x] Application Menu
- [x] Add more options to pane + menu
   - Go to File...
  - Go to Symbol in Project... 
- [x] Add go items to the selection tool in the editor:
   - Go to Symbol in Editor...
   - Go to Line/Column...
   - Next Problem
   - Previous Problem
- [x] Fix a bug where modals opened from a context menu aren't focused
correclty
- [x] Determine if or what needs to be done with project actions:
- Difficulty is that these are exposed in the UI via clicking the
project name in the titlebar or by right clicking the root entry in the
project panel. But they require reading and are two clicks away. Is that
sufficient?
    - Add Folder to Project
    - Open a new project
    - Open recent
 - [x] Get a style pass 
 - [x] Implement style pass
   - [x] Fix the wrong actions in the selection menu
   - [x] Show selection tool toggle in the 'editor settings' thing
- [x] Put preferences section from the app menu onto the right hand user
menu
- [x] Add Project menu into app menu to replace 'preferences' section,
and put the rest of the actions there
- [ ] ~~Adopt `...` convention for opening a surface~~ uncertain what
this convention is.
   - [x] Adopt link styling  for webview actions
   - [x] Set lucide hamburger for menu icon
   - [x] Gate application menu to only show on Linux and Windows




Release Notes:

- Added a 'selection and movement' tool to the Editor's toolbar, as well
as controls to toggle it and a setting to remove it (`"toolbar":
{"selections_menu": true/false }`)
- Changed the behavior of the `+` menu in the tab bar to use standard
actions and keybindings. Replaced 'New Center Terminal' with 'New
Terminal', and 'New Search', with the usual 'Deploy Search'. Also added
item-creating actions to this menu.
- Added an 'application' menu to the titlebar to Linux and Windows
builds of Zed

Mikayla Maki created

8af8493 typescript: Make VTSLS the default language server for Typescript (#13140)

Click to expand commit body
Additionally, limit # of returned completion items + use fuzzy filtering
on VTSLS side. Prime LSP handler for response handling.


Release Notes:

- VTSLS is now a default language server for TypeScript, TSX, and
JavaScript.

Piotr Osiewicz created

39edbe1 Update `.mailmap` (#13219)

Click to expand commit body
This PR updates the `.mailmap` file to merge some commit authors using
multiple emails.

Release Notes:

- N/A

Marshall Bowers created

f6fa660 wayland: Refactor clipboard implementation (#12405)

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

Replaces the `copypasta`/`smithay-clipboard` implementation with a new,
custom one

TODO list:

- [x] Cleanup code
- [x] Remove `smithay-clipboard`
- [x] Add more mime types to the supported list

Release Notes:

- Fixed drag and drop on Gnome
- Fixed clipboard paste on Hyprland

apricotbucket28 created

b55961b ruby: Update tree-sitter grammar version (#13216)

Click to expand commit body
Hi, this pull request just updates the `tree-sitter` version for the
Ruby language. I checked the changelog and it doesn't contain breaking
changes. Thanks.

tree-sitter/tree-sitter-ruby@9d86f3761bb3 ->
tree-sitter/tree-sitter-ruby@dc2d7d6b50f9


Release Notes:

- N/A

Vitaly Slobodin created

01b836a util: Replace `lazy_static!` with `OnceLock` (#13215)

Click to expand commit body
This PR replaces the `lazy_static!` usages in the `util` crate with
`OnceLock` from the standard library.

This allows us to drop the `lazy_static` dependency from this crate.

Release Notes:

- N/A

Marshall Bowers created

41180b8 util: Remove leftover `http` module (#13214)

Click to expand commit body
This PR removes a leftover `http` module in `util` that was lingering
from #11680.

Release Notes:

- N/A

Marshall Bowers created

81475ac paths: Replace `lazy_static!` with `OnceLock` (#13213)

Click to expand commit body
This PR replaces the `lazy_static!` usages in the `paths` crate with
`OnceLock` from the standard library.

This allows us to drop the `lazy_static` dependency from this crate.

The paths are now exposed as accessor functions that reference a private
static value.

Release Notes:

- N/A

Marshall Bowers created

ba59e66 Improve Python syntax highlighting (#12868)

Click to expand commit body
Release Notes:

- Improve syntax highlighting in Python #12578 

Before:
<img width="1181" alt="Screenshot 2024-06-08 at 01 44 54"
src="https://github.com/zed-industries/zed/assets/87859239/0b8ab26b-149b-477e-af08-8cd9f2b1c117">

After:

<img width="1184" alt="Screenshot 2024-06-10 at 01 02 35"
src="https://github.com/zed-industries/zed/assets/87859239/a319a5ea-54b7-4681-951d-130ea26aa390">

---------

Co-authored-by: Joseph T Lyons <JosephTLyons@gmail.com>

Nigel Jose and Joseph T Lyons created

5ede483 GitHub Issue Templates: Hide Zed Logs (#13211)

Click to expand commit body
Add details/summary block to GitHub issue templates so zed.log can be
hidden by default.

The diff for this is messy because the existing files were not correctly
auto-formatted. So I created two commits, one for autoformat and the
other for the changes.

I tested it on a private repo. When you first open the issue it looks
like this:
<img width="879" alt="image"
src="https://github.com/zed-industries/zed/assets/145113/07cda992-4d62-4c27-abaa-5c272ff65345">

Then when you double-click inside it becomes editable:
<img width="880" alt="image"
src="https://github.com/zed-industries/zed/assets/145113/970c6669-84da-41d1-9119-d3eb9b090066">
 

Release Notes:

- N/A

Peter Tripp created

3701e19 Add runnable for rust main function (#13087)

Click to expand commit body
Release Notes:

- N/A



https://github.com/zed-industries/zed/assets/21101490/7a57805c-1d31-48b2-bc2c-3a6f0b730d72

Panghu created

5dc26c2 util: Use GlobSet in PathMatcher (#13197)

Click to expand commit body
Previously we were using a single globset::Glob in PathMatcher; higher
up the stack, we were then resorting to using a list of PathMatchers.
globset crate exposes a GlobSet type that's better suited for this use
case. In my benchmarks, using a single PathMatcher with GlobSet instead
of a Vec of PathMatchers with Globs is about 3 times faster with the
default 'file_scan_exclusions' values. This slightly improves our
project load time for projects with large # of files, as showcased in
the following videos of loading a project with 100k source files. This
project is *not* a git repository, so it should measure raw overhead on
our side.

Current nightly: 51404d4ea08cb5ba1cd678b9963037bde31aa7b2


https://github.com/zed-industries/zed/assets/24362066/e0aa9f8c-aae6-4348-8d42-d20bd41fcd76

versus this PR:


https://github.com/zed-industries/zed/assets/24362066/408dcab1-cee2-4c9e-a541-a31d14772dd7



Release Notes:

- Improved performance in large worktrees

Piotr Osiewicz created

64d815a linux/x11: Fix closing of GPUI windows not working (#13201)

Click to expand commit body
This fixes everything but the main Zed window (GPUI examples, prompt
library, etc.) not being closable by clicking on the X in X11.

We had a dangling reference before: we would remove the window from the
X11 state, but GPUI itself would still have the window in its
references.

In order to fix this we have to call `window.close()`, which ends up
calling `cx.remove_window()`, which removes the reference.

That in turn then causes the reference to be dropped, which cleans up
the X11 state for the window.

Release Notes:

- N/A

Thorsten Ball created

5dc5486 project panel: Improve performance in large projects (#13202)

Click to expand commit body
In #12980 I've hoisted out creation of HashSet<PathInWorktree> out of
render_entry, which made us not create that hash set for each entry in a
worktree on each frame. In current nightly, we do it once per call to
render() on the whole worktree, which is better.

However, we can still reuse the hashed between the frames, if the
worktree has not changed. Once we calculate the hashset for a given
worktree state, we keep it around for as long as the state is valid for.
We calculate the HashSet lazily, as we may not necessarily need it if
the project panel is collapsed. In large worktrees, this helps keep the
CPU usage of the main thread low-ish.


Release Notes:

- Improved performance of project panel in large worktrees.

Piotr Osiewicz created

e4ba336 Preserve sections generated by slash commands when reloading a context (#13199)

Click to expand commit body
Release Notes:

- N/A

Antonio Scandurra created

195a270 vim: Display pending keys in Vim mode indicator (#13195)

Click to expand commit body
This changes the mode indicator to now show pending keys and not just
pending operators.


Release Notes:

- Added pending keys to the mode indicator in Vim mode.

Demo:



https://github.com/zed-industries/zed/assets/1185253/4fc4ffd9-2ba7-4e2c-b2c3-cd19b40cb640

Thorsten Ball created

3a26a48 lsp: Revert URL type change (#13193)

Click to expand commit body
This reverts URI changes made in
https://github.com/zed-industries/zed/pull/12928 while keeping the perf
goodies in tact. We should keep an eye out for
https://github.com/gluon-lang/lsp-types/issues/284
Fixes: https://github.com/zed-industries/zed/issues/13135
Fixes: https://github.com/zed-industries/zed/issues/13131
Release Notes:

- N/A

Piotr Osiewicz created

479c5df Add more rust-analyzer configuration examples in the docs (#13189)

Click to expand commit body
Release Notes:

- N/A

Kirill Bulatov created

51404d4 Fix ci" on a brazillian keyboard (#13185)

Click to expand commit body
Fixes: #12523

Release Notes:

- vim: Fix ci" on keyboards where typing a " requires the IME (#12523)

Conrad Irwin created

05c4c78 Fix ctrl-r with no register (#13184)

Click to expand commit body
Release Notes:

- N/A

Conrad Irwin created

0af6e44 Don't generate invalid ranges for C code (#13183)

Click to expand commit body
Fixes: #13128

Release Notes:

- Fixed a panic when editing C code
([#13128](https://github.com/zed-industries/zed/issues/13128)).

Conrad Irwin created

7003b0f Allow canceling in-progress language server work (e.g. `cargo check`) (#13173)

Click to expand commit body
Release Notes:

- Added a more detailed message in place of the generic `checking...`
messages when Rust-analyzer is running.
- Added a rate limit for language server status messages, to reduce
noisiness of those updates.
- Added a `cancel language server work` action which will cancel
long-running language server tasks.

---------

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

Max Brunsfeld and Richard created

f489c8b Allow for non-official builds to report telemetry (#13175)

Click to expand commit body
Release Notes:

- N/A

Joseph T. Lyons created

be02b2f chore: Bump git2 to 0.19 (#13180)

Click to expand commit body
Related to: https://github.com/zed-industries/zed/issues/8242

Release Notes:

- N/A

Piotr Osiewicz created

258a8a3 Extract paths out of `util` (#13182)

Click to expand commit body
This PR extracts the definition of the various Zed paths out of `util`
and into a new `paths` crate.

`util` is for generic utils, while these paths are Zed-specific. For
instance, `gpui` depends on `util`, and it shouldn't have knowledge of
these paths, since they are only used by Zed.

Release Notes:

- N/A

Marshall Bowers created

78e0f71 ui: Use `PopoverMenu::new` for constructing `PopoverMenu`s (#13178)

Click to expand commit body
This PR replaces the `popover_menu` function for constructing
`PopoverMenu`s with a `PopoverMenu::new` associated function.

This brings `PopoverMenu` in line with our other UI components.

Release Notes:

- N/A

Marshall Bowers created

59104a0 assistant: Show an indicator when a crate is being indexed (#13174)

Click to expand commit body
This PR adds an indicator when a crate is being indexed as part of the
`/rustdoc` command invocation.


https://github.com/zed-industries/zed/assets/1486634/0dd4b663-658c-4be5-a342-cfbd7a938fca

Release Notes:

- N/A

Marshall Bowers created

7aa28c9 rustdoc: Strip out additional chrome (#13172)

Click to expand commit body
This PR updates the HTML to Markdown converter for rustdoc to strip out
some additional chrome.

Namely, anchors and links to source files.

Release Notes:

- N/A

Marshall Bowers created

bb1d52b docs: Remove references to `copilot` and `show_copilot_suggestions` settings (#13169)

Click to expand commit body
This PR removes references to the deprecated `copilot` and
`show_copilot_suggestions` settings.

These settings were removed in #13167.

Release Notes:

- N/A

Marshall Bowers created

ca035db 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

71cc95d Remove `copilot` and `show_copilot_suggestions` setting aliases (#13167)

Click to expand commit body
This PR removes the Copilot-specific aliases for the
`inline_completions` and `show_inline_completions` settings.

While these aliases were added to maintain backward-compatibility, the
aliasing behavior here can lead to a confusing experience when both keys
end up in the `settings.json`.

Release Notes:

- Breaking Change: Removed the `copilot` alias for the
`inline_completions` setting. If you have settings under `copilot` they
should get moved to `inline_completions`.
- Breaking Change: Removed the `show_copilot_suggestions` alias for the
`show_inline_completions` setting.

Marshall Bowers created

3707734 windows: Fix executable display name (#13091)

Click to expand commit body
Closes #12907 

**Note:** To actually take effect, delete the registered key of `Zed` in
`HKEY_CLASSES_ROOT\Local
Settings\Software\Microsoft\Windows\Shell\MuiCache`, for example, delete
this:

![Screenshot 2024-06-15
180939](https://github.com/zed-industries/zed/assets/14981363/8da94188-a869-48bb-9ecf-18a0a2cd3061)


### Before

1. In Taskmanager

![Screenshot 2024-06-15
175146](https://github.com/zed-industries/zed/assets/14981363/bb58a136-9f28-4f7f-9079-d83bc8b27580)

2. Right click taskbar

![Screenshot 2024-06-15
175211](https://github.com/zed-industries/zed/assets/14981363/113797c5-fa38-494e-a939-7a05adfa6d9e)

### After

![Screenshot 2024-06-15
174800](https://github.com/zed-industries/zed/assets/14981363/a1e9c1f5-da05-4a47-a97f-bd297f22ae37)

![Screenshot 2024-06-15
175847](https://github.com/zed-industries/zed/assets/14981363/692ed3ac-6ad0-4804-894e-1fae375ebd3d)

Release Notes:

- N/A

张小白 created

e19627d windows: Fix regression introduced by a prev PR (#13090)

Click to expand commit body
Fix regression introduced by #12991 

### Before

The re-position and re-size of a window is broken.


https://github.com/zed-industries/zed/assets/14981363/d4fb9dce-707e-4ab1-9ff5-f355b7fdd8a8

### After



https://github.com/zed-industries/zed/assets/14981363/7fd232e6-ff6c-4b7f-ad32-c284acd4f6db




Release Notes:

- N/A

张小白 created

bb75d87 Remove `language_overrides` setting alias (#13164)

Click to expand commit body
This PR removes the `language_overrides` alias for the `languages`
setting.

I've seen a number of people run into issues where they have both
`languages` and `language_overrides` in their settings and get confused
when their settings don't seem to apply as expected.

This is a breaking change, but I think it is a necessary one to prevent
more users from running into issues.

Release Notes:

- Breaking Change: Removed the `language_overrides` alias for the
`languages` setting. If you have settings under `language_overrides`
they should get moved to `languages`.

Marshall Bowers created

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