As @maan2003 noted in #18473, we should warn the user if direnv call
fails
Release Notes:
- Show a notice in the activity indicator if an error occurs while
loading the shell environment
This PR drops the `cache_creation_input_tokens_this_month ` and
`cache_read_input_tokens_this_month ` columns from the `usages` table in
the LLM database.
We mistakenly added these in #18834, but these aren't necessary due to
the structure of the `usages` table. We weren't actually using these
columns anywhere.
Release Notes:
- N/A
This PR extends the LLM usage tracking to support tracking usage for
cache writes and reads for Anthropic models.
Release Notes:
- N/A
---------
Co-authored-by: Antonio Scandurra <me@as-cii.com>
Co-authored-by: Antonio <antonio@zed.dev>
Previously, the connection process would be cancelled after 10 seconds,
even if the connection was established successfully but the user was
still typing in a password.
We know recognize when the user is prompted for a password, and cancel
the timeout task.
Co-Authored-by: Thorsten <thorsten@zed.dev>
Release Notes:
- N/A
---------
Co-authored-by: Thorsten <thorsten@zed.dev>
To detect connection timeouts we ping the remote server every X seconds
and attempt to reconnect if the server failed to respond.
Next up is showing some feedback in the UI to make this visible to the
user, and stop reconnecting after X amount of retries.
Release Notes:
- N/A
---------
Co-authored-by: Thorsten <thorsten@zed.dev>
Closes#18261
This makes sure that we find external formatters in the project
environment.
TODO:
- [x] Use a different type for the triplet of `(buffer_handle,
buffer_path, buffer_env)`. Something like `FormattableBuffer`.
- [x] Test this!!
Release Notes:
- Fixed external formatters not being found, even when they were
available in the `$PATH` of a project.
---------
Co-authored-by: Bennet <bennet@zed.dev>
Similar to https://github.com/zed-industries/zed/pull/18690 &
https://github.com/zed-industries/zed/pull/18695, this PR enables
required docs for `ui` and does some cleanup.
Changes:
- Enables the `deny(missing_docs)` crate-wide.
- Adds `allow(missing_docs)` on many modules until folks pick them up to
document them
- Documents some modules (all in `ui/src/styles`)
- Crate root-level organization: Traits move to `traits`, other misc
organization
- Cleaned out a bunch of unused code.
Note: I'd like to remove `utils/format_distance` but the assistant panel
uses it. To move it over to use the `time_format` crate we may need to
update it to use `time` instead of `chrono`. Needs more investigation.
Release Notes:
- N/A
This PR qualifies a call to `RangeExt::overlaps` to avoid some confusion
in rust-analyzer not being able to distinguish between
`RangeExt::overlaps` and `AnchorRangeExt::overlaps` and producing
phantom diagnostics.
We may also want to consider renaming the method on `AnchorRangeExt` to
disambiguate them.
Release Notes:
- N/A
This PR adds a bit more metadata for assistant logging.
Release Notes:
- Assistant: Added `language_name` and `model_provider` fields to
telemetry events.
---------
Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
Co-authored-by: Max <max@zed.dev>
This PR makes the `report_assistant_event` method take an
`AssistantEvent` struct instead of all of the struct fields as
individual parameters.
Release Notes:
- N/A
Release Notes:
- Added Runnable for C main function
This tags can then be used in tasks, for example:
```json
[
{
"label": "Run ${ZED_STEM}",
"command": "gcc",
"args": [
"$ZED_FILE",
"-o",
"${ZED_DIRNAME}/${ZED_STEM}.out",
"&&",
"${ZED_DIRNAME}/${ZED_STEM}.out"
],
"tags": ["c-main"]
}
]
```
Release Notes:
- Fixed tab switcher icons not respecting the `tabs.git_status` setting.
Fixes an issue mentioned in
https://github.com/zed-industries/zed/pull/17115#issuecomment-2378966170
- file icons in the tab switcher weren't colored according to git
status, even if `tabs.git_status` was set to true.
I used a similar approach I saw in other places of the project to get
the project entry and its git status, but maybe we could move the
coloring logic entirely to `tab_icon()`? Wouldn't this break anything?
---------
Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
Taffy maintains a mapping of NodeId <-> Context anyways (and does the
lookup), so it's redundant for us to store it separately. Tl;dr: we get
rid of one map and one map lookup per layout request.
Release Notes:
- N/A
Again. https://github.com/zed-industries/zed/pull/4070
Let's see how it goes this time around. The only thing that might've
been related to that revert on our Slack was about crashing in collab
panel.
Release Notes:
- N/A
This PR streamlines the branch creation from the branch selector when
searching for a branch that does not exist.
The branch selector will show the available branches, as it does today:
<img width="576" alt="Screenshot 2024-10-03 at 4 01 25 PM"
src="https://github.com/user-attachments/assets/e1904f5b-4aad-4f88-901d-ab9422ec18bb">
When entering the name of a branch that does not exist, the picker will
be populated with an entry to create a new branch:
<img width="570" alt="Screenshot 2024-10-03 at 4 01 37 PM"
src="https://github.com/user-attachments/assets/07f8d12c-9422-4fd8-a6dc-ae450e297a13">
Selecting that entry will create the branch and switch to it.
Release Notes:
- Streamlined creating a new branch from the branch selector.
This PR updates the color swatches added in #18665 to use a predefined
`rounding` value instead of a literal value.
The underlying values are the same, but we don't want to diverge from
our design system.
Release Notes:
- N/A
Closes#11991
Release Notes:
- Added support for color swatches for language server completions.
<img width="502" alt="Screenshot 2024-10-02 at 19 02 22"
src="https://github.com/user-attachments/assets/57e85492-3760-461a-9b17-a846dc40576b">
<img width="534" alt="Screenshot 2024-10-02 at 19 02 48"
src="https://github.com/user-attachments/assets/713ac41c-16f0-4ad3-9103-d2c9b3fa8b2e">
This implementation is mostly a port of the VSCode version of the
ColorExtractor. It seems reasonable the we should support _at least_
what VSCode does for detecting color swatches from LSP completions.
This implementation could definitely be better perf-wise by writing a
dedicated color parser. I also think it would be neat if, in the future,
Zed handled _more_ color formats — especially wide-gamut colors.
There are a few differences to the regexes in the VSCode implementation
but mainly so simplify the implementation :
- The hex vs rgb/hsl regexes were split into two parts
- The rgb/hsl regexes allow 3 or 4 color components whether hsla/rgba or
not and the parsing implementation accepts/rejects colors as needed
---------
Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
This PR extracts the Protocol Buffers support into an extension.
Release Notes:
- Removed built-in support for Protocol Buffers, in favor of making it
available as an extension. The Protocol Buffers extension will be
suggested for download when you open a `.proto` file.
This PR does some spring cleaning on the `theme` crate:
- Removed two unused stories and the story dep
- Removed the `one` theme family (from the `theme` crate, not the app),
this is now `zed_default_themes`.
- This will hopefully remove some confusion caused by this theme we
started in rust but didn't end up using
- Removed `theme::prelude` (it just re-exported scale colors, which we
don't use outside `theme`)
- Removed completely unused `zed_pro` themes (we started on these during
the gpui2 port and didn't finish them.)
Release Notes:
- N/A
---------
Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
This PR enables required documentation for the `theme` crate starts on
documenting it.
The end goal is to have all meaningful documentation in the crate filled
out – However I'm not sure that just adding `#![deny(missing_docs)]` to
the whole crate is the right approach.
I don't know that having 200+ "The color of the _ color" field docs is
useful however–In the short term I've excluded some of the modules that
contain structs with a ton of fields (`colors, `status`, etc.) until we
decide what the right solution here is.
Next steps are to clean up the crate, removing unused modules or those
with low usage in favor of other approaches.
Changes in this PR:
- Enable the `deny(missing_docs)` lint for the `theme` crate
- Start documenting a subset of the crate.
- Enable `#![allow(missing_docs)]` for some modules.
Release Notes:
- N/A

The indicator turns yellow when ssh client is trying to reconnect. Note
that the state tracking is probably not ideal (we'll see how it pans out
once we start dog-fooding), but at the very least "green=good" should be
a decent mental model for now.
Release Notes:
- N/A
This PR reverts the changes to the Clickhouse event rows that were
included in https://github.com/zed-industries/zed/pull/18414.
The changes don't seem to be correct, as they make the row structs
differ from the underlying table schema.
Release Notes:
- N/A
REplace isahc with ureq everywhere gpui is used.
This should allow us to make http requests without libssl; and avoid a
long-tail of panics caused by ishac.
Release Notes:
- (potentially breaking change) updated our http client
---------
Co-authored-by: Mikayla <mikayla@zed.dev>
This PR does not change how things work for settings, but lays the
ground work for the future functionality.
After this change, Zed is prepared to sync more than just
`settings.json` files from local worktree and user config.
* ssh tasks
Part of this work is to streamline the task sync mechanism.
Instead of having an extra set of requests to fetch the task contents
from the server (as remote-via-collab does now and does not cover all
sync cases), we want to reuse the existing mechanism for synchronizing
user and local settings.
* editorconfig
Part of the task is to sync .editorconfig file changes to everyone which
involves sending and storing those configs.
Both ssh (and remove-over-collab) .zed/tasks.json and .editorconfig
files behave similar to .zed/settings.json local files: they belong to a
certain path in a certain worktree; may update over time, changing Zed's
functionality; can be merged hierarchically.
Settings sync follows the same "config file changed -> send to watchers
-> parse and merge locally and on watchers" path that's needed for both
new kinds of files, ergo the messaging layer is extended to send more
types of settings for future watch & parse and merge impls to follow.
Release Notes:
- N/A
This PR fixes an issue where the proposed changes editor would not have
any syntax highlighting until a modification was made.
When creating the branch buffer we reparse the buffer to rebuild the
syntax map.
Release Notes:
- N/A