This commit also changes the way search queries are built (we do not bail early anymore if include/exclude editor queries are malformed) to propagate error status of the panel.
Release Notes:
- N/A
Getting some scaffold docs in place and making some naming adjustments
to improve consistency with Rust APIs and clarity.
- Render::Element -> Render::Output, and Render::Output is now only
required to be IntoElement instead of Element so we can return
components.
- RenderOnce::Element -> RenderOnce::Output
- Element::layout -> Render::request_layout - Clarify that this doesn't
actually *perform* layout, but simply requests
Release Notes:
- N/A
Previously, we changed borders to be drawn after content, so they are no longer
part of the same quads as the background. In our change, we gave the background
quad a transparent black border and the border quads transparent black
backgrounds. However, this caused the other channels to blend toward that black
color before becoming fully transparent, causing them to become darker.
In this PR, I source the "placeholder" color by duplicating the values for
the other channels and only adjust the alpha down to zero.
* `EmbeddingProvider`, `NodeRuntime`, `Fs`,
`live_kit_server::api::Client` produce messages similar to
```
error[E0038]: the trait `EmbeddingProvider` cannot be made into an object
--> crates/semantic_index/src/semantic_index_tests.rs:1096:51
|
1096 | let mut retriever = CodeContextRetriever::new(embedding_provider);
| ^^^^^^^^^^^^^^^^^^ `EmbeddingProvider` cannot be made into an object
|
note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit <https://doc.rust-lang.org/reference/items/traits.html#object-safety>
--> /Users/someonetoignore/work/zed/zed/crates/ai/src/embedding.rs:73:14
|
73 | async fn embed_batch(&self, spans: Vec<String>) -> Result<Vec<Embedding>>;
| ^^^^^^^^^^^ the trait cannot be made into an object because method `embed_batch` is `async`
= help: the following types implement the trait, consider defining an enum where each variant holds one of these types, implementing `EmbeddingProvider` for this new enum and using it instead:
ai::providers::open_ai::OpenAIEmbeddingProvider
ai::test::FakeEmbeddingProvider
```
* `LspAdapter` produces something even more obscure:
```
error[E0391]: cycle detected when checking effective visibilities
|
note: ...which requires computing type of `<impl at crates/language2/src/language2.rs:122:1: 122:22>:🆕:{opaque#0}`...
--> crates/language2/src/language2.rs:123:5
|
123 | pub async fn new(adapter: Arc<dyn LspAdapter>) -> Arc<Self> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: ...which requires type-checking `<impl at crates/language2/src/language2.rs:122:1: 122:22>::new`...
--> crates/language2/src/language2.rs:123:5
|
123 | pub async fn new(adapter: Arc<dyn LspAdapter>) -> Arc<Self> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: ...which again requires checking effective visibilities, completing the cycle
note: cycle used when checking that `CachedLspAdapter` is well-formed
--> crates/language2/src/language2.rs:111:1
|
111 | pub struct CachedLspAdapter {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: see https://rustc-dev-guide.rust-lang.org/overview.html#queries and https://rustc-dev-guide.rust-lang.org/query.html for more information
```
Release Notes:
- N/A
**This PR also bumps wasmtime version from 0.38 to 2.0 as 0.38 does not
build with Rust 1.75**. I did not test the plugin runtime as (AFAIK) we
intend to deprecate it; also, wasmtime's most recent version is 16.0, so
it'd make sense to bump the version at some point anyways. I did not
bump the version to 16.0 straight away as that'd require code changes in
`plugin_runtime`.
Release Notes:
- N/A
This PR is just a quick house-cleaning PR that I've been meaning to do
for awhile. In the past, `installation_id` was called `device_id`. But
this name never reflected what it actually was - so we renamed it to
`installation_id`, but we kept the name as `device_id` in the
`kv_store`. I'm wanting to use the `device_id` key in the future, so to
keep things clearly labeled, I'm doing the key rename now.
Release Notes:
- N/A