summaryrefslogtreecommitdiff
path: root/support/texlab/src/context.rs
diff options
context:
space:
mode:
Diffstat (limited to 'support/texlab/src/context.rs')
-rw-r--r--support/texlab/src/context.rs34
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(),
+ }
+ }
+}