Commit log

f987ff0 Improve JSDoc injection in comments (#10800)

Click to expand commit body
This PR improves JSDoc injection for syntax highlighting. Now we are
only injecting JSDoc in block comments. The regex was mostly adapted
from nvim-treesitter's implementation (lua) to a rust regex.


https://github.com/nvim-treesitter/nvim-treesitter/blob/eb93c3b2fbe9ca55d70e9297d5c037880b997559/queries/ecma/injections.scm#L1-L6

**Before:**
<img width="441" alt="Screenshot 2024-04-20 at 5 51 04 AM"
src="https://github.com/zed-industries/zed/assets/20072509/8e77851d-22ad-4dc4-8e10-9ac558d3cf40">

**After:**
<img width="441" alt="Screenshot 2024-04-20 at 5 52 05 AM"
src="https://github.com/zed-industries/zed/assets/20072509/a607c219-6973-40c3-958c-44a003d008c3">

Release Notes:

- Changed detection of JSDoc to only do syntax highlighting in block
comments. Improved previous work done in #7826.

José Olórtegui created

2306e3c Add brackets and missing operators to Python grammar (#11180)

Click to expand commit body
Release Notes:

- Fixed #4341 

Before:

![before](https://github.com/zed-industries/zed/assets/16101408/34672e47-5131-481a-803e-064db8126cc9)

After:

![after](https://github.com/zed-industries/zed/assets/16101408/7d2405c6-d04f-4738-ad2e-a9424b1c9d19)

adorabilis created

f252d9c Fix alt-shift-(left|right) behaviour (#11292)

Click to expand commit body
Not sure what the etiquette is here, but in the interest of fixing
#10242, I've re-implemented @jish's PR
https://github.com/zed-industries/zed/pull/10535 and have signed the CLA


Release Notes:

- Fixed `alt-shift-left` and `alt-shift-right` in the Textmate default
keybindings.
([#10242](https://github.com/zed-industries/zed/issues/10242))

TextMate keymap uses default option shift arrow selection

Dom Christie created

5ce4590 install.sh: use per-channel binary names in `~/.local/bin` (#11339)

Click to expand commit body
Release Notes:

- N/A

Thorsten Ball created

cd03e47 Improve deleted hunk blocks' behavior (#11340)

Click to expand commit body
* clear their selections on focus lost
* allow reverting diff hunks when the caret is inside of the deleted
hunk diff editor block

Release Notes:

- N/A

Kirill Bulatov created

e69e25c linux: Use app_id as filepath for desktop file (#11337)

Click to expand commit body
This undoes the changes from #11333 and uses the path of the `.desktop`
file instead.

According ot the spec
(https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html)
the filename and path of the `desktop` file are used to determine the
desktop file ID.

This is enough to match the windows (which have the same WMClass/app-id)
with the desktop entry.

Release Notes:

- N/A

Thorsten Ball created

61a60d3 Tie the Zed application ID to the release channel (#11335)

Click to expand commit body
Since we do want to have different versions of Zed running on the same
Linux install, we need to give them different application IDs so they're
not grouped together as the same application.

This changes the app_id depending on the releaes channel and, crucially,
it also matches them up with the bundle identifiers that we use on
macOS.

Release Notes:

- N/A

Thorsten Ball created

4024b9a gpui: Fix `start_display_link` leading to resource leak on hidden windows (#11289)

Click to expand commit body
Release Notes:

- N/A

While developing [Loungy](https://loungy.app), I noticed that everytime
I wake my laptop, Loungy starts consuming 100% CPU. I traced it down to
`start_display_link` as there was this error message at the time of wake
up:

```
[2024-05-02T05:02:31Z ERROR util] /Users/matthias/zed/crates/gpui/src/platform/mac/window.rs:420: could not create display link, code: -6661
```

The timeline is this:

1. The application is hidden with `cx.hide()`
2. The system is put to sleep and later woken up
3. `window_did_change_screen` would trigger immediately after wakeup,
calling `start_display_link`
4. `start_display_link` fails catastrophically as `DisplayLink::new`
starts hogging all the CPU for some reason?
5. throws the error message above
6. Once the window is opened, `window_did_change_occlusion_state` it
retriggers `start_display_link` and the CPU issue subsides

Matthias Grandl created

b523ee6 Use Rope instead of String for buffer diff base (#11300)

Click to expand commit body
As an attempt to do things better when showing diff hunks, store diff
base as Rope, not String, to have cheaper clones when the diff base text
is reused, e.g. creating another buffer with the diff base text for hunk
diff expanding.

Release Notes:

- N/A

Kirill Bulatov created

5f0046b linux: Set StartupWMClass in .desktop file (#11333)

Click to expand commit body
This has to match the WMClass/AppID, which was added here: #10909

Release Notes:

- N/A

Thorsten Ball created

155a80c Rename test (#11317)

Click to expand commit body
This naming makes the purpose of the test clearer to people new to the
project.

Max Linke created

7bc1025 Wayland: Fix segfault when exiting with `ctrl+q` (#11324)

Click to expand commit body
Release Notes:

- N/A

When closing with `ctrl-q`, drop_window is not called and results in a
segfault.

Fernando Tagawa created

b58bf64 Increase rate limits for computing embeddings (#11326)

Click to expand commit body
- Also, remove the rate limit for getting cached embeddings entirely.

Release Notes:

- N/A

Nathan Sobo created

47b38a0 Tidy Assistant2 composer (#11321)

Click to expand commit body
Release Notes:

- N/A

Nate Butler created

1915a75 Allow codebase search to be turned on or off within the composer for assistant2 (#11315)

Click to expand commit body
![image](https://github.com/zed-industries/zed/assets/836375/e03d2357-e2e4-49f1-86d6-7593bce13618)


![image](https://github.com/zed-industries/zed/assets/836375/3d769622-82e1-4e6f-bdec-4dce81e43423)


![image](https://github.com/zed-industries/zed/assets/836375/bf79a4ec-1660-47b1-8525-e741575dc5d4)

Release Notes:

- N/A

Kyle Kelley created

43ad470 Use outline queries to chunk files syntactically (#11283)

Click to expand commit body
This chunking strategy uses the existing `outline` query to chunk files.
We try to find chunk boundaries that are:

* at starts or ends of lines
* nested within as few outline items as possible

Release Notes:

- N/A

Max Brunsfeld created

1abd580 Slicker remote project creation (#11309)

Click to expand commit body
Inline the editor into the modal

Release Notes:

- N/A

---------

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

Conrad Irwin and Bennet created

78a8a58 Iterate on Assistant 2 composer UI (#11306)

Click to expand commit body
- Change project index tool rendering in composer
- Update composer UI style

Release Notes:

- N/A

---------

Co-authored-by: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>

Nate Butler , Marshall Bowers , and Marshall Bowers created

9bac64a Rename RemoteProject -> DevServerProject (#11301)

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

In a fit of ill-advisedness I called these things remote projects;
forgetting that remote project is also what we call collaboratively
shared projects.

Release Notes:

- N/A

---------

Co-authored-by: Mikayla <mikayla@zed.dev>
Co-authored-by: Bennet <bennetbo@gmx.de>

Conrad Irwin , Mikayla , and Bennet created

d61c47d elixir: Bump to v0.0.2 (#11303)

Click to expand commit body
This PR bumps the Elixir extension to v0.0.2.

Changes:

- https://github.com/zed-industries/zed/pull/11302

Release Notes:

- N/A

Marshall Bowers created

8b28433 elixir: Respect LSP settings for `elixir-ls` (#11302)

Click to expand commit body
This PR updates the Elixir extension to respect the LSP settings for
`elixir-ls`:

```json
"lsp": {
  "elixir-ls": {
    "settings": {
      "dialyzerEnabled": false
    }
  }
}
```

```
Received workspace/didChangeConfiguration
Received client configuration via workspace/didChangeConfiguration
%{"dialyzerEnabled" => false}
Loaded DETS databases in 33ms
Loaded DETS databases in 10ms
Compiling 65 files (.ex)
```

Release Notes:

- N/A

Marshall Bowers created

98ea5e1 Add `convert to opposite case` command (#11290)

Joseph T. Lyons created

092869d Use default allocator as a default (#11293)

Kirill Bulatov created

aeff468 Fix text offset in the expanded deleted hunk (#11295)

Kirill Bulatov created

23f1914 Do not show inline blame information on empty lines (#11294)

Click to expand commit body
cc @iamnbutler 

Release Notes:

- Changed inline git blame information to not show up on empty lines.

Demo/proof:



https://github.com/zed-industries/zed/assets/1185253/e506cf1f-81b1-407b-8dc7-1666b31ae142

Thorsten Ball created

edff78e Allow ignoring soft wraps when moving to line ends (#11153)

Click to expand commit body
Release Notes:

- Fixed #10888

This patch addresses behavior of
`Editor::move_to_{beginning|end}_of_line`. It adds a setting,
`stop_at_soft_wraps` when defining a keymap for the
`editor::MoveToBeginningOfLine` and `editor::MoveToEndOfLine` actions.
When `true`, it causes movement to the either end of the line (via, for
example Home or End), to go to the logical end, as opposed to the
nearest soft wrap point in the respective direction.

---------

Co-authored-by: Kirill Bulatov <kirill@zed.dev>

Tarun Verghis and Kirill Bulatov created

c812304 typescript: Complete function calls with snippets (#11157)

Click to expand commit body
This allows function call (i.e. snippet) completion with
`typescript-language-server`. So far that didn't work, because
`typescript-language-server` doesn't respond with `insertText` when
getting the completions, but only when then sending
`completionItem/resolve` requests. See:
https://github.com/hrsh7th/nvim-cmp/issues/646#issuecomment-992765479

What this PR does is to support text edits in the response to
`completionItem/resolve`, which means updating the completion item.

It then enables this feature by default for
`typescript-language-server`.


TODOs:

- [x] Make this work over collab
- [x] Test that this doesn't break existing language server support
- [x] Refactor duplicated code

Release Notes:

- Added support for function call completion when using
`typescript-language-server`. This will result in parameters being
added, which can then be changed and navigated with `<tab>`. For this to
work with `typescript-language-server`, the documentation for a given
completion item needs to be resolved, meaning that if one types very
quickly and accepts completion before `typescript-language-server` could
respond with the documentation, no full function completion is used.

Demo:


https://github.com/zed-industries/zed/assets/1185253/c23ebe12-5902-4b50-888c-d9b8cd32965d

Thorsten Ball created

d8ca153 linux preview… (#11286)

Click to expand commit body
Release Notes:

- (preview only) You can now install an (alpha) preview build on linux

Conrad Irwin created

b487f2c Don't iterate over all system processes (#11281)

Click to expand commit body
Release Notes:

- Fixed a UI beachball when gathering process information

Conrad Irwin created

3b5fd4e Only keep one blame up-to-date (#11274)

Click to expand commit body
I was experiencing hang, and we blamed it on spawning a few hundred git
processes
simultaneously.

cc @MrNugget

Release Notes:

- Fixed slowness with hundreds of buffers open doing git blame.

Conrad Irwin created

eb0f1e7 Show dev server in the titlebar for remote projects (#11276)

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

Release Notes:

- Show server name in the titlebar for remote projects

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

Conrad Irwin and Mikayla created

74f8ef0 Clean up `Indicator` (#11275)

Click to expand commit body
This PR cleans up the `Indicator` component:

- Renamed `IndicatorStyle` to `IndicatorKind` and made it private.
- Fixed `Indicator::bar()` to construct an indicator using the right
`IndicatorKind`.
- Removed the `IndicatorIcon`, since we didn't actually end up using it.

Release Notes:

- N/A

Marshall Bowers created

fa0253b Disallow adding folders to projects and opening the terminal in remote projects (#11261)

Click to expand commit body
Release Notes:

- Fixed broken UI in remote projects

---------

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

Conrad Irwin and Mikayla created

e5b88ac Use HIGH priority to wake blocked timers (#11269)

Click to expand commit body
One contributor to some beach-balls was that the main thread was calling
block_with_timeout, but the timeout never fired.

Release Notes:

- Reduced main thread hangs under very high system load

Conrad Irwin created

4739797 Add the ability to render icons as indicators (#11273)

Click to expand commit body
This PR adds the ability to render `Icon`s as an `Indicator`.

Release Notes:

- N/A

Co-authored-by: Nate Butler <nate@zed.dev>

Marshall Bowers and Nate Butler created

4f53128 Replace rem size literals with constant (#11272)

Click to expand commit body
This PR replaces the rem size literals with the `BASE_REM_SIZE_IN_PX`
constant.

This way we can retain our source of truth for the rem size that we're
designing against.

Release Notes:

- N/A

Marshall Bowers created

a194c0a Compile and instantiate wasm modules on a background thread (#11270)

Click to expand commit body
Release Notes:

- Fixed a hang that could occur when loading some extensions, by loading
extensions on a background thread.

Max Brunsfeld created

fb0d2e9 assistant2: Use new icon in status bar (#11268)

Click to expand commit body
This PR updates the new assistant to use the new (temporary) icon in the
status bar to distinguish it.

We added the icon in #11257, but hadn't wired it up.

Release Notes:

- N/A

Marshall Bowers created

aa1b4c7 Add an `explore extensions` button to welcome screen (#11265)

Click to expand commit body
We are still getting comments from users saying they didn't know we had
extensions until just now. This doesn't fix anything for existing users,
but it helps make new users more aware, earlier on. There's probably
more we need to do for discoverability, but this feels like it should
help.

Release Notes:

- N/A

Joseph T. Lyons created

dad3cbb Enable random_channel_buffer_tests to run on Linux (#10863)

Click to expand commit body
With this patch applied I can see the following line in the test output:

test tests::random_channel_buffer_tests::test_random_channel_buffers has
been running for over 60 seconds

Without it I run in a failure with 'Invalid keystroke `cmk-,`



Release Notes:

- N/A

---------

Co-authored-by: Max Linke <kain88-de@users.noreply.github.com>
Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>

Max Linke , Max Linke , and Marshall Bowers created

caa0d35 Allow to toggle git hunk diffs (#11080)

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

Added two new actions with the default keybindings

```
"cmd-'": "editor::ToggleHunkDiff",
"cmd-\"": "editor::ExpandAllHunkDiffs",
```

that allow to browse git hunk diffs in Zed:


https://github.com/zed-industries/zed/assets/2690773/9a8a7d10-ed06-4960-b4ee-fe28fc5c4768


The hunks are dynamic and alter on user folds and modifications, or
toggle hidden, if the modifications were not adjacent to the expanded
hunk.


Release Notes:

- Added `editor::ToggleHunkDiff` (`cmd-'`) and
`editor::ExpandAllHunkDiffs` (`cmd-"`) actions to browse git hunk diffs
in Zed

Kirill Bulatov created

5831d80 Return an error from project index tool when embedding query fails (#11264)

Click to expand commit body
Previously, a failure to embed the search query (due to a rate limit
error) would appear the same as if there were no results.

* Avoid repeatedly embedding the search query for each worktree
* Unify tasks for searching all worktree

Release Notes:

- N/A

Max Brunsfeld created

4b76769 Fix scrollbar auto-show for cursors out of sight (#11244)

Click to expand commit body
This PR fixes scrollbar auto-show feature when there're not visible
cursors. The intial behavior was broken in #11147.

The problem is that `selections` only contains visible selections, so
the `if` with `non_visible_cursors |= true` is only visited in rare edge
cases when we have at least part of the selection still visible on the
screen. But when we scroll far enough from the cursor,
`non_visible_cursors` keeps its default `false` value, which is
incorrect.

Release Notes:

- N/A

Andrew Lygin created

3dc5d48 assistant2: Add `ChatNotice` component (#11262)

Click to expand commit body
This PR adds a new `ChatNotice` component for displaying notices within
the assistant.

We will be able to use this for allowing the user to confirm a project
index request.

<img width="518" alt="Screenshot 2024-05-01 at 2 41 31 PM"
src="https://github.com/zed-industries/zed/assets/1486634/3beaeeaf-6046-4284-ac0a-4248e1f9ac20">

Release Notes:

- N/A

Marshall Bowers created

0858e3f Update Preview release installation instructions (#11263)

Click to expand commit body
This PR updates the Homebrew installation instructions for the Preview
release, which has been migrated to ```homebrew/cask``` as
```zed@preview``` (see
[Commit](https://github.com/Homebrew/homebrew-cask/commit/bad25d79e13ca41b492c976ef70b72117c402d20)).

Release Notes:

- N/A

Klaus Hipp created

97512be Add wiring for UI density (#11260)

Click to expand commit body
Note: You shouldn't use the `unstable.ui_density` setting – it is only
being added for testing and to enable new UI components to be built with
density in mind. Don't expect this to work well, or at all right now.

Adds some of the basic wiring we'll need to start scaling UI elements
throughout the app based on a desired density setting.

Release Notes:

- N/A

Nate Butler created

0fce20d More element arena (#11258)

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

My Zed was running out with collab + chat + recent projects + two splits
on a large monitor


Release Notes:

- N/A

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

Conrad Irwin and Mikayla created

779f675 Assistant 2 temp icon (#11257)

Click to expand commit body
Release Notes:

- N/A

Nate Butler created

15eebb7 blerg (#11254)

Click to expand commit body
Release Notes:

- N/A

Conrad Irwin created

e65a6fd Revert tyop (#11253)

Click to expand commit body
Follup up from
https://github.com/zed-industries/zed/pull/11229#pullrequestreview-2033556336

Release Notes:

- N/A

Conrad Irwin created