use std::{path::PathBuf, sync::Arc}; use lsp_types::{ClientCapabilities, ClientInfo}; use crate::{distro::Resolver, Options}; #[derive(Debug, Clone)] pub struct Environment { pub current_directory: Arc, pub client_capabilities: Arc, pub client_info: Option>, pub options: Arc, pub resolver: Arc, } impl Environment { #[must_use] pub fn new(current_directory: Arc) -> Self { Self { current_directory, client_capabilities: Arc::new(ClientCapabilities::default()), client_info: None, options: Arc::new(Options::default()), resolver: Arc::new(Resolver::default()), } } } impl Default for Environment { fn default() -> Self { Self::new(Arc::new(std::env::temp_dir())) } }