Add experimental LSP-based context retrieval system for edit prediction (#44036)
To do * [x] Default to no context retrieval. Allow opting in to LSP-based retrieval via a setting (for users in `zeta2` feature flag) * [x] Feed this context to models when enabled * [x] Make the zeta2 context view work well with LSP retrieval * [x] Add a UI for the setting (for feature-flagged users) * [x] Ensure Zeta CLI `context` command is usable --- * [ ] Filter out LSP definitions that are too large / entire files (e.g. modules) * [ ] Introduce timeouts * [ ] Test with other LSPs * [ ] Figure out hangs Release Notes: - N/A --------- Co-authored-by: Ben Kunkle <ben@zed.dev> Co-authored-by: Agus Zubiaga <agus@zed.dev>
This commit is contained in:
co-authored by
Ben Kunkle
Agus Zubiaga
parent
cd8679e81a
commit
76167109db
@@ -373,6 +373,8 @@ impl InlayHintSettings {
|
||||
pub struct EditPredictionSettings {
|
||||
/// The provider that supplies edit predictions.
|
||||
pub provider: settings::EditPredictionProvider,
|
||||
/// Whether to use the experimental edit prediction context retrieval system.
|
||||
pub use_context: bool,
|
||||
/// A list of globs representing files that edit predictions should be disabled for.
|
||||
/// This list adds to a pre-existing, sensible default set of globs.
|
||||
/// Any additional ones you add are combined with them.
|
||||
@@ -622,6 +624,11 @@ impl settings::Settings for AllLanguageSettings {
|
||||
.features
|
||||
.as_ref()
|
||||
.and_then(|f| f.edit_prediction_provider);
|
||||
let use_edit_prediction_context = all_languages
|
||||
.features
|
||||
.as_ref()
|
||||
.and_then(|f| f.experimental_edit_prediction_context_retrieval)
|
||||
.unwrap_or_default();
|
||||
|
||||
let edit_predictions = all_languages.edit_predictions.clone().unwrap();
|
||||
let edit_predictions_mode = edit_predictions.mode.unwrap();
|
||||
@@ -668,6 +675,7 @@ impl settings::Settings for AllLanguageSettings {
|
||||
} else {
|
||||
EditPredictionProvider::None
|
||||
},
|
||||
use_context: use_edit_prediction_context,
|
||||
disabled_globs: disabled_globs
|
||||
.iter()
|
||||
.filter_map(|g| {
|
||||
|
||||
Reference in New Issue
Block a user