Creates an indents.scm file for bash and adds regexes for
`{increase,decrease}_indent_pattern` in
`crates/languages/src/bash/config.toml`
so that autoindent works as expected in bash
Note that this PR does not attempt to handle all cases where indenting
might be desired in bash. I am aiming to support ~80% of what people
want while avoiding the more gnarly/edge cases like indented blocks in
case statements and indenting for associative arrays.
This is done with the explicit hope that someone (possibly from the
community) more familiar with and passionate about bash can come through
at a later date and handle those cases
Closes #23628
Release Notes:
- Add basic support for autoindent functionality in bash/shell files
Ben Kunkle
created
dfd11c3
docs: Add docs for icon theme extensions (#24155)
Click to expand commit body
This PR adds docs for icon themes.
Release Notes:
- N/A
Marshall Bowers
created
28b8045
Fix missing modifier changed events on Linux X11 (#24154)
Click to expand commit body
Release Notes:
- Fixed some modifier changed events not being present on Linux X11.
This affected things like the project search palette, where holding ctrl
would not cause the split options to appear.
Michael Sloan
created
13b7be1
themes: Make background colors partly transparent by default (#24151)
Click to expand commit body
Certain themes define the `created` and `deleted` status colors, but not
`created_background` and `deleted_background`. Previously, Zed would use
`created` and `deleted` colors, and apply a hard-coded opacity change,
but *not* use `created_background` and `deleted_background`, but that
behavior was inadvertently changed in
https://github.com/zed-industries/zed/pull/22994.
This PR restores the old behavior as a fallback. If a theme defines a
status color, but not the corresponding background color, we'll use a
75% transparent version of the foreground color as a fallback.
Release Notes:
- Fixed an issue in certain themes where diffs would render with the
wrong red and green colors for deletions and insertions.
Max Brunsfeld
created
e2d6d4b
docs: Update link to Scheme extension (#24148)
Click to expand commit body
This PR updates the link to the Scheme extension in the docs, as it was
moved to a separate repo in #24078.
Release Notes:
- N/A
Marshall Bowers
created
1ec91a8
Clip points when searching for `@` in the Assistant 2 panel (#24147)
Click to expand commit body
Release Notes:
- N/A
Kirill Bulatov
created
11e095b
Fix editor edited event property field name (#24145)
This adds a new version of the project diff editor to go alongside the
new git panel.
The basics seem to be working, but still todo:
* [ ] Fix untracked files
* [ ] Fix deleted files
* [ ] Show commit message editor at top
* [x] Handle empty state
* [x] Fix panic where locator sometimes seeks to wrong excerpt
Release Notes:
- N/A
This will help us debug a panic we're seeing in their internals.
In order to make this work, I've temporarily forked async-tls with:
https://github.com/async-rs/async-tls/pull/59/files
Closes #ISSUE
Release Notes:
- N/A
Conrad Irwin
created
a8741dc
Migrate more events to telemetry::event! macro (#24102)
Click to expand commit body
I believe this takes care of the remaining events running through the
old flow that requires transformation at the collab server level. I
think all events are now going through `telemetry::event!()`.
For anyone curious where the new telemetry names are coming from, you
can check the `for_snowflake` function within
`crates/collab/src/api/events.rs`, to see how collab is currently
transforming the events going through the old flow.
Release Notes:
- N/A
Joseph T. Lyons
created
a864168
Enable collaborating editing of the commit message input inside the git panel (#24130)
Click to expand commit body
https://github.com/user-attachments/assets/200b88b8-249a-4841-97cd-fda8365efd00
Now all users in the collab/ssh session can edit the commit input
collaboratively, observing each others' changes live.
A real `.git/COMMIT_EDITMSG` file is opened, which automatically enables
its syntax highlight, but its original context is never used or saved on
disk — this way we avoid stale commit messages from previous commits
that git places there.
A caveat: previous version put some effort into preserving unfinished
commit messages on repo swtiches, but this version would not do that
— instead, it will be blank on startup, and use whatever
`.git/COMMIT_EDITMSG` contents on repo switch
Release Notes:
- N/A
---------
Co-authored-by: Cole Miller <cole@zed.dev>
Kirill Bulatov
and
Cole Miller
created
6b48a6e
workspace: Respect minimized state when deserializing workspaces (#24127)
Click to expand commit body
Fixes a regression from #24015 pointed out in #24093
Closes #24093
Release Notes:
- N/A
Add support for go fuzz tests.
Closes #23809
Release Notes:
- N/A
---------
Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>
Christian Borup
and
Piotr Osiewicz
created
8edcaec
inline completion: Merge `disabled_globs` setting with default values (#24122)
Click to expand commit body
This ensures that the following files are always ignored:
```
"**/.env*"
"**/*.pem"
"**/*.key"
"**/*.cert"
"**/*.crt"
"**/secrets.yml"
```
Release Notes:
- N/A
Bennet Bo Fenner
created
eb820ab
inline completion: Respect `disabled_globs` when manually requesting completions (#24121)
Click to expand commit body
When requesting completions manually with `editor: Show inline
completion`, we did not check if completions are actually disabled for
the current file (`inline_completions > disabled_globs`)
Release Notes:
- Fixed an issue where the `inline_completions > disabled_globs` setting
would not be respected when manually requesting a completion (`editor:
Show inline completion`)
Bennet Bo Fenner
created
08c834c
cli: Instruct in `--help` how to run to see all logs (#24112)
Click to expand commit body
Release Notes:
- N/A
João Marcos
created
52aed48
Use `prettier` to fix formatting in `docs/src/languages/lua.md` + fix typo (#24118)
Click to expand commit body
Release Notes:
- N/A
Michael Sloan
created
f14ef40
Conditionally render divider between button groups in the status bar (#24114)
Click to expand commit body
In the left hand status bar, there are two groups of buttons. There was
a border between the two hardcoded on the first button of the second
group, however, if all buttons in the first group are hidden, the border
doesn't need to be rendered.
(Not handled in this PR) A potentially better approach would be to
change StatusBar's definition from `left_items` and `right_items` to
`left_groups` and `right_groups`, and render dividers between each group
of items. That seemed like a bigger refactor than I wanted to handle for
now, but is an option for the future.
If you use these settings on `main`, the border will show, but with
nothing to the left of it.
```json
{
"collaboration_panel": {
"button": false
},
"outline_panel": {
"button": false
},
"project_panel": {
"button": false,
},
}
```
Screenshots:
Before:
<img width="117" alt="Screenshot 2025-02-02 at 6 19 24 PM"
src="https://github.com/user-attachments/assets/b3401b47-6172-4392-9277-31aa1affaf7a"
/>
<img width="134" alt="Screenshot 2025-02-02 at 6 20 12 PM"
src="https://github.com/user-attachments/assets/1e8caee6-1da8-47f6-8499-9a93b6d8fa27"
/>
After:
<img width="125" alt="Screenshot 2025-02-02 at 6 19 58 PM"
src="https://github.com/user-attachments/assets/9b9f421c-660b-41cb-80e0-acb774c66054"
/>
<img width="132" alt="Screenshot 2025-02-02 at 6 20 20 PM"
src="https://github.com/user-attachments/assets/87e0e475-084b-44df-b820-573c68728c1a"
/>
Release Notes:
- Conditionally render divider in status bar
---------
Co-authored-by: Danilo Leal <67129314+danilo-leal@users.noreply.github.com>
Kevin Sweet
and
Danilo Leal
created
1d3e9b2
docs: Update completion keybindings and fix typos (#24113)
1301c41
Add direnv `.envrc` to `.gitignore` (#24115)
Click to expand commit body
Release Notes:
- N/A
Michael Sloan
created
1dd2bbe
docs: Add lua-language-server formatter example (#24105)
Peter Tripp
created
4885ace
workspace: Prevent clicks from falling through on some notifications (#24104)
Click to expand commit body
Closes #ISSUE
Release Notes:
- N/A
Piotr Osiewicz
created
691de6b
Add `#[track_caller]` to gpui foreground executor spawn methods (#24103)
Click to expand commit body
Use of this location info was added in #21758 to help with diagnosing
remote_server panics on drop of tasks on a different thread.
Release Notes:
- N/A
Adds a text property for controlling left, center, or right text
alignment.
#8792 should stay open since this doesn't add support for `justify`
(which would require a much bigger change since this can just alter the
origin of each line, but justify requires changing spacing, whereas
justify requires changes to each platform's shaping code).
Release Notes:
- N/A
someone13574
created
4a65315
gpui: Switch from `linkme` to `inventory` for action registration (#24087)
Click to expand commit body
This switches how actions are registered in GPUI from
[dtolnay/linkme](https://github.com/dtolnay/linkme) to
[dtolany/inventory](https://github.com/dtolnay/inventory), fixing the
linking error seen in #15902, which also occurs on nightly toolchains.
I'm not sure if that issue should be closed or not given the other
problems on Chimera though.
This also fixes zed-industries/create-gpui-app#10
Release Notes:
- N/A
someone13574
created
f4f51c1
Remove /workflow command as not existing anymore #2 (#24097)
Click to expand commit body
Follow-up of https://github.com/zed-industries/zed/pull/24095
Release Notes:
- N/A
Kirill Bulatov
created
f7d2b53
Remove /workflow command as not existing anymore (#24095)
Click to expand commit body
Based on
https://github.com/zed-industries/zed/issues/16913#issuecomment-2629424808
Follow-up of https://github.com/zed-industries/zed/pull/19900
Release Notes:
- N/A
Kirill Bulatov
created
2f82374
Switch GitHub Copilot Chat from o1-mini to o3-mini (#24080)
af461f8
assistant: Use GPT 4 tokenizer for `o3-mini` (#24068)
Click to expand commit body
Sorry to dump an unsolicited PR for a hot feature! I'm sure someone else
was taking a look at this.
I noticed that token counting was disabled and I was getting error logs
of the form `[2025-01-31T22:59:01-05:00 ERROR assistant_context_editor]
No tokenizer found for model o3-mini` when using the new model. To fix
the issue, this PR registers the `gpt-4` tokenizer for this model.
Release Notes:
- openai: Fixed Assistant token counts for `o3-mini` models
Roshan Padaki
created
f6824e3
Move scheme extension to zed-extensions/scheme (#24078)
Click to expand commit body
New home: https://github.com/zed-extensions/scheme
- See also: https://github.com/zed-industries/extensions/pull/1981
39d45bc
Update docs for running collab locally (again) (#24069)
Click to expand commit body
Release Notes:
- N/A
João Marcos
created
d0152f9
vim: Add keybindings for resizing docks (#23874)
Click to expand commit body
Closes #23334
This does not follow the exact way that windows are resized in vim.
Normally the command is `ctrl-w >` however this PR uses just `ctrl->`.
This is because I could not find a good way to read in a count like `10
ctrl-w ctrl->`. This is not really a problem since `ctrl->` can be held
down, which, in my opinion, speeds up resizing. I think this is a good
compromise since it improves usability; however, I am concerned that
this is not intuitive. I am looking forward to feedback.
Release Notes:
- Added the following commands
- vim::ResizeLeftDock
- vim::ResizeRightDock
- vim::ResizeBottomDock
- Added keybinds
- `ctrl->` for widening left dock
- `ctrl-<` for narrowing left dock
AidanV
created
a3c7dc3
vim: Add textobject `e` for entire file (#24039)
Click to expand commit body
Co-Authored-By: Thomas Heartman <zed@thomasheartman.com>
Release Notes:
- vim: Add `e` for entire file object. `yae` to copy entire file
Co-authored-by: Thomas Heartman <zed@thomasheartman.com>
Conrad Irwin
and
Thomas Heartman
created
66e2028
git_ui: More git panel refinement (#24065)
Click to expand commit body
- Removes flakey keybindings from buttons
- Moves git panel entries to use a standard ListItem
- Show a repo selector in the panel when more than one repo is present
- Remove temporary repo selector from title bar
Release Notes:
- N/A
Nate Butler
created
52a3013
editor: Push `em` width calculations down into `EditorSnapshot::gutter_dimensions` (#24062)
Click to expand commit body
This PR removes the `em_width` and `em_advance` parameters to
`EditorSnapshot::gutter_dimensions` in favor of computing the values
inside of it.
In practice all of the callers were passing in the same values, and
there isn't a circumstance where we would want to pass in different
values.
`gutter_dimensions` has also been modified to return
`Option<GutterDimensions>` instead of `GutterDimensions` so that we can
remove some `.unwrap`s when interacting with the text system.
Release Notes:
- N/A
In support of work on
https://github.com/zed-industries/zed/tree/new-ui-for-edit-prediction-with-lsp-completions,
where we want to be able to extract a range of the buffer as
`HighlightedText`.
Release Notes:
- N/A
Michael Sloan
created
9a6b9e3
Use different commit author for collab project clients (#24058)
Click to expand commit body
Follow-up of https://github.com/zed-industries/zed/pull/23869
* Retrieves user + email for collab project clients and use these when
such users commit
Same as in https://github.com/zed-industries/zed/pull/23329, "is it the
right user name and e-mail" and "how to override these" questions apply.
* If this data is unavailable, forbid committing to the remote client
* Forbid running related actions in git panel, if committing/writing is
not permitted
Release Notes:
- N/A
In support of work on
https://github.com/zed-industries/zed/tree/new-ui-for-edit-prediction-with-lsp-completions,
where we want to be able to extract a range of the buffer as
`HighlightedText`.
Release Notes:
- N/A
This PR adds a new `wait_for_flag_or_timeout` method to the
`FeatureFlagAppExt` trait.
This encapsulates the somewhat gnarly code for using `wait_for_flag`
with a timeout.
A side benefit of this is that the tasks waiting on the feature flags
run in parallel, so in the case where the feature flags do not resolve
we don't end up having to wait on consecutive timeouts. This should help
a bit with https://github.com/zed-industries/zed/issues/23922.
Release Notes:
- N/A
Marshall Bowers
created
3af37dd
lmstudio: Support missing quantization in model metadata (#24054)
Click to expand commit body
- Closes https://github.com/zed-industries/zed/issues/23764
Certain models do not include `quantization` parameter from lm studio rest API.
Forgot to run default.json through prettier in #24051. Oops.
Peter Tripp
created
1e96663
assistant_context_editor: Don't block `ContextStore` initialization on reloading contexts (#24052)
Click to expand commit body
This PR changes the `ContextStore` constructor to not block on reloading
the contexts before we finish initializing it.
I noticed that the Assistant panel was taking a long time to show up in
the status bar, and upon further investigation uncovered that with a
large number of contexts (I have ~320) it takes a long time to load them
all.
Release Notes:
- N/A
Marshall Bowers
created
de3702b
Improve inline_completions.disabled_globs in default.json (#24051)
Click to expand commit body
Make sure that inline completions (Copilot, etc) are disabled for more secret globs (matches `private_files`)
e42b6e6
Do less git metadata rescans on FS events (#24034)
Click to expand commit body
A preparation for collaborative commit message editing.
Before, almost any `.git`-contained file FS update, except
`.git/fsmonitor--daemon/cookies/**` caused git metadata rescan.
This included `index.lock` that was created after any git operation,
e.g. `git status`, which was unnecessary.
Collaborative editing aims to share `.git/COMMIT_EDITMSG` between
multiple users, so there are potentially multiple users editing the file
and causing excessive events.
The change makes worktree to ignore .git/COMMIT_EDITMSG`,
`.git/index.lock` and `.git/fsmonitor--daemon/**` paths and adjusts the
logic to be more extensible: there's much more files Zed can ignore and
still have its git metadata up to date.
Release Notes:
- N/A