5f5e6b8
workspace: Fix drag&dropping project panel entries into editor area (#12767)
Click to expand commit body
Fixes #12733
Release Notes:
- Fixed drag&dropping project panel entries into editor area & tab bar
Piotr Osiewicz
created
07dbd2b
Use rust-analyzer from path if possible (#12418)
Click to expand commit body
Release Notes:
- Added support for looking up the `rust-analyzer` binary in `$PATH`. This allows using such tools as `asdf` and nix to configure per-folder rust installations. To enable this behavior, use the `path_lookup` key when configuring the `rust-analyzer` `binary`: `{"lsp": {"rust-analyzer": {"binary": {"path_lookup": true }}}}`.
Stanislav Alekseev
created
4858116
Remove dependencies from the Worktree crate and make it more focused (#12747)
Click to expand commit body
The `worktree` crate mainly provides an in-memory model of a directory
and its git repositories. But because it was originally extracted from
the Project crate, it also contained lingering bits of code that were
outside of that area:
* it had a little bit of logic related to buffers (though most buffer
management lives in `project`)
* it had a *little* bit of logic for storing diagnostics (though the
vast majority of LSP and diagnostic logic lives in `project`)
* it had a little bit of logic for sending RPC message (though the
*receiving* logic for those RPC messages lived in `project`)
In this PR, I've moved those concerns entirely to the project crate
(where they were already dealt with for the most part), so that the
worktree crate can be more focused on its main job, and have fewer
dependencies.
Worktree no longer depends on `client` or `lsp`. It still depends on
`language`, but only because of `impl language::File for
worktree::File`.
Release Notes:
- N/A
(Forgot to bump in the other PR)
Release Notes:
- N/A
Thorsten Ball
created
8809408
ruby: Allow opt-in to Tailwind LS in string (#12742)
Click to expand commit body
This fixes #12728 as much as I can tell.
The problem was that inside ERB files, when inside Ruby code, we didn't
treat `-` as part of the word, which broke completions.
So, with the change in here, and the following Zed settings, it works.
```json
{
"languages": {
"Ruby": {
"language_servers": ["tailwindcss-language-server", "solargraph"]
}
},
"lsp": {
"tailwindcss-language-server": {
"settings": {
"includeLanguages": {
"erb": "html",
"ruby": "html"
},
"experimental": {
"classRegex": ["\\bclass:\\s*['\"]([^'\"]*)['\"]"]
}
}
}
}
```
This enabled `tailwindcss-language-server` for Ruby files and tells the
language server to look for classes inside `class: ""` strings.
See demo video.
Release Notes:
- Fixed `tailwindcss-language-server` not being activated inside Ruby
strings (inside `.erb`)
([#12728](https://github.com/zed-industries/zed/issues/12728)).
Demo video:
https://github.com/zed-industries/zed/assets/1185253/643343b4-d64f-4c4e-98a1-d10df0b24e31
Co-authored-by: Max Brunsfeld <max@zed.dev>
Thorsten Ball
and
Max Brunsfeld
created
c354793
astro: Fix Tailwind LS not working in attributes (#12741)
Click to expand commit body
This fixes #12402.
We already had the `tailwind-language-server` config in Astro's
`config.toml` here:
https://github.com/zed-industries/zed/blob/fd39f20842967f0fb8a6c508bc2e1ebaefbaf15f/extensions/astro/languages/astro/config.toml#L17-L23
But it's not enough to add `overrides.string` to the `config.toml`, you
also need an `overrides.scm` file that sets the overrides.
And, tricky bit, when you add a single override to the `overrides.scm`
file you have to add all of them that Zed knows about. In my case, I had
to add `@comment` too, because Zed somehow expects that.
Release Notes:
- Fixed `tailwind-language-server` not working in attributes inside of
`*.astro` files.
([#12402](https://github.com/zed-industries/zed/issues/12402)).
Demo/proof:
https://github.com/zed-industries/zed/assets/1185253/05677a2d-831d-4e05-a1a2-4d1730ce2a46
Thorsten Ball
created
2f05778
Maintain cursor to upper line in visual mode indent/outdent (#12582)
Click to expand commit body
Release Notes:
- vim: Fix indent via `<` and `>` not being repeatable with `.`.
[#12351](https://github.com/zed-industries/zed/issues/12351)
Paul Eguisier
created
fd39f20
Prevent folder expansion when all items are closed (#12729)
Click to expand commit body
Release Notes:
- Prevent folder expansion when all items are closed
### Problem
When all items are closed, the next activated file expands (see the
video below).
https://github.com/zed-industries/zed/assets/21101490/a7631cd2-4e97-4954-8b01-d283dd4796be
### Cause
When the currently active item is closed, Zed tries to activate the
previously active item. Activating an item by default expands the
corresponding folder, which can result in folders being expanded when
all files are closed.
### Fixed Video
https://github.com/zed-industries/zed/assets/21101490/d30f05c5-6d86-4e11-b349-337fa75586f3
Panghu
created
0c7e745
docs: Fix Vim documentation for bindings (#12735)
Click to expand commit body
Release Notes:
- N/A
Thorsten Ball
created
3000f6e
Use cwd to run package.json script (#12700)
Click to expand commit body
Fixes case when `package.json` is not in root directory.
Usually in mono repository, where multiple `package.json` may be present
Release Notes:
- Fixed runnable for package.json in monorepos
Nycheporuk Zakhar
created
377e24b
chore: Fix clippy for upcoming 1.79 Rust release (#12727)
Click to expand commit body
1.79 is due for release in a week.
Release Notes:
- N/A
Release Notes:
- Added search for saved contexts.
- Fixed a bug that caused titles generate by the LLM to be longer than
one line.
Antonio Scandurra
created
9a5b97d
linux/x11: Don't surround selection when XMI composing (#12632)
Click to expand commit body
On X11 I was unable to type ä ü and other umlauts in files with
autoclose enabled, because typing ä requires me to hit
- compose key
- `"`
- `a`
When the `"` was typed, Zed would insert a matching `"` because it had a
selection around the dead-key that was inserted by the compose key.
We ran into a similar issue in #7611, but in the case of the Brazilian
keyboard, the `"` is the compose key so we didn't trigger the matching
`"`, because we didn't have a selection yet.
What this does is it fixes the issue by making the
surround-selection-with-quotes-or-brackets also depend on the autoclose
settings, which is didn't do before. This is a breaking change for users
of a Brazilian keyboard layout in which `"` cannot be used to surround
an existing selection with quotes anymore.
That _might_ be a change that users notice, but I can't think of
scenario for that where the user wants, say, `"` to be NOT autoclosed,
but work with selections. (Example is Markdown, for which autoclose for
`"` is disabled. Do we want that but allow surrounding with quotes?)
So it fixes the issue and makes the behavior slightly more consistent,
in my eyes.
Release Notes:
- Changed the behavior of surrounding selections with brackets/quotes to
also depend on the auto-close settings of the language. This is a
breaking change for users of a Brazilian keyboard layout in which `"`
cannot be used to surround an existing selection with quotes anymore.
Before:
[Screencast from 2024-06-04
11-49-51.webm](https://github.com/zed-industries/zed/assets/1185253/6bf255b5-32e9-4ba7-8b46-1e49ace2ba7c)
After:
[Screencast from 2024-06-04
11-52-19.webm](https://github.com/zed-industries/zed/assets/1185253/3cd196fc-20ba-465f-bb54-e257f7f6d9f3)
`base_keymap` is a property of `settings.json`, not `keymap.json`. If
you run "toggle base keymap selector" and select a particular editor,
you will notice that it places the `base_keymap` property in
`settings.json`.
Release Notes:
- N/A
This PR adds the `editor: toggle tab bar` action that hides / shows the
tab bar and updates the `tab_bar.show` setting in `settings.json`
accordingly.
First mentioned in
https://github.com/zed-industries/zed/pull/7356#issuecomment-2118445379.
Release Notes:
- Added the `editor: toggle tab bar` action.
Andrew Lygin
created
d3d0d01
Adjust IME action buffering to only apply to insert actions (#12702)
Click to expand commit body
Follow up to https://github.com/zed-industries/zed/pull/12678
fixes https://github.com/zed-industries/zed/issues/11829
In this solution, we only buffer Insert Text actions from the macOS IME.
The marked text and unmark actions are eagerly processed, so that the
IME state is synchronized with the editor state during multi step
pre-edit composition.
Release Notes:
- Fixed an issue where the IME pre-edit could desynchronize from the
editor on macOS
([#11829](https://github.com/zed-industries/zed/pull/12651)).
Co-authored-by: Conrad <conrad@zed.dev>
Mikayla Maki
and
Conrad
created
29d29f5
assistant: Initialize the UI font in the prompt library window (#12701)
Click to expand commit body
This PR fixes an issue where the prompt library did not properly have
the UI font or rem size set.
Since it is being opened in a new window, we need to re-initialize these
values the same way we do in the main window.
Release Notes:
- N/A
Marshall Bowers
created
9824e40
lsp: Handle responses in background thread (#12640)
Click to expand commit body
Release Notes:
- Improved performance when handling large responses from language
servers
---------
Co-authored-by: Piotr <piotr@zed.dev>
7a05db6
Cancel inline assist editor on blur if it wasn't confirmed (#12684)
Click to expand commit body
Release Notes:
- N/A
Antonio Scandurra
created
3587e97
Support wrapping and hard newlines in inline assistant (#12683)
Click to expand commit body
Release Notes:
- Improved UX for the inline assistant. It will now automatically wrap
when the text gets too long, and you can insert newlines using
`shift-enter`.
Antonio Scandurra
created
a96782c
Allow using the inline assistant in prompt library (#12680)

Added support for only rendering whitespace that is on a
boundary, the logic of which is explained below:
- Any tab character
- Whitespace at the start and end of a line
- Whitespace that is directly adjacent to another whitespace
Release Notes:
- Added `boundary` whitespace rendering option
([#4290](https://github.com/zed-industries/zed/issues/4290)).
---------
Co-authored-by: Nicholas Cioli <nicholascioli@users.noreply.github.com>
Nicholas Cioli
and
Nicholas Cioli
created
63a8095
Revert "Fix a bug where the IME pre-edit would desync from Zed (#12651)" (#12678)
Click to expand commit body
This reverts commit 1a0708f28cf302a0fe726a82b8cba63b839076cb since after
that, default task-related keybindings (alt-t and alt-shift-t) started
to leave `†` and `ˇ` symbols in the text editors before triggering
actions.
Release Notes:
- N/A
Kirill Bulatov
created
1768c0d
Do not occlude terminal pane by terminal element (#12677)
Click to expand commit body
Release Notes:
- Fixed file drag and drop not working for terminal
Co-authored-by: Antonio Scandurra <antonio@zed.dev>
Kirill Bulatov
and
Antonio Scandurra
created
27e9c68
Autocomplete commands that don't require access to workspace in prompt library (#12674)
Click to expand commit body
This is useful to autocomplete prompts when writing a new one in the
prompt library.
Release Notes:
- N/A
Antonio Scandurra
created
ad2ddf1
Omit clickable hunks when git hunks are disabled in the gutter (#12671)
Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/12644
https://github.com/zed-industries/zed/pull/12425 fixes the issue so that
clicks are never reaching the hunks' hitboxes in such case, this PR
actually removes those hitboxes.
Hunks can still be toggled via the action.
Release Notes:
- N/A
Kirill Bulatov
created
d6e271c
Add note about auto-updating on Linux (#12662)
Supersedes https://github.com/zed-industries/zed/pull/12659
Fixes https://github.com/zed-industries/zed/issues/12588
One of Zed's core features is our collaboration software. As such, it is
important that we notify the user when their RPC protocol is out of
date, and how to update it. This PR adds a mechanism to replace the
existing auto updater with a message explaining how to update Zed for
this environment.
Release Notes:
- N/A
This PR removes the unused `examples` from the `html_to_markdown` crate.
I was just using these to dogfood the parsing initially, but now that
it's wired up in the Assistant, the examples are no longer useful.
Release Notes:
- N/A
Fixes #12585
This changes the expectations for installed binaries on linux based on
work
that @jirutka has done for Alpine.
In particular, we now put the cli in place as `bin/zed` and the zed
binary as
`libexec/zed-editor`, and assume that packagers do the same.
cc @someone13574
Release notes:
- N/A
---------
Co-authored-by: Mikayla <mikayla@zed.dev>
Conrad Irwin
and
Mikayla
created
c7d5630
Always open the project panel for dev server projects (#12654)
This PR bumps the Vue extension to v0.0.3.
Changes:
- #11482
Release Notes:
- N/A
Marshall Bowers
created
8a659b0
Implement Indent & Outdent as operators (#12430)
Click to expand commit body
Release Notes:
- Fixes [#9697](https://github.com/zed-industries/zed/issues/9697).
Implements `>` and `<` with motions and text objects.
Works with repeat action `.`