diff options
Diffstat (limited to 'support/texlab/src/context.rs')
-rw-r--r-- | support/texlab/src/context.rs | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/support/texlab/src/context.rs b/support/texlab/src/context.rs new file mode 100644 index 0000000000..a9d6f530a6 --- /dev/null +++ b/support/texlab/src/context.rs @@ -0,0 +1,34 @@ +use std::{ + path::PathBuf, + sync::{Mutex, RwLock}, +}; + +use lsp_types::{ClientCapabilities, ClientInfo}; + +use crate::{ + distro::{DistributionKind, Resolver}, + Options, +}; + +#[derive(Debug)] +pub struct ServerContext { + pub current_directory: PathBuf, + pub distro_kind: Mutex<DistributionKind>, + pub resolver: Mutex<Resolver>, + pub client_capabilities: Mutex<ClientCapabilities>, + pub client_info: Mutex<Option<ClientInfo>>, + pub options: RwLock<Options>, +} + +impl ServerContext { + pub fn new(current_dir: PathBuf) -> Self { + Self { + current_directory: current_dir, + distro_kind: Mutex::new(DistributionKind::Unknown), + resolver: Mutex::new(Resolver::default()), + client_capabilities: Mutex::default(), + client_info: Mutex::default(), + options: RwLock::default(), + } + } +} |