d3fc00d
windows: Fix fs watch when file doesn't exist or is a symlink (#22660)
Click to expand commit body
Closes #22659
More context can be found in attached issue.
This is specific to Windows:
1. Add parent directory watching for fs watch when the file doesn't
exist. For example, when Zed is first launched and `settings.json` isn't
there.
2. Add proper symlink handling for fs watch. For example, when
`settings.json` is a symlink.
This is exactly same as how we handle it on Linux.
Release Notes:
- Fixed an issue where items on the Welcome page could not be toggled on
Windows, either on first launch or when `settings.json` is a symlink.
tims
created
d58f006
Use standard injection.language and injection.content captures (#22268)
Click to expand commit body
Closes #9656. Continuation of #9654, but with the addition of backwards
compatibility for the existing captures.
Release Notes:
- Improved Tree-sitter support with added compatibility for standard
injections captures
---------
Co-authored-by: Finn Evers <finn.evers@outlook.de>
uncenter
and
Finn Evers
created
f3e75d8
git_ui: Update commit composer and git status entry UI (#22738)
Click to expand commit body
Blocked on:
- No way to get # of lines changed (added/removed)
- Need methods for:
- `commit`
- `stage`
- `unstage`
- `revert_all` - Similar to Editor::RevertFile, but for all changes in
the project
TODO:
- [ ] Update checkbox visual style to match
[figma](https://www.figma.com/design/sKk3aa7XPwBoE8fdlgp7E8/Git-integration?node-id=804-9255&t=wsHFxPgYHEX78Ky1-11)
- [ ] Update panel button style to filled
- [ ] Panel header
- [x] Correct 1 change suffix (1 changes -> 1 change)
- [ ] Add lines changed badge
- [ ] Add context menu button (`...`)
- [ ] Add context menu
- [ ] Wire up Revert All
- [ ] Entry List
- [x] Revert unwanted ListItem styling
- [x] Add selected, hover states
- [ ] Add `scrolled_to_top`, `scrolled_to_bottom`
- [ ] Show gradient overflow indicator
- [ ] Add `JumpToTop`, `JumpToBottom` actions to the list, bind to shift
+ arrow keys
- [ ] Remove wrapping from keyboard movement
- [ ] Entry
- [x] Style deleted entries with a strikethrough
- [x] `...` on hover or selected
- [ ] Add context menu
- [ ] Composer
- Todo...
Release Notes:
- N/A
Nate Butler
created
d2e44ab
terminal: Set TERM to xterm-256color (#22777)
Click to expand commit body
This is a follow-up to #22615 and fixes the issue of `alacritty`
resulting in broken shell/CLI apps if `alacritty` is not in the terminfo
database.
Closes #ISSUE
Release Notes:
- Set `TERM` to `xterm-256color` in Zed's built-in terminal
Thorsten Ball
created
5601702
project_panel: Support multiple items in `RemoveFromProject` (#22455)
Click to expand commit body
This makes the `RemoveFromProject` action to remove all marked entries
in the project panel instead of just the selected one.
Closes #22454
Release Notes:
- Improved the `RemoveFromProject` action to remove all selected items.
Sergei Shulepov
created
3d8625f
assistant2: Store deduped context on the `Thread` (#22781)
Click to expand commit body
This PR is a small refactoring in advance of some other changes.
Previously we were storing the whole `Context` associated with each
message. However, it's likely that multiple messages may end up using
the same context.
We now store the deduped context in a separate collection and refer to
it from each message by its `ContextId`.
Release Notes:
- N/A
Marshall Bowers
created
f53a17b
chore: Add missing test-support features to terminal_view and image_viewer (#22782)
Click to expand commit body
Release Notes:
- N/A
Piotr Osiewicz
created
57dfaa6
emacs: Fix using emacs in embedded terminal (#22779)
Click to expand commit body
- Follow-up to: https://github.com/zed-industries/zed/pull/22590
Release Notes:
- N/A
Peter Tripp
created
4deab8a
vim: Add Separator and RemoveIndent in Join Lines, fix gJ use space join (#22496)
677868b
Add toolbar spacing and alignment improvements (#22771)
Click to expand commit body
Tackles some of the points here:
https://github.com/zed-industries/zed/issues/22673. However, this is not
doing anything yet to treat misalignment when with odd-number UI font
sizes. Here are some screenshots with a theme that makes easier to spot
them. It's subtle:
| Before | After |
|--------|--------|
| <img width="1313" alt="Screenshot 2025-01-07 at 10 23 31 AM"
src="https://github.com/user-attachments/assets/fdf125a7-ef1c-4368-aea8-579f916b9c34"
/> | <img width="1313" alt="Screenshot 2025-01-07 at 10 26 11 AM"
src="https://github.com/user-attachments/assets/9728fd47-3c17-4c42-9cf6-11083eb32980"
/> |
| <img width="1313" alt="Screenshot 2025-01-07 at 10 23 36 AM"
src="https://github.com/user-attachments/assets/dc2010e9-4ae4-451c-afd1-6bd13750dc66"
/> | <img width="1313" alt="Screenshot 2025-01-07 at 10 26 08 AM"
src="https://github.com/user-attachments/assets/a71ef2ef-3ac7-4b0a-8d50-1c3c4f17d5cb"
/> |
Release Notes:
- N/A
Note how, previously, switching between the thread view and the history
caused a slightly reduction of the toolbar height. Super subtle stuff,
but doesn't happen anymore.
### Before
https://github.com/user-attachments/assets/712ff34e-a638-484d-8415-16011b10ae63
### After
https://github.com/user-attachments/assets/7ccff7a3-45a4-445c-9638-8445733e0ffc
Release Notes:
- N/A
Danilo Leal
created
f439ee0
assistant2: Add check icon for included context (#22774)
Click to expand commit body
Quick follow-up to: https://github.com/zed-industries/zed/pull/22712 —
just to make it more visually easier to understand.
<img width="800" alt="Screenshot 2025-01-07 at 11 48 06 AM"
src="https://github.com/user-attachments/assets/92f0523b-eb85-4929-a825-2e1e524b3ad7"
/>
Release Notes:
- N/A
fb272c0
ssh remoting: Improve error message if netcat is missing (#22767)
Click to expand commit body
Closes #22752
Release Notes:
- N/A
Thorsten Ball
created
bcc6d95
assistant2: Make context pill names work like editor tabs (#22741)
Click to expand commit body
Context pills for files will now only display the basename of the file.
If two files have the same base name, we will also show their parent
directories, mimicking the behavior of editor tabs.
https://github.com/user-attachments/assets/ee88ee3b-80ff-4115-9ff9-8fe4845a67d8
Note: The double `/` in the file picker is a known separate issue.
Release Notes:
- N/A
---------
Co-authored-by: Danilo <danilo@zed.dev>
Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
Agus Zubiaga
,
Danilo
, and
Danilo Leal
created
a827f54
Reduce amount of workspace serialization happening (#22730)
Click to expand commit body
Part of https://github.com/zed-industries/zed/issues/16472
Reduces amount of workspace serialization happening by:
* fixing the deserialization logic: now it does not set panels that are
hidden to active
* cleaning up `active_panel_index` for docks that are closed, to avoid
emitting extra events for such closed docks
* adjusting outline panel to drop active editor subscriptions on
deactivation — this way, `cx.observe` on the dock with outline panel is
not triggered (used to be triggered on every selection change before)
* adjusting workspace dock drag listener to remember previous
coordinates and only resize the dock if those had changed
* adjusting workspace pane event listener to ignore
`pane::Event::UserSavedItem` and `pane::Event::ChangeItemTitle` that
seem to happen relatively frequently but not influence values that are
serialized for the workspace
* not using `cx.observe` on docks, instead explicitly serializing on
panel zoom and size changes
Release Notes:
- Reduced amount of workspace serialization happening
Kirill Bulatov
created
4c47728
Set `TERM` env variable inside the terminal (#22615)
Click to expand commit body
Closes #17991
Release Notes:
- Set the `TERM` environment variable inside the terminal
Currently the terminal inherits the `TERM` variable from the parent
process. However this can cause issues with programs that rely on this
variable to make sure certain features are present. For example not
supporting backspaces making the terminal almost unusable.
Julius de Boer
created
e56b692
Make expand excerpt apply to all excerpts in selections (#22748)
Click to expand commit body
Closes #22720
Release Notes:
- `ExpandExcerpts` (`shift+enter` by default) now expands all excerpts
that have selected text, rather than just excerpts that contain the end
of a selection.
Michael Sloan
created
810b37c
Rename the `OpenFile` action to `OpenSelectedFilename` to better reflect its function (#22494)
Click to expand commit body
Release Notes:
- Renamed the `OpenFile` action to `OpenSelectedFilename` for clarity
Add back necessary packages for linux user from
https://github.com/zed-industries/zed/pull/21075/files#diff-dd972f906c9914eb70fae1db9cf66baa653e6b643bbdedeaa0070939abc3fb56L20-L22
Release Notes:
- N/A
wuliuqii
created
410b4bd
Show error alert when there's an error opening file with native OS picker (#22671)
Click to expand commit body
Closes #20814 by showing error alert if there's some error after OS
native File -> Open
https://github.com/user-attachments/assets/ce092831-4b55-4e20-8ffa-8e60eaf6364d
The implementation here is the same as in handle_external_paths_drop
function (when users uses drag and drop to open the file):
https://github.com/zed-industries/zed/blob/de08e47e5bc94afdee81fd99f838100fc577a98c/crates/workspace/src/pane.rs#L2810
Release Notes:
- Added an error alert when there's an error opening file with native OS
picker.
spotikhanov
created
dc0075b
Fix empty title in Recent Projects (#21952)
Click to expand commit body
Close #13595
Release Notes:
- Fixed empty title in Recent Projects.
---
| Before | After |
| --- | --- |
| <img width="695" alt="SCR-20241213-nzxr"
src="https://github.com/user-attachments/assets/f19a0bad-d542-44cd-85c1-89386d396f27"
/> | <img width="625" alt="image"
src="https://github.com/user-attachments/assets/0d2afef7-4cd2-43eb-9046-c169df2eb8a0"
/> |
This is because the `LocalPathsOrder` get empty list.
```
[crates/recent_projects/src/recent_projects.rs:385:9] &location = Local(
LocalPaths(
[
"/Users/jason/Library/Application Support/Zed/prettier/node_modules",
],
),
LocalPathsOrder(
[],
),
)
[crates/recent_projects/src/recent_projects.rs:386:9] &paths = [
"~/Library/Application Support/Zed/prettier/node_modules",
]
[crates/recent_projects/src/recent_projects.rs:385:9] &location = Local(
LocalPaths(
[
"/Users/jason/github/tree-sitter-csv",
],
),
LocalPathsOrder(
[],
),
)
[crates/recent_projects/src/recent_projects.rs:386:9] &paths = [
"~/github/tree-sitter-csv",
]
[crates/recent_projects/src/recent_projects.rs:385:9] &location = Local(
LocalPaths(
[
"/Users/jason/work/autocorrect/autocorrect-website/dist",
],
),
LocalPathsOrder(
[],
),
)
```
Jason Lee
created
e08eba8
Update Rust crate tree-sitter-python to v0.23.6 (#22557)
Click to expand commit body
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
|
[tree-sitter-python](https://redirect.github.com/tree-sitter/tree-sitter-python)
| workspace.dependencies | patch | `0.23.5` -> `0.23.6` |
---
### Release Notes
<details>
<summary>tree-sitter/tree-sitter-python (tree-sitter-python)</summary>
###
[`v0.23.6`](https://redirect.github.com/tree-sitter/tree-sitter-python/releases/tag/v0.23.6)
[Compare
Source](https://redirect.github.com/tree-sitter/tree-sitter-python/compare/v0.23.5...v0.23.6)
**NOTE:** Download `tree-sitter-python.tar.xz` for the *complete* source
code.
</details>
---
### Configuration
📅 **Schedule**: Branch creation - "after 3pm on Wednesday" in timezone
America/New_York, Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
Release Notes:
- N/A
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS44NS4wIiwidXBkYXRlZEluVmVyIjoiMzkuODUuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
It is expected that an unsaved buffer would have no
file.
Release Notes:
- N/A
Conrad Irwin
created
6fce536
project_panel: Refine selection, copying, and deletion behavior (#22658)
Click to expand commit body
Closes #22655
A more detailed write-up for this change can be found in the issue
itself. Here, I'm just providing previews after the change. The preview
before the change can be found in the attached issue.
1. While selecting multiple entries, the last clicked entry should be
selected.
[a.webm](https://github.com/user-attachments/assets/2add69c3-82a9-4e45-92e8-366aaf9b298a)
2. When holding `Ctrl`/`Cmd` on an entry, there should be clear visual
feedback to indicate whether the entry is selected or marked.
[b.webm](https://github.com/user-attachments/assets/2cefb8aa-e7d0-4929-9efa-89a4329f428b)
3. When only one entry is marked, but it’s different from the selection,
operations should prioritize the selected entry. This let's you do quick
one-off actions without disrupting the marked state.
[c.webm](https://github.com/user-attachments/assets/8e7ae0c0-4387-49b9-9761-5d02a1c21a84)
4. When more than one entries are marked, operations should prioritize
the marked entries. If the selection differs from the marked entries, it
should not interfere with operations on the marked entries. This let's
you do actions on multiple marked entries without needing to adjust the
selection.
[d.webm](https://github.com/user-attachments/assets/165a74be-cbe9-48ac-b558-2562485ea224)
Release Notes:
- Improved project panel selection, copying, and deletion behavior, to
be more predictable.
Closes #22388
Release Notes:
- Fixed Visual Mode Use `Y` Yank Line
---------
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
0x2CA
and
Conrad Irwin
created
7d0c571
linux: Prevent target file from being trashed when trashing symlink (#22704)
Click to expand commit body
Closes #22399
Currently, the target file is being trashed when trashing a symlink, and
the symlink remains intact. Symlinks are not handled separately yet, so
when `open` is used on a symlink, it gets resolved to the target file.
To fix this, we can get the file descriptor of the symlink by passing
`libc::O_PATH | libc::O_NOFOLLOW` flags to `open`, and then pass this
file descriptor to the existing `trash::trash_file` from `ashpd`.
However, this would result in an error because `ashpd` currently does
not support trashing symlink files. I have created an issue for it here:
[https://github.com/bilelmoussaoui/ashpd/issues/255](https://github.com/bilelmoussaoui/ashpd/issues/255).
For the time being, this PR partially fixes the issue by removing the
symlink without trashing so that the target file won't be affected. Once
the upstream bug is fixed, we can switch this remove action back to
trashing.
Release Notes:
- Fixed target file from being trashed when trashing symlink on Linux.
tims
created
d2d1779
linux: Add `keyboard_layout` and `on_keyboard_layout_change` support (#22736)
Click to expand commit body
No issue, as the functionality is currently not being used in Zed. This
is more of a GPUI improvement.
Currently, `keyboard_layout` and `on_keyboard_layout_change` are already
handled on macOS. This PR implements the same for X11 and Wayland.
Linux supports up to 4 keyboard layout groups (e.g., Group 0: English
US, Group 1: Bulgarian, etc). On X11 and Wayland, `event` provides a new
active group, which maps to the `layout_index`. We already store keymap
state from where we can get the current `layout_index`. By comparing
them, we determine if the layout has changed.
X11:
<img
src="https://github.com/user-attachments/assets/b528db77-1ff2-4f17-aac5-7654837edeb9"
alt="x11" width="300px" />
Wayland:
<img
src="https://github.com/user-attachments/assets/2b4e2a30-b0f4-495c-96bb-7bca41365d56"
alt="wayland" width="300px" />
Release Notes:
- N/A
tims
created
76d18f3
Disable inline completions in Vim normal mode (#22439)
Click to expand commit body
This is harmful for user experience and at best requires a user setting.
This was committed as part of
https://github.com/zed-industries/zed/pull/21739 however that change had
no relevant release notes and no relevant settings.
The issue #22343 shows how this can result in user experience
regression: deleting a text fragment can reinsert it back, and it's thus
unclear if the deletion has even worked. Maybe this can be reenabled in
some very restrictive setup, and put behind a setting, but it can't be
unconditional. Completions should activate when the user signals intent
of entering code - for example, if instead of `de` to delete a fragment,
I press `ce` to replace it, I would naturally expect inline completions
to show up.
Note: The linked PR added more code in vim crate to refresh inline
completions in normal mode. I'm keeping that code around in this commit,
so that this can be the minimal fix to the linked issue -- with the
assumption that maybe there's some way in the future to reenable this in
a subset of cases that don't result in confusing / broken UX. If that is
not true the code might need further cleanup. Let me know if you'd
rather see removal of those changes in this PR as well.
Closes #22343.
Release Notes:
- Fixes inline completions showing up in Vim normal mode.
Arseny Kapoulkine
created
7fa30f4
html: Use `@attribute` highlight capture for HTML attributes (#20752)
Click to expand commit body
`@attribute` is the very first query on the
https://zed.dev/docs/extensions/languages#syntax-highlighting captures
list, we should be using it! This PR changes the highlights queries for
HTML to use the `@attribute` capture instead of the `@property` capture
for `attribute_name` nodes.
Release Notes:
- N/A
Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
uncenter
and
Marshall Bowers
created
7075f34
Fix uploading ssh binaries when ssh cds (#22744)
Click to expand commit body
The code we have assumes that when you run commands over ssh they run
in your home directory. This was not true in some cases, and broke SSH
remoting if you had `upload_binary_over_ssh` set.
To reproduce this use Coder and set the `dir` parameter.
Release Notes:
- Fixed SSH remoting in the case that ssh defaults to a non-$HOME
directory.
Conrad Irwin
created
847596a
assistant2: Expand some variable names (#22742)
Click to expand commit body
This PR expands some variables names in the `ThreadStore` for better
readability.
Release Notes:
- N/A
Release Notes:
- N/A
Adds textobjects queries for Elixir.
These queries were originally pulled directly from the
[nvim-treesitter-textobjects](https://github.com/nvim-treesitter/nvim-treesitter-textobjects)
repo with [this
textobjects.scm](https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter-textobjects/refs/heads/master/queries/elixir/textobjects.scm)
file, but have been heavily edited for Zed.
David Baldwin
created
5f7de2e
assistant2: Clear all collections when clearing the `ThreadStore` (#22743)
Click to expand commit body
This PR adds some missing calls to clear the sub-collections in the
`ThreadStore` when we call `ThreadStore::drain` or `ThreadStore::clear`.
Release Notes:
- N/A
The existing code was causing us to constantly re-scan files when
anything changed in the project. Temporarily revert this as we're about
to rework this entire UI with the new primitives.
follow up to https://github.com/zed-industries/zed/pull/22329
Release Notes:
- N/A
---------
Co-authored-by: Cole <cole@zed.dev>
Mikayla Maki
and
Cole
created
5ec9248
go: Adjust `gopls` path based on OS (#22727)
Click to expand commit body
Based on the python https://github.com/zed-industries/zed/issues/21452
and PR https://github.com/zed-industries/zed/pull/22587
I found the same problem with go on windows.
Describe the bug / provide steps to reproduce it
Language server error: gopls
The system cannot find the file specified. (os error 2)
-- stderr--
[ERROR project::lsp_store] Failed to start language server "gopls": The
system cannot find the file specified. (os error 2)
[ERROR project::lsp_store] server stderr: ""
Environment
Windows 11
Go
Release Notes:
- Windows: Fixed `gopls` path construction on Windows 11.
---------
Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
Torrat
and
Marshall Bowers
created
c968225
Add Emacs keybindings to open new/close windows and quit Zed (#22629)
Click to expand commit body
These are more closely like default Emacs bindings.
I hope such small and minor changes didn't warrant a discussion in
advance.
Release Notes:
- Added Emacs bindings for creating a new window, closing a window, and
quitting zed entirely.
Ross Timson
created
1413932
Add validation in `LspCommand::to_lsp` + check for inverted ranges (#22731)
Click to expand commit body
#22690 logged errors and flipped the range in this case. Instead it
brings more visibility to the issue to return errors.
Release Notes:
- N/A
Michael Sloan
created
1c223d8
Ensure project search keyboard shortcut tooltip is displayed (#22717)
Click to expand commit body
Part of: https://github.com/zed-industries/zed/issues/22673
Before/After:
<img width="212" alt="Screenshot 2025-01-06 at 12 17 52"
src="https://github.com/user-attachments/assets/8eef7c5e-ccc7-4946-be19-f10dcd5f957d"
/><img width="211" alt="Screenshot 2025-01-06 at 12 17 42"
src="https://github.com/user-attachments/assets/8612b1b5-139d-422f-9457-ce399814d641"
/>
Release Notes:
- N/A
bbce1c1
Add compile_commands.json documentation for C/C++ (#22639)
Click to expand commit body
Added documentation explaining that clangd requires
`compile_commands.json` for proper functionality in both C and C++
projects. Includes instructions for generating the file using CMake.
This is related to
https://github.com/zed-industries/zed/discussions/6480
Release Notes:
- N/A
---------
Co-authored-by: Peter Tripp <peter@zed.dev>
Justin Simon
and
Peter Tripp
created
2856d0a
Fix inline assist layout issues related to screen size (#22732)
Click to expand commit body
## Before
https://github.com/user-attachments/assets/c84f15d2-5643-46f2-9eb6-f0234c563c01
## After
https://github.com/user-attachments/assets/d4eab08a-1bd5-442c-9663-34bb512dba4b
Release Notes:
- N/A
---------
Co-authored-by: Marshall <marshall@zed.dev>
Richard Feldman
and
Marshall
created
799e81f
google_ai: Add Gemini 2.0 Flash support (#22665)
Click to expand commit body
Release Notes:
- Added support for Google's Gemini 2.0 Flash experimental model.
Note:
Weirdly enough the model is slow on small talk responses like 'hi' (in
my tests) but very fast on things that need more tokens like 'write me a
snake game in python'. Likely an API problem.
TESTED ONLY ON WINDOWS! Would test further but don't have Linux
installed and don't have an Mac. Will likely work everywhere.
Why?:
I think Gemini 2.0 Flash is incredibly good model at coding and
following instructions. I think it would be nice to have it in the
editor. I did as minimal changes as possible while adding the model and
streaming validation. I think it's worth merging the commits as they
bring good improvements.
---------
Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
volt
and
Marshall Bowers
created
0d30bda
Rename livekit_client_macos test_app to suppress warnings (#22719)
Click to expand commit body
Current copy/paste conflict between crates triggers warnings during test
runs.
<img width="1492" alt="Screenshot 2025-01-06 at 12 41 11"
src="https://github.com/user-attachments/assets/ea7f90ec-bef8-482a-a954-6d5c41b9fd7e"
/>
Release Notes:
- N/A
Peter Tripp
created
ec2506b
Fix a bug where repositories were always being marked as changed (#22725)
c74e5f5
assistant2: Render placeholder thread title until summary is generated (#22723)
Click to expand commit body
This PR ensures we render a "New Thread" placeholder title until a
message has been sent, and thus, a summary is generated.
https://github.com/user-attachments/assets/1c30e0ff-baaa-44ad-a1a2-42f1ce9fe0b0
Release Notes:
- N/A
Danilo Leal
created
2023c43
ci: Add logging to docs-only change detection (#22724)
Click to expand commit body
This PR adds some logging to the docs-only change detection, for better
auditability.
Release Notes:
- N/A