summaryrefslogtreecommitdiff
path: root/support/texlab/src/diagnostics/mod.rs
blob: 906da9858fd2f1872b477a9d82932a590969e885 (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
mod bibtex;
mod build;
mod latex;

pub use self::{
    bibtex::{BibtexDiagnosticsProvider, BibtexError, BibtexErrorCode},
    build::BuildDiagnosticsProvider,
    latex::LatexDiagnosticsProvider,
};

use crate::{protocol::Diagnostic, workspace::Document};

#[derive(Debug, Default)]
pub struct DiagnosticsManager {
    pub bibtex: BibtexDiagnosticsProvider,
    pub latex: LatexDiagnosticsProvider,
    pub build: BuildDiagnosticsProvider,
}

impl DiagnosticsManager {
    pub async fn get(&self, doc: &Document) -> Vec<Diagnostic> {
        let mut diagnostics = Vec::new();
        diagnostics.append(&mut self.bibtex.get(doc));
        diagnostics.append(&mut self.latex.get(doc));
        diagnostics.append(&mut self.build.get(doc).await);
        diagnostics
    }
}