Commit log

db86f40 Staple notarization ticket to .dmg and .app bundle (#7775)

Click to expand commit body
This should eliminate a pretty significant (multiple seconds) slowdown
that new users (or users after restarting their OS) have been
experiencing.

Previously, we would just notarize the application, which meant that
every user of the application had to perform an integrity check against
Apple's servers to ensure the app wasn't malicious.

With this commit, we are now using `xcrun stapler staple`, which
attaches the notarization ticket to both the app bundle as well as the
DMG. This should prevent users from needing to reach out to Apple's
notarization service in order to verify the app's integrity.

You can confirm the quarantine status of the application by running `ls
-l@` in `Terminal.app`:

    ls -l@ /Applications/Zed.app/Contents/MacOS/zed

Release Notes:

- Improved startup time when opening Zed for the first time or after
restarting the operating system.

Co-authored-by: Thorsten <thorsten@zed.dev>
Co-authored-by: bennetbo <bennetbo@gmx.de>
Co-authored-by: Martin Palma <m@palma.bz>
Co-authored-by: evrsen <146845123+evrsen@users.noreply.github.com>

Antonio Scandurra , Thorsten , bennetbo , Martin Palma , and evrsen created

41372a9 Linux: Fix x11 crash (#7805)

Click to expand commit body
Release Notes:

- N/A

Roman created

f62baed gpui: Add Wayland support (#7664)

Click to expand commit body
This PR adds Wayland support to gpui using
[wayland-rs](https://github.com/Smithay/wayland-rs). It is based on
[#7598](https://github.com/zed-industries/zed/pull/7598).

It detects Wayland support at runtime by checking the existence of the
`WAYLAND_DISPLAY` environment variable. If it does not exist or is
empty, the X11 backend will be used. To use the X11 backend in a Wayland
session (for development purposes), you just need to unset
WAYLAND_DISPLAY (`WAYLAND_DISPLAY= cargo run ...`).

At the moment it only creates the window and renders the initial content
provided by `BladeRenderer`, so it can run "Hello world" example.


![image](https://github.com/zed-industries/zed/assets/40907255/1655bc64-4d36-4178-9851-bfe42f03f716)

Todo:
- [x] Add basic Wayland support.
- [x] Add window resizing.
- [x] Add window closing.
- [x] Add window updating.
- [ ] Implement input handling, fractional scaling, and support other
Wayland protocols.
- [ ] Implement all unimplemented todo!(linux).
- [ ] Add window decorations or use custom decorations (like on MacOS).
- [ ] Address other missing functionality.

Release Notes:
- N/A

---------

Co-authored-by: gabydd <gabydinnerdavid@gmail.com>
Co-authored-by: Mikayla Maki <mikayla@zed.dev>

Roman , gabydd , and Mikayla Maki created

6e6ae0e Ignore 'DROP COLUMN enviroment' in typo checker (#7803)

Click to expand commit body
In dropping a misspelled "enviroment" column in #7742, a new "typo" was
introduced breaking CI. This fixes that.

Release Notes:

- N/A

gmorenz created

a3300ae Don't reinstall dependencies on arch linux (#7801)

Click to expand commit body
Very minor quality of life update, passing the --needed flag to pacman
to skip reinstalling up to date dependencies.

Release Notes:

- N/A

gmorenz created

cbbc8ca Try and make collab deploys faster (#7746)

Click to expand commit body
Use github machines and build on host instead of in container

Release Notes:

- N/A

Conrad Irwin created

8e52cf1 Add netrw bindings for vim (#7757)

Click to expand commit body
This is now possible after #7647

Release Notes:

- Added vim bindings for project panel
([#4270](https://github.com/zed-industries/zed/issues/4270)).

Conrad Irwin created

65a1938 panics (#7793)

Click to expand commit body
Release Notes:

- Fix a panic in rename
([#7509](https://github.com/zed-industries/zed/issues/7509)).

---------

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

Conrad Irwin and Max created

855acb9 drop columns (#7742)

Click to expand commit body
Blocked on: #7741

Release Notes:

- N/A

Conrad Irwin created

54f82eb Add double quote wrap in activate_python_virtual_environment (#7787)

Click to expand commit body
Added double quote wrap in activate_python_virtual_environment to handle
spaces in path.
Would fail to find venv activate script when spaces exist.


Release Notes:

- Fixed venv_detection activation not finding directory if space is in
the path

![image](https://github.com/zed-industries/zed/assets/52263845/9bf95b92-c6d4-4e2c-9158-d91a41c10216)


- With changes

![image](https://github.com/zed-industries/zed/assets/52263845/93602ae7-d991-494b-89c3-5afcce556888)

Leon created

ac59b9b Add a line instructing users to include media screenshots (#7790)

Click to expand commit body
Making media up for release notes / tweets is becoming very time
consuming. I spoke to Max and suggested we ask users to submit media for
their features, to reduce what we need to produce for tweets and such. I
dont know if this is the best way to signal it; I don't like adding more
to the PR template, but I'm not sure of a better way at the moment.


Release Notes:

- N/a

Joseph T. Lyons created

8f7a26f X11: Continuous Presentation (#7762)

Click to expand commit body
Alternative to #7758, which doesn't involve adding a new trait method
`request_draw`.
Somehow, my whole screen goes blinking black with this when moving the
window, so not ready for landing.

Release Notes:
- N/A

---------

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

Dzmitry Malyshau and Mikayla Maki created

181f556 Fewer nightlys (#7784)

Click to expand commit body
Remove an extraneous /nightly/ from our dSYM paths

Release Notes:

- N/A

Conrad Irwin created

a02bdd0 Fix link in python.md (#7735)

Adrian Garcia Badaracco created

6876ea4 Remove 0-patch requirement on main in bump-zed-minor-versions

Joseph T. Lyons created

16849f4 v0.124.x dev

Joseph T. Lyons created

7a6d01e debug symbol upload (#7783)

Click to expand commit body
This will let it become slowly eaasier to debug crashes

Release Notes:

- N/A

Conrad Irwin created

b14fbd4 Fix extension list scrolling and add loading and empty states (#7782)

Click to expand commit body
This PR fixes the scrolling of the extension list, as well as adds
various empty and loading states.

Release Notes:

- N/A

Marshall Bowers created

b47aff4 go: enable completions with placeholders by default (#7780)

Click to expand commit body
This fixes #7523 by enabling completions with placeholders by default.

This setting controls whether gopls sends back snippets with
placeholders. According to the documentation
(https://github.com/golang/tools/blob/master/gopls/doc/settings.md#useplaceholders-bool)
this only controls whether "placeholders for function parameters or
struct fields" are sent in completion responses.

In practice, though, this seems to also control whether any snippets
with *any* placeholders are being sent back.

Example: for the given Go code

    err := myFunction()
    i^

With the cursor being at `^`, this setting controls whether `gopls`
sends back statement snippets such as `if err != nil { return ... }`
with the `...` being dynamically matched to the return value of the
function.

So I think this setting controls far more than just function params and
struct fields. And since we *do* support placeholders in snippets, I
think this provides a better default experience.

Release Notes:

- Improved default Go experience by enabling snippets-with-placeholders
when initializing `gopls`.
([#7523](https://github.com/zed-industries/zed/issues/7523)).

Thorsten Ball created

7ac0556 Reorganize `extensions_ui.rs` (#7779)

Click to expand commit body
This PR reorganizes `extensions_ui.rs` by moving the `Render` impl down
below the primary `ExtensionsPage` impl.

Release Notes:

- N/A

Marshall Bowers created

db0455b Give explicit heights to items in the extension list (#7777)

Click to expand commit body
This PR gives the items in the extension list an explicit height so that
they work properly within the uniform list when descriptions are
missing.

<img width="1235" alt="Screenshot 2024-02-14 at 10 19 14 AM"
src="https://github.com/zed-industries/zed/assets/1486634/01222902-6b05-4e9a-bb5a-bada14b1fd45">

I think we may want to consider using a `list` here instead of a
`uniform_list` to allow them to have variable heights.

Fixes #7756.

Release Notes:

- N/A

Marshall Bowers created

017b2db Fix case-only renaming of files (#7768)

Click to expand commit body
This fixes #5211 and #7732 by fixing the case-only file renaming.

The fix here works by checking hooking into function that produces the
data to populate the project panel.

It checks whether we're on a case-insensitive file system (default on
macOS, but you can have case-sensitive FS on macOS too) and if so, it
ignores the metadata for files for which the absolute path (returned by
the FS scanner) and canonicalized path do NOT match.

That's the case for (a) symlinks and (b) case-only renames of files.

It only does this check for case-only renames.

Release Notes:

- Fixed case-only renaming of files producing duplicate entries in
project panel.
([#5211](https://github.com/zed-industries/zed/issues/5211)).

Co-authored-by: Antonio <antonio@zed.dev>

Thorsten Ball and Antonio created

75eac47 gpui: patch pathfinder_simd to fix nightly build, bump ahash for the … (#7770)

Click to expand commit body
…same reason

Fixes #7644 

Release Notes:

- N/A

Piotr Osiewicz created

7956a9a Don't wait to dispatch commands (#7755)

Click to expand commit body
I added this when porting vim mode to gpui2 to work around life-cycle
problems.
Since #7647, this is no longer needed for vim mode, and causes other
problems (c.f. #7748)

Release Notes:

- Improved command to drop fewer keystrokes

Conrad Irwin created

c357e37 Reload extensions more robustly when manually modifying installed extensions directory (#7749)

Click to expand commit body
Release Notes:

- N/A

---------

Co-authored-by: Marshall <marshall@zed.dev>

Max Brunsfeld and Marshall created

c317639 Remove themes from the registry when the extension is uninstalled (#7745)

Click to expand commit body
This PR makes it so uninstalling an extension will remove any themes
provided by that extension from the theme registry.

Release Notes:

- N/A

Marshall Bowers created

e9b95fd Force upgrade people on nightly (#7744)

Click to expand commit body
Release Notes:

- N/A

Conrad Irwin created

e73e93f Unload languages when uninstalling their extension (#7743)

Click to expand commit body
Release Notes:

- N/A

Co-authored-by: Marshall <marshall@zed.dev>

Max Brunsfeld and Marshall created

a2144fa Remove environment guards (#7741)

Click to expand commit body
Release Notes:

- N/A

Conrad Irwin created

d744aa8 v0.123.1

Conrad Irwin created

2294d99 revert single channel click (#7738)

Click to expand commit body
- Revert "collab tweaks (#7706)"
- Revert "2112 (#7640)"
- Revert "single click channel (#7596)"
- Reserve protobufs
- Don't revert migrations

Release Notes:

- N/A

**or**

- N/A

Conrad Irwin created

ecd9b93 Add C-w and C-u keymaps in vim mode (Fix #7691) (#7736)

Click to expand commit body
Release Notes:
- Added C-w and C-u keymaps in vim mode
([#7691](https://github.com/zed-industries/zed/issues/7691))

Yohann created

fecb5a8 Add an extensions installation view (#7689)

Click to expand commit body
This PR adds a view for installing extensions within Zed.

My subtasks:

- [X] Page Extensions and assign in App Menu
- [X] List extensions 
- [X] Button to Install/Uninstall
- [x] Search Input to search in extensions registry API
- [x] Get Extensions from API
- [x] Action install to download extension and copy in /extensions
folder
- [x] Action uninstall to remove from /extensions folder
- [x] Filtering
- [x] Better UI Design

Open to collab!

Release Notes:

- Added an extension installation view. Open it using the `zed:
extensions` action in the command palette
([#7096](https://github.com/zed-industries/zed/issues/7096)).

---------

Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Co-authored-by: Marshall <marshall@zed.dev>
Co-authored-by: Carlos <foxkdev@gmail.com>
Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
Co-authored-by: Max <max@zed.dev>

Carlos Lopez , Max Brunsfeld , Marshall , Carlos , Marshall Bowers , and Max created

33f713a Optimize construction and insertion of large `SumTree`s (#7731)

Click to expand commit body
This does two things:

1. It optimizes the constructions of `SumTree`s to not insert nodes
one-by-one, but instead inserts them level-by-level. That makes it more
efficient to construct large `SumTree`s.
2. It adds a `from_par_iter` constructor that parallelizes the
construction of `SumTree`s.

In combination, **loading a 500MB plain text file went from from
~18seconds down to ~2seconds**.

Disclaimer: I didn't write any of this code, lol! It's all @as-cii and
@nathansobo.

Release Notes:

- Improved performance when opening very large files.

---------

Co-authored-by: Antonio Scandurra <me@as-cii.com>
Co-authored-by: Julia <julia@zed.dev>

Thorsten Ball , Antonio Scandurra , and Julia created

798c9a7 Improve sorting of completion results (#7727)

Click to expand commit body
This is an attempt to fix #5013 by doing two things:

1. Rank "obvious" matches in completions higher (see the code comment)
2. When tied: rank keywords higher than variables

Release Notes:

- Improved sorting of completion results to prefer literal matches.
([#5013](https://github.com/zed-industries/zed/issues/5013)).

### Before

![screenshot-2024-02-13-13 08
13@2x](https://github.com/zed-industries/zed/assets/1185253/77decb0b-5b47-45de-ab69-f7b333072b45)
![screenshot-2024-02-13-13 10
42@2x](https://github.com/zed-industries/zed/assets/1185253/ae33d0fe-06f5-4fc1-84f8-ddf6dbe80ba5)


### After

![screenshot-2024-02-13-13 06
22@2x](https://github.com/zed-industries/zed/assets/1185253/3c526bab-6392-4eeb-a2f2-dd73ccf228e8)
![screenshot-2024-02-13-13 06
50@2x](https://github.com/zed-industries/zed/assets/1185253/b5b9d513-766d-4a53-94de-b46271f5978c)

Co-authored-by: Antonio <antonio@zed.dev>
Co-authored-by: bennetbo <bennetbo@gmx.de>

Thorsten Ball , Antonio , and bennetbo created

98fff01 Fix minor buffer search bar design issues (#7715)

Click to expand commit body
This PR fixes the buffer search bar design issues mentioned in #7703.

It doesn't affect the project search bar.

Changes:

<img width="943" alt="zed-search-bar-design-issues"
src="https://github.com/zed-industries/zed/assets/2101250/af3bd0da-36cb-46ee-9af6-6b69911863d0">

Release Notes:

- N/A

Andrew Lygin created

ea51536 Disable vim in the feedback modal (#7716)

Click to expand commit body
Fixes #7000 by disabling vim in this context

Release Notes:

- Fixed feedback modal in vim mode
([#7000](https://github.com/zed-industries/zed/issues/7000)).

**or**

- N/A

Conrad Irwin created

a1899ba vim: Fix renaming (#7714)

Click to expand commit body
This was broken by #7647

Release Notes:

- N/A

Conrad Irwin created

04fc0dd languages: go.mod/go.work fix highlighting no longer working (#7705)

Click to expand commit body
At some point go.mod and go.work syntax highlighting quit working. Looks
like the grammars weren't matching for some reason and I'm not sure how
they were working originally.

Not sure if we could write a test to make sure the tree-sitter queries
are being loaded for the grammars or not but seems like something that
could be useful to avoid something like this in the future.

Derrick Laird created

b800fe9 Fix dealloc of MacWindow (#7708)

Click to expand commit body
We see some panics in the Drop handler for MacWindow

Looking into this, I noticed that our drop implementation was not
correctly
cleaning up the window state.

Release Notes:

- N/A

Conrad Irwin created

21d2b5f collab tweaks (#7706)

Click to expand commit body
- Don't leave call when clicking on channel
- Don't prompt to leave a call you're not in

Release Notes:

- N/A

Conrad Irwin created

d13a731 Crash sooner on invalid background highlights (#7702)

Click to expand commit body
Release Notes:

- N/A

Conrad Irwin created

ede9600 Improve panic message for invalid anchors (#7700)

Click to expand commit body
Release Notes:

- N/A

Co-authored-by: Marshall <marshall@zed.dev>

Max Brunsfeld and Marshall created

48a4cba Don't move traffic lights while fullscreen

Click to expand commit body
Fixes #4712, or at least works around it. As discussed in the issue,
setting the buttons frames while fullscreen can cause them to render
in the wrong location. This fixes that by simply not moving them when
fullscreen.

Greg Morenz created

266988a gpui: Decouple X11 logic from LinuxPlatform (#7598)

Click to expand commit body
Release Notes:

- Separated Linux platform and X11-specific code, so that we can add
Wayland support now.

---------

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

Roman and Mikayla created

2e7db57 Add Astro Support (#6896)

Click to expand commit body
Attempt to add `@astrojs/language-server` and
[virchau13/tree-sitter-astro](https://github.com/virchau13/tree-sitter-astro).

---------

Co-authored-by: Nate Butler <iamnbutler@gmail.com>

Alvaro Gaona and Nate Butler created

1c2081c Search bar UI enhancements (#7675)

Click to expand commit body
This PR introduces several enhancements (along with fixing a couple of
bugs) in the search bar UI (copied from [this
comment](https://github.com/zed-industries/zed/issues/7663#issuecomment-1937659091)):

- Moving the Replace field under the Search field makes it easier to
compare texts and avoid typos. Also, less eyes movements.
- Use red (error) color to indicate that nothing matched. VSCode, IDEA
do this. Again, it helps to get a quicker feedback on typos without
moving your eyes.
- Much less moving parts and no place for flickering.
- Better fits to narrow panes.
- The Close button that allows to close the search bar with the mouse.
- Better keyboard handling (tab, shift+tab in the replacement mode),
autofocus on the Replace field.

How it looks:


https://github.com/zed-industries/zed/assets/2101250/93b0edb4-4311-4a7f-9f43-b30c4d1aede5

Implementation details:

- Using `Self::on_query_editor_event` looked suspicious
[here](https://github.com/zed-industries/zed/blob/288013503755f0d44feff6a517169a2861b43f26/crates/search/src/buffer_search.rs#L491)
because it triggered searching on the replacement text changes. I've
created a separate method for the replacement editor.
- These changes don't affect the project search bar. If the PR is
accepted, the same changes may be implemented there.

Fixed issues:

- #7661
- #7663

Release Notes:

- Buffer search bar UI enhancements.

Andrew Lygin created

a233139 Add JSX and TSX syntax highlighting (#7686)

Click to expand commit body
This PR fixes / adds support for syntax highlighting in JSX and TSX.

Previously to this PR the syntax highlighting was not really working.
HTML tags have not been displayed as such.

<img width="1127" alt="SCR-20240212-ihne"
src="https://github.com/zed-industries/zed/assets/67913738/793c778f-aa11-4574-883f-6d336247bd9e">

After:

<img width="1225" alt="SCR-20240212-jqvv"
src="https://github.com/zed-industries/zed/assets/67913738/f4d96b1d-6063-41ac-bd46-76ce1fc0a131">

Release Notes:

- Added support for JSX and TSX syntax highlighting

Robin Pfäffle created

9e17018 Allow OpenAI API URL to be configured via `assistant.openai_api_url` (#7552)

Click to expand commit body
Partially fixes #4321, since Azure OpenAI API can be converted to OpenAI
API.

Release Notes:

- Added `assistant.openai_api_url` setting to allow OpenAI API URL to be
configured.

---------

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

Yesterday17 and Marshall Bowers created

d959719 Use local player selection color, not cursor, for terminal selection

Julia created