aether-wisp 0.1.7

A terminal UI for AI coding agents via the Agent Client Protocol (ACP)
Documentation
use crate::settings::WISP_HOME_ENV_MUTEX;
use std::path::Path;

pub fn with_wisp_home(path: &Path, f: impl FnOnce()) {
    let _guard = WISP_HOME_ENV_MUTEX.lock().unwrap_or_else(std::sync::PoisonError::into_inner);
    let old = std::env::var_os("WISP_HOME");
    unsafe { std::env::set_var("WISP_HOME", path) };
    f();
    if let Some(value) = old {
        unsafe { std::env::set_var("WISP_HOME", value) };
    } else {
        unsafe { std::env::remove_var("WISP_HOME") };
    }
}

#[allow(dead_code)]
pub const CUSTOM_TMTHEME: &str = r#"<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>name</key>
    <string>Custom</string>
    <key>settings</key>
    <array>
        <dict>
            <key>settings</key>
            <dict>
                <key>foreground</key>
                <string>#112233</string>
                <key>background</key>
                <string>#000000</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>"#;