repl: Enable jupyter by default, allow disabling (#14985)

Enables the jupyter feature by default, which is shown only when we have
a kernelspec or know that we (can) support it well (Python,
Deno/TypeScript).

Release Notes:

- N/A

---------

Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
This commit is contained in:
Kyle Kelley 2024-07-22 14:30:21 -07:00 committed by GitHub
parent a9397834eb
commit 01392c1329
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 29 additions and 44 deletions

View file

@ -1953,7 +1953,7 @@ impl Editor {
EditorMode::Full => "full",
};
if EditorSettings::get_global(cx).jupyter.enabled {
if EditorSettings::jupyter_enabled(cx) {
key_context.add("jupyter");
}

View file

@ -28,7 +28,6 @@ pub struct EditorSettings {
pub search_wrap: bool,
pub auto_signature_help: bool,
pub show_signature_help_after_edits: bool,
#[serde(default)]
pub jupyter: Jupyter,
}
@ -69,15 +68,23 @@ pub enum DoubleClickInMultibuffer {
Open,
}
#[derive(Default, Copy, Clone, Debug, Serialize, Deserialize, PartialEq, Eq, JsonSchema)]
#[serde(rename_all = "snake_case")]
#[derive(Debug, Clone, Deserialize)]
pub struct Jupyter {
/// Whether the Jupyter feature is enabled.
///
/// Default: `false`
/// Default: true
pub enabled: bool,
}
#[derive(Default, Copy, Clone, Debug, Serialize, Deserialize, PartialEq, Eq, JsonSchema)]
#[serde(rename_all = "snake_case")]
pub struct JupyterContent {
/// Whether the Jupyter feature is enabled.
///
/// Default: true
pub enabled: Option<bool>,
}
#[derive(Copy, Clone, Debug, Serialize, Deserialize, JsonSchema, PartialEq, Eq)]
pub struct Toolbar {
pub breadcrumbs: bool,
@ -247,7 +254,7 @@ pub struct EditorSettingsContent {
pub show_signature_help_after_edits: Option<bool>,
/// Jupyter REPL settings.
pub jupyter: Option<Jupyter>,
pub jupyter: Option<JupyterContent>,
}
// Toolbar related settings
@ -318,6 +325,12 @@ pub struct GutterContent {
pub folds: Option<bool>,
}
impl EditorSettings {
pub fn jupyter_enabled(cx: &AppContext) -> bool {
EditorSettings::get_global(cx).jupyter.enabled
}
}
impl Settings for EditorSettings {
const KEY: Option<&'static str> = None;