MCPcopy Create free account
hub / github.com/ScriptedAlchemy/tracedecay / patch_settings

Function patch_settings

src/dashboard/code_diagnostics_api.rs:52–91  ·  view source on GitHub ↗
(
    State(state): State<DashboardState>,
    Json(patch): Json<Value>,
)

Source from the content-addressed store, hash-verified

50}
51
52pub(crate) async fn patch_settings(
53 State(state): State<DashboardState>,
54 Json(patch): Json<Value>,
55) -> ApiResult {
56 let patch = serde_json::from_value::<SettingsPatch>(patch)
57 .map_err(|err| bad_request(&format!("invalid code diagnostics settings patch: {err}")))?;
58 let mut settings = state.code_diagnostics.read().await.snapshot().settings;
59 if let Some(mode) = patch.idle_backfill {
60 settings.idle_backfill = mode;
61 }
62 for (language, language_patch) in patch.languages {
63 let language_settings = settings.languages.entry(language).or_default();
64 if let Some(enabled) = language_patch.enabled {
65 language_settings.enabled = enabled;
66 }
67 match language_patch.command_override {
68 CommandOverridePatch::Missing => {}
69 CommandOverridePatch::Null => {
70 language_settings.command_override = None;
71 }
72 CommandOverridePatch::Value(command_override) => {
73 language_settings.command_override = Some(command_override);
74 }
75 }
76 }
77 if let Some(custom_adapters) = patch.custom_adapters {
78 settings.custom_adapters = custom_adapters;
79 }
80 save_settings(&state.dashboard_root, &settings)
81 .await
82 .map_err(|err| internal_error(&err))?;
83 let mut adapters = crate::diagnostics::lsp::adapters::builtin_adapters();
84 adapters.extend(settings.custom_adapters.clone());
85 let mut broker = state.code_diagnostics.write().await;
86 broker.update_adapters(adapters);
87 broker.update_settings(settings);
88 drop(broker);
89 let snapshot = diagnostics_snapshot(&state).await?;
90 Ok(Json(json!(snapshot)))
91}
92
93pub(crate) async fn refresh_all(State(state): State<DashboardState>) -> ApiResult {
94 let languages = refreshable_languages(&state).await?;

Callers

nothing calls this directly

Calls 11

save_settingsFunction · 0.85
builtin_adaptersFunction · 0.85
diagnostics_snapshotFunction · 0.85
entryMethod · 0.80
update_adaptersMethod · 0.80
update_settingsMethod · 0.80
bad_requestFunction · 0.70
internal_errorFunction · 0.70
snapshotMethod · 0.45
readMethod · 0.45
writeMethod · 0.45

Tested by

no test coverage detected