Extract InlineCompletionProvider to its own crate (#20935)

This PR extracts the `InlineCompletionProvider` trait and its related
types out of `editor` and into a new `inline_completion` crate.

By doing so we're able to remove a dependency on `editor` from the
`copilot` and `supermaven` crates.

We did have to move `editor::Direction` into the `inline_completion`
crate, as it is referenced by the `InlineCompletionProvider`. This
should find a better home, at some point.

Release Notes:

- N/A
This commit is contained in:
Marshall Bowers 2024-11-20 16:51:13 -05:00 committed by GitHub
parent e076f55d78
commit 29c9f0f6a1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
11 changed files with 56 additions and 18 deletions

View file

@ -16,17 +16,17 @@ doctest = false
anyhow.workspace = true
client.workspace = true
collections.workspace = true
editor.workspace = true
gpui.workspace = true
futures.workspace = true
gpui.workspace = true
inline_completion.workspace = true
language.workspace = true
log.workspace = true
postage.workspace = true
serde.workspace = true
serde_json.workspace = true
settings.workspace = true
supermaven_api.workspace = true
smol.workspace = true
supermaven_api.workspace = true
text.workspace = true
ui.workspace = true
unicode-segmentation.workspace = true

View file

@ -1,9 +1,9 @@
use crate::{Supermaven, SupermavenCompletionStateId};
use anyhow::Result;
use client::telemetry::Telemetry;
use editor::{CompletionProposal, Direction, InlayProposal, InlineCompletionProvider};
use futures::StreamExt as _;
use gpui::{AppContext, EntityId, Model, ModelContext, Task};
use inline_completion::{CompletionProposal, Direction, InlayProposal, InlineCompletionProvider};
use language::{language_settings::all_language_settings, Anchor, Buffer, BufferSnapshot};
use std::{
ops::{AddAssign, Range},