Commit log

9f53208 Bump to 0.163.2 for @osiewicz

Zed Bot created

47381ed pylsp: Update mypy plugin name (cherry-pick #21031) (#21032)

Click to expand commit body
Cherry-picked pylsp: Update mypy plugin name (#21031)

Follow-up to #21025

Release Notes:

- N/A

Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>

gcp-cherry-pick-bot[bot] and Piotr Osiewicz created

3cadc84 pylsp: Tweak default user settings (cherry-pick #21025) (#21027)

Click to expand commit body
Cherry-picked pylsp: Tweak default user settings (#21025)

I've also looked into not creating temp dirs in project directories and
succeeded at that for Mypy; no dice for rope though, I'll have to send a
patch to pylsp to fix that.
Closes #20646

Release Notes:

- Python: tweaked default pylsp settings to be less noisy (mypy and
pycodestyle are no longer enabled by default).

Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>

gcp-cherry-pick-bot[bot] and Piotr Osiewicz created

0d5046f Auto release preview patch releases (#20886)

Click to expand commit body
This should make the process of releasing patch releases to preview less
toilful

Release Notes:

- N/A

Conrad Irwin created

b49f020 Bump to 0.163.1 for @ConradIrwin

Zed Bot created

226680f Fix keybindings on a Spanish ISO keyboard (cherry-pick #20995) (#20998)

Click to expand commit body
Cherry-picked Fix keybindings on a Spanish ISO keyboard (#20995)

Co-Authored-By: Peter <peter@zed.dev>

Also reformatted the mappings to be easier to read/edit by hand.

Release Notes:

- Fixed keyboard shortcuts on Spanish ISO keyboards

---------

Co-authored-by: Peter <peter@zed.dev>

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Co-authored-by: Peter <peter@zed.dev>

gcp-cherry-pick-bot[bot] , Conrad Irwin , and Peter created

a882efe vim: Fix shortcuts that require shift+punct (cherry-pick #20990) (#20992)

Click to expand commit body
Cherry-picked vim: Fix shortcuts that require shift+punct (#20990)

Fixes a bug I introduced in #20953

Release Notes:

- N/A

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

gcp-cherry-pick-bot[bot] and Conrad Irwin created

21b1a05 Clip UTF-16 offsets in text for range (cherry-pick #20968) (#20969)

Click to expand commit body
Cherry-picked Clip UTF-16 offsets in text for range (#20968)

When launching the Pinyin keyboard, macOS will sometimes try to peek one
character back in the string.

This caused a panic if the preceding character was an emoji. The docs
say
"don't assume the range is valid", so now we don't.

Release Notes:

- (macOS) Fixed a panic when using the Pinyin keyboard with emojis

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

gcp-cherry-pick-bot[bot] and Conrad Irwin created

90baed5 Use our own git clone in daft release notes

Conrad Irwin created

7275ee5 Drop platform lock when setting menu (cherry-pick #20962) (#20965)

Click to expand commit body
Cherry-picked Drop platform lock when setting menu (#20962)

Turns out setting the menu (sometimes) calls `selected_range` on the
input
handler.

https://zed-industries.slack.com/archives/C04S6T1T7TQ/p1732160078058279

Release Notes:

- Fixed a panic when reloading keymaps

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

gcp-cherry-pick-bot[bot] and Conrad Irwin created

0a169c0 Rename ime_key -> key_char and update behavior (cherry-pick #20953) (#20957)

Click to expand commit body
Cherry-picked Rename ime_key -> key_char and update behavior (#20953)

As part of the recent changes to keyboard support, ime_key is no longer
populated by the IME; but instead by the keyboard.

As part of #20877 I changed some code to assume that falling back to key
was
ok, but this was not ok; instead we need to populate this more similarly
to how
it was done before #20336.

The alternative fix could be to instead of simulating these events in
our own
code to push a fake native event back to the platform input handler.

Closes #ISSUE

Release Notes:

- Fixed a bug where tapping `shift` coudl type "shift" if you had a
binding on "shift shift"

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

gcp-cherry-pick-bot[bot] and Conrad Irwin created

31ad658 Don't re-render the menu so often (cherry-pick #20914) (#20915)

Click to expand commit body
Cherry-picked Don't re-render the menu so often (#20914)

Closes #20710

Release Notes:

- Fixes opening the menu when Chinese Pinyin keyboard is in use

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

gcp-cherry-pick-bot[bot] and Conrad Irwin created

8444a6f Fix for fetch-tags error.

Peter Tripp created

209d666 v0.163.x preview

Joseph T. Lyons created

743165f Fix assistant hints showing up when selecting \n in Vim mode (#20899)

Click to expand commit body
We also need to check whether the selection is empty, not just whether
its head is on an empty line.

Release Notes:

- N/A

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

Thorsten Ball and Antonio created

e03968f pane: Fix panic when dragging non-pinned item onto it's pinned copy in another pane (#20900)

Click to expand commit body
Closes #20889

Release Notes:

- N/A

Piotr Osiewicz created

3c57a40 vim: Fix jj to exit insert mode (#20890)

Click to expand commit body
Release Notes:

- (Preview only) fixed binding `jj` to exit insert mode

Conrad Irwin created

ad6a07e Remove comments from discord release announcements (#20888)

Click to expand commit body
Release Notes:

- N/A

Conrad Irwin created

c2668bc Fix draft-releaase-notes (#20885)

Click to expand commit body
Turns out this was broken because (a) we didn't have tags fetched,
and (b) because the gh-release action we use is buggy.

Release Notes:

- N/A

Conrad Irwin created

705a06c Send Country/OS/Version amplitude style (#20884)

Click to expand commit body
Release Notes:

- N/A

Conrad Irwin created

f77b6ab Fix space repeating in terminal (#20877)

Click to expand commit body
This is broken because of the way we try to emulate macOS's
ApplePressAndHoldEnabled.

Release Notes:

- Fixed holding down space in the terminal (preview only)

Conrad Irwin created

ea5131c Country Code To Snowflake (#20875)

Click to expand commit body
Release Notes:

- N/A

---------

Co-authored-by: Nathan Sobo <nathan@zed.dev>

Conrad Irwin and Nathan Sobo created

1c2b3ad Add editor::SelectAllMatches to SublimeText base keymap (#20866)

Click to expand commit body
`alt-f3` on Linux
`ctrl-cmd-g` on MacOS

Co-authored-by: Roman Seidelsohn <rseidelsohn@gmail.com>

Peter Tripp and Roman Seidelsohn created

496dae9 Remove old CPU/Memory events (#20865)

Click to expand commit body
Release Notes:

- Telemetry: stop reporting CPU/RAM on a timer

Conrad Irwin created

5c6565a editor: Use completion filter_range for fuzzy matching (#20869)

Click to expand commit body
Fixes regression from #13958

Closes #20868

Release Notes:

- N/A

Piotr Osiewicz created

7853e32 python: Highlight attribute docstrings (#20763)

Click to expand commit body
Adds more docstring highlights missing from #20486.
[PEP257](https://peps.python.org/pep-0257/) defines attribute docstrings
as
> String literals occurring immediately after a simple assignment at the
top level of a module, class, or __init__ method are called “attribute
docstrings”.

This PR adds `@string.doc` for such cases.
Before:

![Screenshot_20241116_162257](https://github.com/user-attachments/assets/6b471cff-717e-4755-9291-d596da927dc6)
After:

![Screenshot_20241116_162457](https://github.com/user-attachments/assets/96674157-9c86-45b6-8ce9-e433ca0ae8ea)

Release Notes:

- Added Python syntax highlighting for attribute docstrings.

---------

Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>

Jaagup Averin and Piotr Osiewicz created

f5cbfa7 assistant: Fix evaluating slash commands in slash command output (like `/default`) (#20864)

Click to expand commit body
This PR fixes an issue where slash commands in the output of other slash
commands were not being evaluated when configured to do so.

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

Release Notes:

- Fixed slash commands from other slash commands (like `/default`) not
being evaluated (Preview only).

Marshall Bowers created

6a2c712 Use Instant not chrono for telemetry (#20756)

Click to expand commit body
We occasionally see dates in the future appearing in our telemetry. One
hypothesis is that this is caused by a clock change while Zed is running
causing date math based on chrono to be incorrect.

Instant *should* be a more stable source of relative timestamps.

Release Notes:

- N/A

Conrad Irwin created

9454f0f clangd: Use Url::to_file_path() to get actual file path for header/source (#20856)

Click to expand commit body
Using `Url::path()` seems fine on POSIX systems as it will leave forward
slash (given hostname is empty). On Windows it will result in error.

Release Notes:

- N/A

Egor Krugletsov created

5b0c15d Add pytest-based test discovery and runnables for Python (#18824)

Click to expand commit body
Closes  #12080, #18649.

Screenshot:

<img width="1499" alt="image"
src="https://github.com/user-attachments/assets/2644c2fc-19cf-4d2c-a992-5c56cb22deed">

Still in progress:

1. I'd like to add configuration options for selecting a Python test
runner (either pytest or unittest) so that users can explicitly choose
which runner they'd like to use for running their tests. This preference
has to be configured as unittest-style tests can also be run by pytest,
meaning we can't rely on auto-discovery to choose the desired test
runner.
2. I'd like to add venv auto-discovery similar to the feature currently
provided by the terminal using detect_venv.
3. Unit tests.

Unfortunately I'm struggling a bit with how to add settings in the
appropriate location (e.g. Python language settings). Can anyone provide
me with some pointers and/or examples on how to either add extra
settings or to re-use the existing ones?

My rust programming level is OK-ish but I'm not very familiar with the
Zed project structure and could use some help.

I'm also open for pair programming as mentioned on the website if that
helps!

Release Notes:

- Added pytest-based test discovery and runnables for Python.
- Adds a configurable option for switching between unittest and pytest
as a test runner under Python language settings. Set "TASK_RUNNER" to
"unittest" under task settings for Python if you wish to use unittest to
run Python tasks; the default is pytest.

---------

Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>

Julian de Ruiter and Piotr Osiewicz created

aae3907 editor: Show hints for using AI features on empty lines (#20824)

Click to expand commit body
Co-Authored-by: Thorsten <thorsten@zed.dev>
Co-Authored-by: Antonio <antonio@zed.dev>

Screenshot:

![screenshot-2024-11-18-17 11
08@2x](https://github.com/user-attachments/assets/610fd7db-7476-4b9b-9465-a3d55df12340)

TODO:
- [x] docs

Release Notes:

- Added inline hints that guide users on how to invoke the inline
assistant and open the assistant panel. (These hints can be disabled by
setting `{"assistant": {"show_hints": false}}`.)

---------

Co-authored-by: Thorsten <thorsten@zed.dev>
Co-authored-by: Antonio <antonio@zed.dev>
Co-authored-by: Thorsten Ball <mrnugget@gmail.com>

Bennet Bo Fenner , Thorsten , Antonio , and Thorsten Ball created

a35b73e Revert "remove usages of `theme::color_alpha`"

Click to expand commit body
This reverts commit c0d11be75f0a2febec1edc86c70a2594eca79b44.

Nate Butler created

c0d11be remove usages of `theme::color_alpha`

Nate Butler created

0e26d22 Add HTML injections for markdown (#20527)

Click to expand commit body
Closes https://github.com/zed-industries/extensions/issues/1588.

| Before | After |
| --- | --- |
| ![CleanShot 2024-11-11 at 22 48
43](https://github.com/user-attachments/assets/9470e6a8-6a37-4b8f-8daa-5c8c5ed2bb17)
| ![CleanShot 2024-11-11 at 22 49
43](https://github.com/user-attachments/assets/f2b858d0-9274-4332-b30e-61c13ac347c6)
|

Release Notes:

- Added HTML injections for markdown syntax highlighting

uncenter created

bd0f197 Create `RunningKernel` trait to allow for native and remote jupyter kernels (#20842)

Click to expand commit body
Starts setting up a `RunningKernel` trait to make the remote kernel
implementation easy to get started with. No release notes until this is
all hooked up.

Release Notes:

- N/A

Kyle Kelley created

343c885 Improve file_types in default.json (#20429)

Click to expand commit body
Detect .env.* as Shell Script
Move non glob json/jsonc/toml file_types into langauges/*/config.toml

Peter Tripp created

e7a0890 Don't call setAllowsAutomaticKeyEquivalentLocalization on Big Sur (#20844)

Click to expand commit body
Closes #20821

Release Notes:

- Fixed a crash on Big Sur (preview only)

Conrad Irwin created

d4c5c0f Don't render invisibles with elements (#20841)

Click to expand commit body
Turns out that in the case you have a somehow valid utf-8 file that
contains almost all ascii control characters, we run out of element
arena space.

Fixes: #20652

Release Notes:

- Fixed a crash when opening a file containing a very large number of
ascii control characters on one line.

Conrad Irwin created

f0c7e62 Leave goal_x unchanged when moving by rows past the start or end of the document (#20705)

Click to expand commit body
Perhaps this was intentional behavior, but if not, I've attempted to
write this hacky fix — I noticed using the vertical arrow keys to move
past the document start/end would reset the goal_x to either zero (for
moving upwards) or the line width (for moving downwards). This change
makes Zed match most native text fields (at least on macOS) which leave
goal_x unchanged, even when hitting the end of the document.

I tested this change manually. Would be happy to add automatic tests for
it too, but couldn't find any existing cursor movement tests.

Release Notes:

- Behavior when moving vertically past the start or end of a document
now matches native text fields; it no longer resets the selection goal

lord created

80d50f5 collab: Add feature flag to bypass account age check (#20843)

Click to expand commit body
This PR adds a `bypass-account-age-check` feature flag that can be used
to bypass the minimum account age check.

Release Notes:

- N/A

Marshall Bowers created

fb6c987 python: Improve function syntax highlighting (#20487)

Click to expand commit body
Release Notes:

- Differentiate between function and method calls and definitions.
`function.definition` matches the highlight for e.g. rust,
`function.call` is new.
- Likewise differentiate between class calls and class definitions.
- Better highlighting of function decorators (the `@` symbol is
punctuation, and now the decorator itself has a `function.decorator`
tag)
- Make `cls` a special variable (like `self`)
- Add `ellipsis` as a built-in constant

Note that most themes do not currently make use of the
`function.definition` tags, and none make use of the
`type.class.definition` tag. Hopefully more themes will pick this up.

*Before:*
<img width="248" alt="image"
src="https://github.com/user-attachments/assets/550ccd3d-594c-413a-b543-ef9caf39eee1">


*After:*
<img width="245" alt="image"
src="https://github.com/user-attachments/assets/47aa43b1-006b-4f9f-9029-510880f390ea">

Carroll Wainwright created

b4c2f29 Remove use of current `File` for new buffers that never have `File` (#20832)

Click to expand commit body
`create_buffer` calls `Buffer::local` which sets `file` to `None`
[here](https://github.com/zed-industries/zed/blob/f12981db32f9b936cd29e39ccc7f8a0b4e54cee1/crates/language/src/buffer.rs#L629).
So there's no point in then immediately attempting to update maps that
rely on `file` being present.

Release Notes:

- N/A

Michael Sloan created

8666ec9 ssh: Fix SSH to mac remotes (#20838)

Click to expand commit body
Restore ability to SSH to macOS arm remotes (`uname -m` on mac == `arm64`).
Fix regression introduced in https://github.com/zed-industries/zed/pull/20618

Peter Tripp created

889aac9 Snippet choices (#13958)

Click to expand commit body
Closes: #12739

Release Notes:

Solves #12739 by
- Enable snippet parsing to successfully parse snippets with choices
- Show completion menu when tabbing to a snippet variable with multiple
choices

Todo:
 - [x] Parse snippet choices
- [x] Open completion menu when tabbing to a snippet variable with
several choices (Thank you Piotr)
- [x] Get snippet choices to reappear when tabbing back to a previous
tabstop in a snippet
 - [x] add snippet unit tests
- [x] Add fuzzy search to snippet choice completion menu & update
completion menu based on choices
 - [x] add completion menu unit tests

Current State:

Using these custom snippets

```json
  "my snippet": {
      "prefix": "log",
      "body": ["type ${1|i32, u32|} = $2"],
      "description": "Expand `log` to `console.log()`"
  },
  "my snippet2": {
      "prefix": "snip",
      "body": [
        "type ${1|i,i8,i16,i64,i32|} ${2|test,test_again,test_final|} = $3"
      ],
      "description": "snippet choice tester"
    }
```

Using snippet choices:



https://github.com/user-attachments/assets/d29fb1a2-7632-4071-944f-daeaa243e3ac

---------

Co-authored-by: Piotr Osiewicz <piotr@zed.dev>
Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>

Anthony Eid , Piotr Osiewicz , and Piotr Osiewicz created

5b9916e ci: Add shellcheck for scripts (#20631)

Click to expand commit body
Fixes shellcheck errors in script/*
Adds a couple trailing newlines.
Adds `script/shellcheck-scripts` and associated CI machinery.
Current set ultra-conservative, does not output warnings, only errors.

Peter Tripp created

5b317f6 Improve install-cmake script (#20836)

Click to expand commit body
- Don't output junk to stderr when cmake unavailable
- Kitware PPA does not include up to date bins for all distros (e.g.
Ubuntu 24 only has 3.30.2 although 3.30.4 has been out for a while) so
don't try to force install a specific version. Take the best we can get.

Peter Tripp created

e2552b9 collab: Bypass account age check for users with active LLM subscriptions (#20837)

Click to expand commit body
This PR makes it so users with an active LLM subscription can bypass the
account age check.

Release Notes:

- N/A

Marshall Bowers created

3789918 Adjust file finder width configuration (#20819)

Click to expand commit body
Follow up to: https://github.com/zed-industries/zed/pull/18682

This PR tweaks the setting value, so it's clear we're referring to
`max-width`, meaning the width will change up to a specific value
depending on the available window size. Then, it also makes `Small` the
default value, which, in practice, makes the modal size the same as it
was before the original PR linked above.

Release Notes:

- N/A

---------

Co-authored-by: Kirill Bulatov <mail4score@gmail.com>

Danilo Leal and Kirill Bulatov created

d265e44 Don't treat absence of a file on fs as conflict for new files from CLI (#20828)

Click to expand commit body
Closes #20827

Release Notes:

- Fixes bug where save for new files created via CLI would report a
conflict and ask about overwriting.

Michael Sloan created

f12981d docs: Add Language extension config TBDs (To Be Documented) (#20829)

Click to expand commit body
Release Notes:

- N/A

Peter Tripp created