Fix edit prediction disablement with "disable_ai": true
setting (#35513)
Even after #35327 edit predictions were still being queried and shown after setting `"disable_ai": true` Also moves `DisableAiSettings` to the `project` crate so that it gets included in tests via existing use of `Project::init_settings(cx)`. Release Notes: - Fixed `"disable_ai": true` setting disabling edit predictions.
This commit is contained in:
parent
d577ef52cb
commit
899bc8a8fd
17 changed files with 60 additions and 54 deletions
1
Cargo.lock
generated
1
Cargo.lock
generated
|
@ -6315,7 +6315,6 @@ dependencies = [
|
||||||
"buffer_diff",
|
"buffer_diff",
|
||||||
"call",
|
"call",
|
||||||
"chrono",
|
"chrono",
|
||||||
"client",
|
|
||||||
"cloud_llm_client",
|
"cloud_llm_client",
|
||||||
"collections",
|
"collections",
|
||||||
"command_palette_hooks",
|
"command_palette_hooks",
|
||||||
|
|
|
@ -43,7 +43,7 @@ use anyhow::{Result, anyhow};
|
||||||
use assistant_context::{AssistantContext, ContextEvent, ContextSummary};
|
use assistant_context::{AssistantContext, ContextEvent, ContextSummary};
|
||||||
use assistant_slash_command::SlashCommandWorkingSet;
|
use assistant_slash_command::SlashCommandWorkingSet;
|
||||||
use assistant_tool::ToolWorkingSet;
|
use assistant_tool::ToolWorkingSet;
|
||||||
use client::{DisableAiSettings, UserStore, zed_urls};
|
use client::{UserStore, zed_urls};
|
||||||
use cloud_llm_client::{CompletionIntent, Plan, UsageLimit};
|
use cloud_llm_client::{CompletionIntent, Plan, UsageLimit};
|
||||||
use editor::{Anchor, AnchorRangeExt as _, Editor, EditorEvent, MultiBuffer};
|
use editor::{Anchor, AnchorRangeExt as _, Editor, EditorEvent, MultiBuffer};
|
||||||
use feature_flags::{self, FeatureFlagAppExt};
|
use feature_flags::{self, FeatureFlagAppExt};
|
||||||
|
@ -58,7 +58,7 @@ use language::LanguageRegistry;
|
||||||
use language_model::{
|
use language_model::{
|
||||||
ConfigurationError, ConfiguredModel, LanguageModelProviderTosView, LanguageModelRegistry,
|
ConfigurationError, ConfiguredModel, LanguageModelProviderTosView, LanguageModelRegistry,
|
||||||
};
|
};
|
||||||
use project::{Project, ProjectPath, Worktree};
|
use project::{DisableAiSettings, Project, ProjectPath, Worktree};
|
||||||
use prompt_store::{PromptBuilder, PromptStore, UserPromptId};
|
use prompt_store::{PromptBuilder, PromptStore, UserPromptId};
|
||||||
use rules_library::{RulesLibrary, open_rules_library};
|
use rules_library::{RulesLibrary, open_rules_library};
|
||||||
use search::{BufferSearchBar, buffer_search};
|
use search::{BufferSearchBar, buffer_search};
|
||||||
|
|
|
@ -31,7 +31,7 @@ use std::sync::Arc;
|
||||||
use agent::{Thread, ThreadId};
|
use agent::{Thread, ThreadId};
|
||||||
use agent_settings::{AgentProfileId, AgentSettings, LanguageModelSelection};
|
use agent_settings::{AgentProfileId, AgentSettings, LanguageModelSelection};
|
||||||
use assistant_slash_command::SlashCommandRegistry;
|
use assistant_slash_command::SlashCommandRegistry;
|
||||||
use client::{Client, DisableAiSettings};
|
use client::Client;
|
||||||
use command_palette_hooks::CommandPaletteFilter;
|
use command_palette_hooks::CommandPaletteFilter;
|
||||||
use feature_flags::FeatureFlagAppExt as _;
|
use feature_flags::FeatureFlagAppExt as _;
|
||||||
use fs::Fs;
|
use fs::Fs;
|
||||||
|
@ -40,6 +40,7 @@ use language::LanguageRegistry;
|
||||||
use language_model::{
|
use language_model::{
|
||||||
ConfiguredModel, LanguageModel, LanguageModelId, LanguageModelProviderId, LanguageModelRegistry,
|
ConfiguredModel, LanguageModel, LanguageModelId, LanguageModelProviderId, LanguageModelRegistry,
|
||||||
};
|
};
|
||||||
|
use project::DisableAiSettings;
|
||||||
use prompt_store::PromptBuilder;
|
use prompt_store::PromptBuilder;
|
||||||
use schemars::JsonSchema;
|
use schemars::JsonSchema;
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
|
|
|
@ -16,7 +16,7 @@ use agent::{
|
||||||
};
|
};
|
||||||
use agent_settings::AgentSettings;
|
use agent_settings::AgentSettings;
|
||||||
use anyhow::{Context as _, Result};
|
use anyhow::{Context as _, Result};
|
||||||
use client::{DisableAiSettings, telemetry::Telemetry};
|
use client::telemetry::Telemetry;
|
||||||
use collections::{HashMap, HashSet, VecDeque, hash_map};
|
use collections::{HashMap, HashSet, VecDeque, hash_map};
|
||||||
use editor::SelectionEffects;
|
use editor::SelectionEffects;
|
||||||
use editor::{
|
use editor::{
|
||||||
|
@ -39,7 +39,7 @@ use language_model::{
|
||||||
};
|
};
|
||||||
use multi_buffer::MultiBufferRow;
|
use multi_buffer::MultiBufferRow;
|
||||||
use parking_lot::Mutex;
|
use parking_lot::Mutex;
|
||||||
use project::{CodeAction, LspAction, Project, ProjectTransaction};
|
use project::{CodeAction, DisableAiSettings, LspAction, Project, ProjectTransaction};
|
||||||
use prompt_store::{PromptBuilder, PromptStore};
|
use prompt_store::{PromptBuilder, PromptStore};
|
||||||
use settings::{Settings, SettingsStore};
|
use settings::{Settings, SettingsStore};
|
||||||
use telemetry_events::{AssistantEventData, AssistantKind, AssistantPhase};
|
use telemetry_events::{AssistantEventData, AssistantKind, AssistantPhase};
|
||||||
|
|
|
@ -150,7 +150,6 @@ impl Settings for ProxySettings {
|
||||||
|
|
||||||
pub fn init_settings(cx: &mut App) {
|
pub fn init_settings(cx: &mut App) {
|
||||||
TelemetrySettings::register(cx);
|
TelemetrySettings::register(cx);
|
||||||
DisableAiSettings::register(cx);
|
|
||||||
ClientSettings::register(cx);
|
ClientSettings::register(cx);
|
||||||
ProxySettings::register(cx);
|
ProxySettings::register(cx);
|
||||||
}
|
}
|
||||||
|
@ -539,33 +538,6 @@ impl settings::Settings for TelemetrySettings {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Whether to disable all AI features in Zed.
|
|
||||||
///
|
|
||||||
/// Default: false
|
|
||||||
#[derive(Copy, Clone, Debug)]
|
|
||||||
pub struct DisableAiSettings {
|
|
||||||
pub disable_ai: bool,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl settings::Settings for DisableAiSettings {
|
|
||||||
const KEY: Option<&'static str> = Some("disable_ai");
|
|
||||||
|
|
||||||
type FileContent = Option<bool>;
|
|
||||||
|
|
||||||
fn load(sources: SettingsSources<Self::FileContent>, _: &mut App) -> Result<Self> {
|
|
||||||
Ok(Self {
|
|
||||||
disable_ai: sources
|
|
||||||
.user
|
|
||||||
.or(sources.server)
|
|
||||||
.copied()
|
|
||||||
.flatten()
|
|
||||||
.unwrap_or(sources.default.ok_or_else(Self::missing_default)?),
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
fn import_from_vscode(_vscode: &settings::VsCodeSettings, _current: &mut Self::FileContent) {}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl Client {
|
impl Client {
|
||||||
pub fn new(
|
pub fn new(
|
||||||
clock: Arc<dyn SystemClock>,
|
clock: Arc<dyn SystemClock>,
|
||||||
|
|
|
@ -6,7 +6,6 @@ mod sign_in;
|
||||||
use crate::sign_in::initiate_sign_in_within_workspace;
|
use crate::sign_in::initiate_sign_in_within_workspace;
|
||||||
use ::fs::Fs;
|
use ::fs::Fs;
|
||||||
use anyhow::{Context as _, Result, anyhow};
|
use anyhow::{Context as _, Result, anyhow};
|
||||||
use client::DisableAiSettings;
|
|
||||||
use collections::{HashMap, HashSet};
|
use collections::{HashMap, HashSet};
|
||||||
use command_palette_hooks::CommandPaletteFilter;
|
use command_palette_hooks::CommandPaletteFilter;
|
||||||
use futures::{Future, FutureExt, TryFutureExt, channel::oneshot, future::Shared};
|
use futures::{Future, FutureExt, TryFutureExt, channel::oneshot, future::Shared};
|
||||||
|
@ -24,6 +23,7 @@ use language::{
|
||||||
use lsp::{LanguageServer, LanguageServerBinary, LanguageServerId, LanguageServerName};
|
use lsp::{LanguageServer, LanguageServerBinary, LanguageServerId, LanguageServerName};
|
||||||
use node_runtime::NodeRuntime;
|
use node_runtime::NodeRuntime;
|
||||||
use parking_lot::Mutex;
|
use parking_lot::Mutex;
|
||||||
|
use project::DisableAiSettings;
|
||||||
use request::StatusNotification;
|
use request::StatusNotification;
|
||||||
use serde_json::json;
|
use serde_json::json;
|
||||||
use settings::Settings;
|
use settings::Settings;
|
||||||
|
|
|
@ -83,7 +83,7 @@ use aho_corasick::AhoCorasick;
|
||||||
use anyhow::{Context as _, Result, anyhow};
|
use anyhow::{Context as _, Result, anyhow};
|
||||||
use blink_manager::BlinkManager;
|
use blink_manager::BlinkManager;
|
||||||
use buffer_diff::DiffHunkStatus;
|
use buffer_diff::DiffHunkStatus;
|
||||||
use client::{Collaborator, DisableAiSettings, ParticipantIndex};
|
use client::{Collaborator, ParticipantIndex};
|
||||||
use clock::{AGENT_REPLICA_ID, ReplicaId};
|
use clock::{AGENT_REPLICA_ID, ReplicaId};
|
||||||
use code_context_menus::{
|
use code_context_menus::{
|
||||||
AvailableCodeAction, CodeActionContents, CodeActionsItem, CodeActionsMenu, CodeContextMenu,
|
AvailableCodeAction, CodeActionContents, CodeActionsItem, CodeActionsMenu, CodeContextMenu,
|
||||||
|
@ -148,8 +148,8 @@ use parking_lot::Mutex;
|
||||||
use persistence::DB;
|
use persistence::DB;
|
||||||
use project::{
|
use project::{
|
||||||
BreakpointWithPosition, CodeAction, Completion, CompletionIntent, CompletionResponse,
|
BreakpointWithPosition, CodeAction, Completion, CompletionIntent, CompletionResponse,
|
||||||
CompletionSource, DocumentHighlight, InlayHint, Location, LocationLink, PrepareRenameResponse,
|
CompletionSource, DisableAiSettings, DocumentHighlight, InlayHint, Location, LocationLink,
|
||||||
Project, ProjectItem, ProjectPath, ProjectTransaction, TaskSourceKind,
|
PrepareRenameResponse, Project, ProjectItem, ProjectPath, ProjectTransaction, TaskSourceKind,
|
||||||
debugger::breakpoint_store::Breakpoint,
|
debugger::breakpoint_store::Breakpoint,
|
||||||
debugger::{
|
debugger::{
|
||||||
breakpoint_store::{
|
breakpoint_store::{
|
||||||
|
@ -6995,6 +6995,10 @@ impl Editor {
|
||||||
window: &mut Window,
|
window: &mut Window,
|
||||||
cx: &mut Context<Self>,
|
cx: &mut Context<Self>,
|
||||||
) -> Option<()> {
|
) -> Option<()> {
|
||||||
|
if DisableAiSettings::get_global(cx).disable_ai {
|
||||||
|
return None;
|
||||||
|
}
|
||||||
|
|
||||||
let provider = self.edit_prediction_provider()?;
|
let provider = self.edit_prediction_provider()?;
|
||||||
let cursor = self.selections.newest_anchor().head();
|
let cursor = self.selections.newest_anchor().head();
|
||||||
let (buffer, cursor_buffer_position) =
|
let (buffer, cursor_buffer_position) =
|
||||||
|
@ -7052,6 +7056,7 @@ impl Editor {
|
||||||
pub fn update_edit_prediction_settings(&mut self, cx: &mut Context<Self>) {
|
pub fn update_edit_prediction_settings(&mut self, cx: &mut Context<Self>) {
|
||||||
if self.edit_prediction_provider.is_none() || DisableAiSettings::get_global(cx).disable_ai {
|
if self.edit_prediction_provider.is_none() || DisableAiSettings::get_global(cx).disable_ai {
|
||||||
self.edit_prediction_settings = EditPredictionSettings::Disabled;
|
self.edit_prediction_settings = EditPredictionSettings::Disabled;
|
||||||
|
self.discard_inline_completion(false, cx);
|
||||||
} else {
|
} else {
|
||||||
let selection = self.selections.newest_anchor();
|
let selection = self.selections.newest_anchor();
|
||||||
let cursor = selection.head();
|
let cursor = selection.head();
|
||||||
|
@ -7669,6 +7674,10 @@ impl Editor {
|
||||||
_window: &mut Window,
|
_window: &mut Window,
|
||||||
cx: &mut Context<Self>,
|
cx: &mut Context<Self>,
|
||||||
) -> Option<()> {
|
) -> Option<()> {
|
||||||
|
if DisableAiSettings::get_global(cx).disable_ai {
|
||||||
|
return None;
|
||||||
|
}
|
||||||
|
|
||||||
let selection = self.selections.newest_anchor();
|
let selection = self.selections.newest_anchor();
|
||||||
let cursor = selection.head();
|
let cursor = selection.head();
|
||||||
let multibuffer = self.buffer.read(cx).snapshot(cx);
|
let multibuffer = self.buffer.read(cx).snapshot(cx);
|
||||||
|
|
|
@ -23,7 +23,6 @@ askpass.workspace = true
|
||||||
buffer_diff.workspace = true
|
buffer_diff.workspace = true
|
||||||
call.workspace = true
|
call.workspace = true
|
||||||
chrono.workspace = true
|
chrono.workspace = true
|
||||||
client.workspace = true
|
|
||||||
cloud_llm_client.workspace = true
|
cloud_llm_client.workspace = true
|
||||||
collections.workspace = true
|
collections.workspace = true
|
||||||
command_palette_hooks.workspace = true
|
command_palette_hooks.workspace = true
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
use crate::branch_picker::{self, BranchList};
|
use crate::branch_picker::{self, BranchList};
|
||||||
use crate::git_panel::{GitPanel, commit_message_editor};
|
use crate::git_panel::{GitPanel, commit_message_editor};
|
||||||
use client::DisableAiSettings;
|
|
||||||
use git::repository::CommitOptions;
|
use git::repository::CommitOptions;
|
||||||
use git::{Amend, Commit, GenerateCommitMessage, Signoff};
|
use git::{Amend, Commit, GenerateCommitMessage, Signoff};
|
||||||
use panel::{panel_button, panel_editor_style};
|
use panel::{panel_button, panel_editor_style};
|
||||||
|
use project::DisableAiSettings;
|
||||||
use settings::Settings;
|
use settings::Settings;
|
||||||
use ui::{
|
use ui::{
|
||||||
ContextMenu, KeybindingHint, PopoverMenu, PopoverMenuHandle, SplitButton, Tooltip, prelude::*,
|
ContextMenu, KeybindingHint, PopoverMenu, PopoverMenuHandle, SplitButton, Tooltip, prelude::*,
|
||||||
|
|
|
@ -12,7 +12,6 @@ use crate::{
|
||||||
use agent_settings::AgentSettings;
|
use agent_settings::AgentSettings;
|
||||||
use anyhow::Context as _;
|
use anyhow::Context as _;
|
||||||
use askpass::AskPassDelegate;
|
use askpass::AskPassDelegate;
|
||||||
use client::DisableAiSettings;
|
|
||||||
use db::kvp::KEY_VALUE_STORE;
|
use db::kvp::KEY_VALUE_STORE;
|
||||||
use editor::{
|
use editor::{
|
||||||
Editor, EditorElement, EditorMode, EditorSettings, MultiBuffer, ShowScrollbar,
|
Editor, EditorElement, EditorMode, EditorSettings, MultiBuffer, ShowScrollbar,
|
||||||
|
@ -51,10 +50,9 @@ use panel::{
|
||||||
PanelHeader, panel_button, panel_editor_container, panel_editor_style, panel_filled_button,
|
PanelHeader, panel_button, panel_editor_container, panel_editor_style, panel_filled_button,
|
||||||
panel_icon_button,
|
panel_icon_button,
|
||||||
};
|
};
|
||||||
use project::git_store::{RepositoryEvent, RepositoryId};
|
|
||||||
use project::{
|
use project::{
|
||||||
Fs, Project, ProjectPath,
|
DisableAiSettings, Fs, Project, ProjectPath,
|
||||||
git_store::{GitStoreEvent, Repository},
|
git_store::{GitStoreEvent, Repository, RepositoryEvent, RepositoryId},
|
||||||
};
|
};
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use settings::{Settings, SettingsStore};
|
use settings::{Settings, SettingsStore};
|
||||||
|
@ -5115,7 +5113,6 @@ mod tests {
|
||||||
language::init(cx);
|
language::init(cx);
|
||||||
editor::init(cx);
|
editor::init(cx);
|
||||||
Project::init_settings(cx);
|
Project::init_settings(cx);
|
||||||
client::DisableAiSettings::register(cx);
|
|
||||||
crate::init(cx);
|
crate::init(cx);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,6 +25,7 @@ indoc.workspace = true
|
||||||
inline_completion.workspace = true
|
inline_completion.workspace = true
|
||||||
language.workspace = true
|
language.workspace = true
|
||||||
paths.workspace = true
|
paths.workspace = true
|
||||||
|
project.workspace = true
|
||||||
regex.workspace = true
|
regex.workspace = true
|
||||||
settings.workspace = true
|
settings.workspace = true
|
||||||
supermaven.workspace = true
|
supermaven.workspace = true
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
use anyhow::Result;
|
use anyhow::Result;
|
||||||
use client::{DisableAiSettings, UserStore, zed_urls};
|
use client::{UserStore, zed_urls};
|
||||||
use cloud_llm_client::UsageLimit;
|
use cloud_llm_client::UsageLimit;
|
||||||
use copilot::{Copilot, Status};
|
use copilot::{Copilot, Status};
|
||||||
use editor::{
|
use editor::{
|
||||||
|
@ -19,6 +19,7 @@ use language::{
|
||||||
EditPredictionsMode, File, Language,
|
EditPredictionsMode, File, Language,
|
||||||
language_settings::{self, AllLanguageSettings, EditPredictionProvider, all_language_settings},
|
language_settings::{self, AllLanguageSettings, EditPredictionProvider, all_language_settings},
|
||||||
};
|
};
|
||||||
|
use project::DisableAiSettings;
|
||||||
use regex::Regex;
|
use regex::Regex;
|
||||||
use settings::{Settings, SettingsStore, update_settings_file};
|
use settings::{Settings, SettingsStore, update_settings_file};
|
||||||
use std::{
|
use std::{
|
||||||
|
|
|
@ -1,22 +1,20 @@
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
|
|
||||||
use ai_onboarding::{AiUpsellCard, SignInStatus};
|
use ai_onboarding::{AiUpsellCard, SignInStatus};
|
||||||
use client::DisableAiSettings;
|
|
||||||
use fs::Fs;
|
use fs::Fs;
|
||||||
use gpui::{
|
use gpui::{
|
||||||
Action, AnyView, App, DismissEvent, EventEmitter, FocusHandle, Focusable, Window, prelude::*,
|
Action, AnyView, App, DismissEvent, EventEmitter, FocusHandle, Focusable, Window, prelude::*,
|
||||||
};
|
};
|
||||||
use itertools;
|
use itertools;
|
||||||
|
|
||||||
use language_model::{LanguageModelProvider, LanguageModelProviderId, LanguageModelRegistry};
|
use language_model::{LanguageModelProvider, LanguageModelProviderId, LanguageModelRegistry};
|
||||||
|
use project::DisableAiSettings;
|
||||||
use settings::{Settings, update_settings_file};
|
use settings::{Settings, update_settings_file};
|
||||||
use ui::{
|
use ui::{
|
||||||
Badge, ButtonLike, Divider, Modal, ModalFooter, ModalHeader, Section, SwitchField, ToggleState,
|
Badge, ButtonLike, Divider, Modal, ModalFooter, ModalHeader, Section, SwitchField, ToggleState,
|
||||||
prelude::*,
|
prelude::*,
|
||||||
};
|
};
|
||||||
use workspace::ModalView;
|
|
||||||
|
|
||||||
use util::ResultExt;
|
use util::ResultExt;
|
||||||
|
use workspace::ModalView;
|
||||||
use zed_actions::agent::OpenSettings;
|
use zed_actions::agent::OpenSettings;
|
||||||
|
|
||||||
use crate::Onboarding;
|
use crate::Onboarding;
|
||||||
|
|
|
@ -97,7 +97,7 @@ use rpc::{
|
||||||
};
|
};
|
||||||
use search::{SearchInputKind, SearchQuery, SearchResult};
|
use search::{SearchInputKind, SearchQuery, SearchResult};
|
||||||
use search_history::SearchHistory;
|
use search_history::SearchHistory;
|
||||||
use settings::{InvalidSettingsError, Settings, SettingsLocation, SettingsStore};
|
use settings::{InvalidSettingsError, Settings, SettingsLocation, SettingsSources, SettingsStore};
|
||||||
use smol::channel::Receiver;
|
use smol::channel::Receiver;
|
||||||
use snippet::Snippet;
|
use snippet::Snippet;
|
||||||
use snippet_provider::SnippetProvider;
|
use snippet_provider::SnippetProvider;
|
||||||
|
@ -942,10 +942,38 @@ pub enum PulledDiagnostics {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Whether to disable all AI features in Zed.
|
||||||
|
///
|
||||||
|
/// Default: false
|
||||||
|
#[derive(Copy, Clone, Debug)]
|
||||||
|
pub struct DisableAiSettings {
|
||||||
|
pub disable_ai: bool,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl settings::Settings for DisableAiSettings {
|
||||||
|
const KEY: Option<&'static str> = Some("disable_ai");
|
||||||
|
|
||||||
|
type FileContent = Option<bool>;
|
||||||
|
|
||||||
|
fn load(sources: SettingsSources<Self::FileContent>, _: &mut App) -> Result<Self> {
|
||||||
|
Ok(Self {
|
||||||
|
disable_ai: sources
|
||||||
|
.user
|
||||||
|
.or(sources.server)
|
||||||
|
.copied()
|
||||||
|
.flatten()
|
||||||
|
.unwrap_or(sources.default.ok_or_else(Self::missing_default)?),
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
fn import_from_vscode(_vscode: &settings::VsCodeSettings, _current: &mut Self::FileContent) {}
|
||||||
|
}
|
||||||
|
|
||||||
impl Project {
|
impl Project {
|
||||||
pub fn init_settings(cx: &mut App) {
|
pub fn init_settings(cx: &mut App) {
|
||||||
WorktreeSettings::register(cx);
|
WorktreeSettings::register(cx);
|
||||||
ProjectSettings::register(cx);
|
ProjectSettings::register(cx);
|
||||||
|
DisableAiSettings::register(cx);
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn init(client: &Arc<Client>, cx: &mut App) {
|
pub fn init(client: &Arc<Client>, cx: &mut App) {
|
||||||
|
|
|
@ -1,10 +1,11 @@
|
||||||
use client::{DisableAiSettings, TelemetrySettings, telemetry::Telemetry};
|
use client::{TelemetrySettings, telemetry::Telemetry};
|
||||||
use db::kvp::KEY_VALUE_STORE;
|
use db::kvp::KEY_VALUE_STORE;
|
||||||
use gpui::{
|
use gpui::{
|
||||||
Action, App, Context, Entity, EventEmitter, FocusHandle, Focusable, InteractiveElement,
|
Action, App, Context, Entity, EventEmitter, FocusHandle, Focusable, InteractiveElement,
|
||||||
ParentElement, Render, Styled, Subscription, Task, WeakEntity, Window, actions, svg,
|
ParentElement, Render, Styled, Subscription, Task, WeakEntity, Window, actions, svg,
|
||||||
};
|
};
|
||||||
use language::language_settings::{EditPredictionProvider, all_language_settings};
|
use language::language_settings::{EditPredictionProvider, all_language_settings};
|
||||||
|
use project::DisableAiSettings;
|
||||||
use settings::{Settings, SettingsStore};
|
use settings::{Settings, SettingsStore};
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
use ui::{CheckboxWithLabel, ElevationIndex, Tooltip, prelude::*};
|
use ui::{CheckboxWithLabel, ElevationIndex, Tooltip, prelude::*};
|
||||||
|
|
|
@ -2,7 +2,6 @@ mod preview;
|
||||||
mod repl_menu;
|
mod repl_menu;
|
||||||
|
|
||||||
use agent_settings::AgentSettings;
|
use agent_settings::AgentSettings;
|
||||||
use client::DisableAiSettings;
|
|
||||||
use editor::actions::{
|
use editor::actions::{
|
||||||
AddSelectionAbove, AddSelectionBelow, CodeActionSource, DuplicateLineDown, GoToDiagnostic,
|
AddSelectionAbove, AddSelectionBelow, CodeActionSource, DuplicateLineDown, GoToDiagnostic,
|
||||||
GoToHunk, GoToPreviousDiagnostic, GoToPreviousHunk, MoveLineDown, MoveLineUp, SelectAll,
|
GoToHunk, GoToPreviousDiagnostic, GoToPreviousHunk, MoveLineDown, MoveLineUp, SelectAll,
|
||||||
|
@ -16,6 +15,7 @@ use gpui::{
|
||||||
FocusHandle, Focusable, InteractiveElement, ParentElement, Render, Styled, Subscription,
|
FocusHandle, Focusable, InteractiveElement, ParentElement, Render, Styled, Subscription,
|
||||||
WeakEntity, Window, anchored, deferred, point,
|
WeakEntity, Window, anchored, deferred, point,
|
||||||
};
|
};
|
||||||
|
use project::DisableAiSettings;
|
||||||
use project::project_settings::DiagnosticSeverity;
|
use project::project_settings::DiagnosticSeverity;
|
||||||
use search::{BufferSearchBar, buffer_search};
|
use search::{BufferSearchBar, buffer_search};
|
||||||
use settings::{Settings, SettingsStore};
|
use settings::{Settings, SettingsStore};
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
use std::any::{Any, TypeId};
|
use std::any::{Any, TypeId};
|
||||||
|
|
||||||
use client::DisableAiSettings;
|
|
||||||
use command_palette_hooks::CommandPaletteFilter;
|
use command_palette_hooks::CommandPaletteFilter;
|
||||||
use feature_flags::{FeatureFlagAppExt as _, PredictEditsRateCompletionsFeatureFlag};
|
use feature_flags::{FeatureFlagAppExt as _, PredictEditsRateCompletionsFeatureFlag};
|
||||||
use gpui::actions;
|
use gpui::actions;
|
||||||
use language::language_settings::{AllLanguageSettings, EditPredictionProvider};
|
use language::language_settings::{AllLanguageSettings, EditPredictionProvider};
|
||||||
|
use project::DisableAiSettings;
|
||||||
use settings::{Settings, SettingsStore, update_settings_file};
|
use settings::{Settings, SettingsStore, update_settings_file};
|
||||||
use ui::App;
|
use ui::App;
|
||||||
use workspace::Workspace;
|
use workspace::Workspace;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue