summaryrefslogtreecommitdiff
path: root/support/texlab/crates/diagnostics/src/types.rs
blob: a443245b6fe7782844acf3d575becb4a405683fb (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
35
36
37
38
use rowan::TextRange;
use syntax::BuildError;
use url::Url;

#[derive(Debug, PartialEq, Eq, Clone)]
pub struct Diagnostic {
    pub range: TextRange,
    pub data: DiagnosticData,
}

#[derive(Debug, PartialEq, Eq, Clone)]
pub enum DiagnosticData {
    Tex(TexError),
    Bib(BibError),
    Build(BuildError),
}

#[derive(Debug, PartialEq, Eq, Clone)]
pub enum TexError {
    UnexpectedRCurly,
    ExpectingRCurly,
    MismatchedEnvironment,
    UnusedLabel,
    UndefinedLabel,
    UndefinedCitation,
    DuplicateLabel(Vec<(Url, TextRange)>),
}

#[derive(Debug, PartialEq, Eq, Clone)]
pub enum BibError {
    ExpectingLCurly,
    ExpectingKey,
    ExpectingRCurly,
    ExpectingEq,
    ExpectingFieldValue,
    UnusedEntry,
    DuplicateEntry(Vec<(Url, TextRange)>),
}