fractal/utils/
sourceview.rs1use gtk::glib;
4use sourceview::prelude::*;
5
6pub(crate) fn setup_style_scheme(buffer: &sourceview::Buffer) {
8 let manager = adw::StyleManager::default();
9
10 buffer.set_style_scheme(style_scheme().as_ref());
11
12 manager.connect_dark_notify(glib::clone!(
13 #[weak]
14 buffer,
15 move |_| {
16 buffer.set_style_scheme(style_scheme().as_ref());
17 }
18 ));
19}
20
21pub(crate) fn style_scheme() -> Option<sourceview::StyleScheme> {
23 let manager = adw::StyleManager::default();
24 let scheme_name = if manager.is_dark() {
25 "Adwaita-dark"
26 } else {
27 "Adwaita"
28 };
29
30 sourceview::StyleSchemeManager::default().scheme(scheme_name)
31}