summaryrefslogtreecommitdiff
path: root/support/texlab/src/context.rs
blob: a9d6f530a66627c7da37ddf8c8c389e68814fd9d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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(),
        }
    }
}