Eager / subtle now working

This commit is contained in:
Oliver Azevedo Barnes 2025-07-09 19:51:16 +01:00
parent 9c8a75d3df
commit 2942f4aace
No known key found for this signature in database
4 changed files with 121 additions and 16 deletions

View file

@ -519,7 +519,10 @@ impl InlineCompletionButton {
let subtle_mode = matches!(current_mode, EditPredictionsMode::Subtle);
let eager_mode = matches!(current_mode, EditPredictionsMode::Eager);
if matches!(provider, EditPredictionProvider::Zed) {
if matches!(
provider,
EditPredictionProvider::Zed | EditPredictionProvider::Ollama
) {
menu = menu
.separator()
.header("Display Modes")
@ -1472,6 +1475,63 @@ mod tests {
});
}
#[gpui::test]
async fn test_ollama_eager_subtle_options_visibility(cx: &mut TestAppContext) {
cx.update(|cx| {
let store = SettingsStore::test(cx);
cx.set_global(store);
AllLanguageModelSettings::register(cx);
AllLanguageSettings::register(cx);
language_model::LanguageModelRegistry::test(cx);
// Test that eager/subtle options are available for Ollama provider
// Verify that when provider is Ollama, the eager/subtle logic should be triggered
// This tests the condition: matches!(provider, EditPredictionProvider::Zed | EditPredictionProvider::Ollama)
assert!(matches!(
EditPredictionProvider::Ollama,
EditPredictionProvider::Zed | EditPredictionProvider::Ollama
));
// Verify that when provider is NOT Zed or Ollama, the eager/subtle logic should NOT be triggered
assert!(!matches!(
EditPredictionProvider::Copilot,
EditPredictionProvider::Zed | EditPredictionProvider::Ollama
));
assert!(!matches!(
EditPredictionProvider::Supermaven,
EditPredictionProvider::Zed | EditPredictionProvider::Ollama
));
});
}
#[gpui::test]
async fn test_ollama_edit_predictions_mode_setting(cx: &mut TestAppContext) {
cx.update(|cx| {
let store = SettingsStore::test(cx);
cx.set_global(store);
AllLanguageModelSettings::register(cx);
AllLanguageSettings::register(cx);
language_model::LanguageModelRegistry::test(cx);
// Test that edit predictions mode setting is read correctly
let settings = AllLanguageSettings::get_global(cx);
// Default mode should be Eager
assert_eq!(settings.edit_predictions_mode(), EditPredictionsMode::Eager);
// Test that the setting affects the preview_requires_modifier flag
let preview_requires_modifier_eager =
settings.edit_predictions_mode() == EditPredictionsMode::Subtle;
assert!(!preview_requires_modifier_eager);
// Simulate changing to subtle mode by checking the condition
let subtle_mode_check = EditPredictionsMode::Subtle == EditPredictionsMode::Subtle;
assert!(subtle_mode_check);
});
}
#[gpui::test]
async fn test_ollama_model_switching_logic(cx: &mut TestAppContext) {
let _fs: Arc<dyn Fs> = FakeFs::new(cx.executor());