Commit log

4094562 Update issue template configuration

Joseph T. Lyons created

6869b62 Update `.mailmap` (#7871)

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

21a7421 Update 1_language_support.yml

Joseph T. Lyons created

96dcc38 vim: Implement Go To Previous Word End (#7505)

Click to expand commit body
Activated by keystrokes g-e.



Release Notes:

- vim: Added `ge` and `gE` for go to Previous Word End.

---------

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

Vishal Bhavsar and Conrad Irwin created

e6766e1 Return descriptions for extensions (#7869)

Click to expand commit body
This PR updates the extensions API to return descriptions for
extensions.

Release Notes:

- N/A

Marshall Bowers created

694e184 Upgrade to Taffy 0.4 (#7868)

Click to expand commit body
Upgraded Taffy to v0.4.0 from crates.io (previously using prerelease
version from git).

Code changes required were minor as gpui was already using a recent
version of Taffy.

Release Notes:

- N/A

Nico Burns created

94426c4 Better logic for copying themed player colors into registry (#7867)

Click to expand commit body
Release Notes:

- Fixed a potential panic when themes did not contain enough player
colors ([#7733](https://github.com/zed-industries/zed/issues/7733)).

Thanks to @maxdeviant for the code review and improvements!

Joey Smith created

bf1bcd0 Secondarily sort by extension name instead of ID (#7866)

Click to expand commit body
This PR makes it so extensions are secondarily sorted by their name
(instead of by ID) after we sort them by their download count.

Release Notes:

- N/A

Marshall Bowers created

23132b5 Display extension download counts (#7864)

Click to expand commit body
This PR adds the download count for extensions to the extensions view.

Release Notes:

- Added download counts for extensions to the extensions view.

Marshall Bowers created

a8d5864 Fix panic when loading hover state. (#7861)

Click to expand commit body
Release Notes:

- Fixed a panic when hovering over an identifier in the editor

Conrad Irwin created

ea322e1 Add `"code_actions_on_format"` (#7860)

Click to expand commit body
This lets Go programmers configure `"code_actions_on_format": {
  "source.organizeImports": true,
}` so that they don't have to manage their imports manually

I landed on `code_actions_on_format` instead of `code_actions_on_save`
(the
VSCode version of this) because I want to run these when I explicitly
format
(and not if `format_on_save` is disabled).

Co-Authored-By: Thorsten <thorsten@zed.dev>

Release Notes:

- Added `"code_actions_on_format"` to control additional formatting
steps on format/save
([#5232](https://github.com/zed-industries/zed/issues/5232)).
- Added a `"code_actions_on_format"` of `"source.organizeImports"` for
Go ([#4886](https://github.com/zed-industries/zed/issues/4886)).

Co-authored-by: Thorsten <thorsten@zed.dev>

Conrad Irwin and Thorsten created

e1ae0d4 Add an extensions API to the collaboration server (#7807)

Click to expand commit body
This PR adds a REST API to the collab server for searching and
downloading extensions. Previously, we had implemented this API in
zed.dev directly, but this implementation is better, because we use the
collab database to store the download counts for extensions.

Release Notes:

- N/A

---------

Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
Co-authored-by: Marshall <marshall@zed.dev>
Co-authored-by: Conrad <conrad@zed.dev>

Max Brunsfeld , Marshall Bowers , Marshall , and Conrad created

bdc2558 Add default language server settings to display inlay hints for Go and TypeScript (#7854)

Click to expand commit body
Hints are still disabled by default in Zed, but when those get enabled,
the language server settings allow to display those instantly without
further server configuration, which might be not obvious. Also add the
documentation enties for those settings and their defaults in Zed.

Closes https://github.com/zed-industries/zed/issues/7821

Release Notes:

- Added default settings for TypeScript and Go LSP servers to enable
inlay hints when those are turned on in Zed
([7821](https://github.com/zed-industries/zed/issues/7821))

Kirill Bulatov created

a41fb29 Linux/x11 input handling (#7811)

Click to expand commit body
Implements the basics of keyboard and mouse handling.
Some keys will need special treatment, like Backspace/Delete. In this
PR, all keys are treated as append-only. Leaving this for a follow-up.

I used @gabydd 's branch as a reference (thank you!) as well as
https://github.com/xkbcommon/libxkbcommon/blob/master/doc/quick-guide.md
For future work, I'll also use
https://github.com/xkbcommon/libxkbcommon/blob/master/tools/interactive-x11.c

All commits are separately compileable and reviewable.

Release Notes:
- N/A

---------

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

Dzmitry Malyshau and Mikayla Maki created

aa319cc Fix buffer search invalid regexp indicator (#7795)

Click to expand commit body
This PR fixes the issue with invalid regexp highlighting (red border)
when switching to the simple text searching mode (#7658).

Implementation details:

- `update_matches()` always relied on the caller to reset the
`query_contains_error` flag, which wasn't always the case. Now, it
resets the flag itself.

Release Notes:

- Fix issue with switching between invalid regexp and simple text buffer
search (#7658).

How it works now:


https://github.com/zed-industries/zed/assets/2101250/ac868a5d-5e2f-49a0-90fc-00e62a1d5ee8

Andrew Lygin created

f01763a Allow both integer and string request IDs in LSP (#7662)

Click to expand commit body
Zed's LSP support expects request messages to have integer ID, Metals
LSP uses string. According to specification, both is acceptable:

interface RequestMessage extends Message {

	/**
	 * The request id.
	 */
	id: integer | string;

...
This pull requests modifies the types and serialization/deserialization
so that string IDs are accepted.

Release Notes:

- Make Zed LSP request ids compliant to the LSP specification

Michal Příhoda created

2dffc5f Fix case-only renaming of files in project panel (#7835)

Click to expand commit body
This is a follow-up to #7768 but now also fixes #5211.

Explanation is relatively simple: case-only renames previously failed
because while Zed would think that `foobar` and `FOOBAR` are different,
the filesystem would give us an file-already-exists error when renaming.

So what we're doing here is to check whether we're on a case-insensitive
filesystem and if so, we overwrite the old file.

Release Notes:

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

Proof:



https://github.com/zed-industries/zed/assets/1185253/57d5063f-09d9-47b1-a2df-3d7edefca97d

Thorsten Ball created

ed791c4 Improve ruby highlighting (#7829)

Click to expand commit body
Release Notes:

- Improved syntax-highlighting of identifiers in Ruby.

Before:

![screenshot-2024-02-15-14 40
19@2x](https://github.com/zed-industries/zed/assets/1185253/29fca0eb-7c0c-4aee-9f31-a8a3c6680cb9)

After:

![screenshot-2024-02-15-14 40
56@2x](https://github.com/zed-industries/zed/assets/1185253/2ce0e0c9-8689-4ff8-9f40-2ea5f6ccc2f6)

Thorsten Ball created

7c6b34c Close modals and menus before dispathing actions (#7830)

Click to expand commit body
Fixes https://github.com/zed-industries/zed/issues/7799 by forcing the
modal to close before dispatching the action.
While not needed specifically for this case, changed the context menus
to do the same, to be uniform — context menu actions seem to work
properly after this change too.

Release Notes:

- Fixed markdown preview action not working
([7799](https://github.com/zed-industries/zed/issues/7799))

Kirill Bulatov created

3921259 Extend Ruby word characters to include valid identifier chars (#7824)

Click to expand commit body
In Ruby `_$=@!:?` can all be part of an identifier. If we don't have
them in this list, autocomplete doesn't work as expected.

See: https://gist.github.com/misfo/1072693

This fixes one part of #7819 but not the whole ticket.

Release Notes:

- Fixed completions in Ruby not working for identifiers that start or
end with special characters (e.g.: `@`)

Thorsten Ball created

e93dca5 Incorrect file icons for .mjs, .mts, .cjs, .cts #7804 (#7815)

Click to expand commit body
Release Notes:

- Added file extensions ([7804](https://github.com/zed-industries/zed/issues/7804))

Manohar_nalluri created

c662662 Remove existing gzip files before compressing dSYMs (#7818)

Click to expand commit body
This should fix the build.

Release Notes:

- N/A

Antonio Scandurra created

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