Skip to main content

oak_lean/
lsp.rs

1use crate::language::LeanLanguage;
2use oak_lsp::{LanguageService, MemoryVfs, WorkspaceManager};
3
4pub struct LeanLanguageService {
5    _config: LeanLanguage,
6    vfs: MemoryVfs,
7    workspace: WorkspaceManager,
8}
9
10impl LeanLanguageService {
11    pub fn new(config: LeanLanguage) -> Self {
12        Self { _config: config, vfs: MemoryVfs::default(), workspace: WorkspaceManager::default() }
13    }
14}
15
16impl LanguageService for LeanLanguageService {
17    type Lang = LeanLanguage;
18    type Vfs = MemoryVfs;
19
20    fn vfs(&self) -> &Self::Vfs {
21        &self.vfs
22    }
23
24    fn workspace(&self) -> &WorkspaceManager {
25        &self.workspace
26    }
27}