7eea1a6
git blame gutter: Use smallest possible space (#18145)
Click to expand commit body
Before:

After:

Release Notes:
- Improved the git blame gutter to take up only the space required to
display the longest git author name in the current file.
---------
Co-authored-by: Bennet Bo Fenner <bennet@zed.dev>
Thorsten Ball
and
Bennet Bo Fenner
created
1a4f9b2
Fix minimum gutter line number spacing (#18021)
Click to expand commit body
I was inspecting how Zed did the layout in the editor, specifically for
the gutter, and noticed that `em_width * X` is being used as the 'width
of X consecutive characters'. Howevever, that math didn't work for me,
because em_width doesn't account for the space between characters, so
you can't just multiply it by a character count.
One place this is actually noticeable is in the logic for
`min_width_for_number_on_gutter`, where we try to reserve 4 characters
of line number space. However, once you actually hit 4 characters, the
actual width is bigger, causing things to resize. This seems clearly
counter to the intent of the code.
It seems the more correct logic is to use `em_advance` which accounts
for the space between the characters. I am leaving the rest of the uses
of `em_width` for generic padding. It is also possible that
`column_pixels()` would be the more correct fix here, but it wasn't
straightforward to use that due to it residing EditorElement source
file.
On my MacBook this increases the width of the gutter by 6 pixels when
there are <999 lines in the file, otherwise it's identical.
It might be worth doing some more general audit of some of the other
uses of em_width as a concept. (e.g. `git_blame_entries_width`)
https://github.com/user-attachments/assets/f2a28cd5-9bb6-4109-bf41-1838e56a75f9
Release Notes:
- Fix a slight gutter flicker when going over 999 lines
This PR bumps the Terraform extension to v0.1.1
- https://github.com/zed-industries/zed/pull/17200
Release Notes:
- N/A
Taras Martyniuk
created
db92a31
lsp: Do not notify all language servers on file save (#17756)
Click to expand commit body
This is not an ideal solution to
https://github.com/fasterthanlime/zed-diags-readme, but current status
quo is not great either; we were just going through all of the language
servers and notifying them, whereas we should ideally do it based on a
glob.
/cc @fasterthanlime
Release Notes:
- N/A
Remove some leftover println statements from #17644
Release Notes:
- N/A
Bennet Bo Fenner
created
3f415f3
Fix `use_on_type_format` setting being unused per language (#18387)
Click to expand commit body
Before this change, `use_on_type_format` would only have an effect when
defined on a global level in our settings.
But our default.json settings would also document that it's used in
language settings, i.e.:
```json
{
"languages": {
"C": {
"use_on_type_format": false
},
"C++": {
"use_on_type_format": false
}
}
}
```
But this did **not** work.
With the change, it now works globally and per-language.
Release Notes:
- Fixed `use_on_type_format` setting not working when defined inside
`"languages"` in the settings. This change will now change the default
behavior for C, C++, and Markdown, by turning language server's
`OnTypeFormatting` completions off by default.
Co-authored-by: Bennet <bennet@zed.dev>
Thorsten Ball
and
Bennet
created
140d702
Avoid panic by only restoring workspace if UI has launched (#18386)
Click to expand commit body
This should fix the `unregistered setting type
workspace::workspace_settings::WorkspaceSettings` panic that came from
inside `restorable_workspace_locations`.
We tracked it down to a possible scenario (we can't recreate it though)
in which `app.on_reopen` is called before the app has finished
launching.
In any case, this check makes sense, because we only want to restore a
workspace in case the whole app has launched with a UI.
Release Notes:
- N/A
Co-authored-by: Bennet <bennet@zed.dev>
2d2e20f
editor: Fix cursor shape not restoring when setting removed (#18379)
Click to expand commit body
Closes #18119
Release Notes:
- Fixed the cursor shape in the editor not changing back to default when
`{"cursor_shape": "..."}` setting is removed. (Does not apply to Vim
mode.)
This PR adds some more functionality to the Proposed Changes Editor
view, which we'll be using in
https://github.com/zed-industries/zed/pull/18240 for allowing the
assistant to propose changes to a set of buffers.
* Add an `Apply All` button, and fully implement applying of changes to
the base buffer
* Make the proposed changes editor searchable
* Fix a bug in branch buffers' diff state management
Release Notes:
- N/A
Max Brunsfeld
created
3161aed
Fix broken collaboration UI from #18308 (#18372)
Click to expand commit body
Fixes a bug introduced by #18308, that caused the call controls to
render incorrectly.
Release Notes:
- N/A
Release Notes:
- ssh remoting: Enable assistant panel and inline assists (running on
client)
Piotr Osiewicz
created
21a0239
Expand git diffs when clicking the gutter strip, display their controls in a block above (#18313)
Click to expand commit body
Todo:
* [x] Tooltips for hunk buttons
* [x] Buttons to go to next and previous hunk
* [x] Ellipsis button that opens a context menu with `Revert all`
/cc @iamnbutler @danilo-leal for design 👀
Release Notes:
- Changed the behavior of the git gutter so that diff hunk are expanded
immediately when clicking the gutter, and hunk controls are displayed
above the hunk.
---------
Co-authored-by: Marshall <marshall@zed.dev>
Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
Max Brunsfeld
,
Marshall
, and
Marshall Bowers
created
ae6a3d1
Make python run local worktree LSPs (#18353)
Click to expand commit body
Release Notes:
- Python: made it possible to use locally installed `pyright` if
available
---------
Co-authored-by: conrad <conrad@zed.dev>
Mikayla Maki
and
conrad
created
dc7c49b
Pin actions/stale action to 28ca103 (#18356)
Click to expand commit body
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [actions/stale](https://redirect.github.com/actions/stale) | action |
pinDigest | -> `28ca103` |
---
### 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:eyJjcmVhdGVkSW5WZXIiOiIzOC44MC4wIiwidXBkYXRlZEluVmVyIjoiMzguODAuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate[bot]
and
renovate[bot]
created
1eddd2f
Fix file descriptors leak in evals (#18351)
Click to expand commit body
Fixes an issue where evals were hitting "too many open files" errors
because we were adding (and detaching) new directory watches for each
project. Now we add those watches globally/at the worktree level, and we
store the tasks so they stop watching on drop.
Release Notes:
- N/A
---------
Co-authored-by: Max <max@zed.dev>
Co-authored-by: Piotr <piotr@zed.dev>
Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>
Richard Feldman
,
Max
,
Piotr
, and
Piotr Osiewicz
created
Release Notes:
- Fixed overriding the path of a language server binary for all language
servers. `{"lsp":{"<lsp-name>":{"binary":{"path": "_"}}}}` will now work
for all language servers including those defined by extensions.
- (breaking change) To disable finding lsp adapters in your path, you
must now specify
`{"lsp":{"<lsp-name>":{"binary":{"ignore_system_version": true}}}}`.
Previously this was `{"lsp":{"<lsp-name>":{"binary":{"path_lookup":
false}}}}`. Note that this setting still does not apply to extensions.
- Removed automatic reinstallation of language servers. (It mostly
didn't work)
---------
Co-authored-by: Mikayla <mikayla@zed.dev>
Conrad Irwin
and
Mikayla
created
1f54fde
toml: Add highlight for escape sequences (#18346)
狐狸
created
19162c3
ssh remoting: Show error message if project path does not exist (#18343)
Click to expand commit body
This now shows an error message if you try open a project over SSH that
doesn't exist. If it's a possible file-path though, it acts like Zed's
`cli` and opens the file so that it can be created.
- Works: `cargo run ssh://127.0.0.1/~/folder-exists/file-does-not-exist`
— this will open `file-does-not-exist`
- Shows error: `cargo run
ssh://127.0.0.1/~/folder-does-not-exist/file-does-not-exist` — this will
show an error
Release Notes:
- N/A
Co-authored-by: Bennet <bennet@zed.dev>
Co-authored-by: Conrad <conrad@zed.dev>
300bf87
ssh remoting: Kill SSH master process when dropping client (#18331)
Click to expand commit body
This was a process leak. Since we use `.spawn()`, the process continued
to run in the background, even if our `SshClientState` was dropped.
Means we need to manually clean it up.
Release Notes:
- N/A
Co-authored-by: Bennet <bennet@zed.dev>
Thorsten Ball
and
Bennet
created
a6cb17f
chore: Fix violations of `elided_named_lifetimes` (#18330)
Click to expand commit body
I compile Zed from nightly build pretty often and I've noticed that
we're getting a few hits on new rustc lint:
https://github.com/rust-lang/rust/pull/129207
Release Notes:
- N/A
Piotr Osiewicz
created
9d197dd
ssh remoting: Fix SSH connection not being closed (#18329)
Click to expand commit body
This fixes the `SshSession` being leaked.
There were two leaks:
1. `Arc<SshSession>` itself got leaked into the `SettingsObserver` that
lives as long as the application. Fixed with a weak reference.
2. The two tasks spawned by an `SshSession` had a circular dependency
and didn't exit while the other one was running. Fixed by fixing (1)
and then attaching one of the tasks to the `SshSession`, which means
it gets dropped with the session itself, which leads the other task
to error and exit.
Co-authored-by: Bennet <bennet@zed.dev>
Release Notes:
- N/A
---------
Co-authored-by: Bennet <bennet@zed.dev>
Thorsten Ball
and
Bennet
created
623a6ec
git: Do not rescan .git on fsmonitor events (#18326)
Click to expand commit body
Fixes #16404 by ignoring events coming from
.git/fsmonitor--daemon/cookies subdirectory.
Closes #16404
Release Notes:
- Improved performance in repositories using Git fsmonitor--daemon
feature.
Piotr Osiewicz
created
7bb5109
file picker: Use muted color for file icons (#18325)
Click to expand commit body
I think they were too much in-your-face. Muted looks better.
Before:

After:

Release Notes:
- N/A
Thorsten Ball
created
eb71d2f
zig: Fix highlighting of keywords like `orelse`, `or`, `and` (#18323)
Click to expand commit body
This changes the Zig highlights.scm to tag all keywords with `@keyword`
and not with `@keyword.<subtype>`, so the highlighting works properly.
Closes #9355
Release Notes:
- N/A
Demo:

CI bot notified me about that in
https://github.com/zed-industries/zed/pull/18323
Release Notes:
- N/A
Thorsten Ball
created
e9bc9ed
remote_server: Fix opening a new remote project not refreshing the project panel (#18262)
Click to expand commit body
Currently, when open new remote project, project_panel not refresh, we
must `ctrl-p` and select an file to refresh the project_panel. After
that, project_panel will refresh when remote project window active.
Release Notes:
- Fixed remote projects not restoring previous locations and not
refreshing the project panel on open.
CharlesChen0823
created
9a86012
docs: Add example of TOML/taplo LSP settings (#18293)
Release Notes:
- ssh-remoting: Don't show "reveal in finder" in menu
Conrad Irwin
created
2d71c36
Allow clearning activity indicators on click (#18305)
Click to expand commit body
All indicators without the click action are now could be hidden with a click.
Sometimes, I see a few language server updates statuses get stuck due to npm desperately attempting to access its registry (3 times per each package, with the timeout a bit under 1 minute per each request).
So, while the message seems stuck, npm desperately tries to do some work in the background.
https://docs.npmjs.com/cli/v10/using-npm/config has options for timeouts & retries for __package fetching__ but that does not include the actual __registry access attempts__.
It's unclear how to proceed with npm on this case now, but at least we should allow hiding these redundant messages.
Release Notes:
- Improved activity indicators' UX by allowing more of them to be hidden on click
Kirill Bulatov
created
d2ffad0
collab: Seed GitHub users from static data (#18301)
Click to expand commit body
This PR updates the collab seed script to seed the GitHub users from a
set of static data.
This removes the need to hit the GitHub API to retrieve these users.
Release Notes:
- N/A
Marshall Bowers
created
692590b
collab: Fix GitHub user retrieval in seed script (#18296)
Click to expand commit body
This PR fixes the GitHub user retrieval in the database seed script.
The users returned from the [list
users](https://docs.github.com/en/rest/users/users?apiVersion=2022-11-28#list-users)
endpoint don't have a `created_at` timestamp, so we need to fetch them
individually.
I want to rework this further at a later date, this is just a bandaid to
get things working again.
Release Notes:
- N/A
@notpeter and I decided on these things:
- Give users 10 days to respond
- Only run once a week: Tuesday @7AM ET
Release Notes:
- N/A
Joseph T. Lyons
created
9606858
Fix unnecessarily-specific struct pattern in rust outline query (#18297)
Click to expand commit body
Fixes https://github.com/zed-industries/zed/issues/18294
Release Notes:
- Fixed a recent regression where tuple and unit structs were omitted
from the outline view in Rust (#18294).