blob: 6266516eb7d4dc3395e8e9494a078c8df8276498 (
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
39
40
|
use crate::panhelper;
use crate::SubplotError;
use pandoc_ast::{Block, MutVisitor};
#[derive(Default)]
pub struct LintingVisitor {
pub issues: Vec<SubplotError>,
}
impl MutVisitor for LintingVisitor {
fn visit_vec_block(&mut self, vec_block: &mut Vec<Block>) {
for block in vec_block {
match block {
Block::CodeBlock(attr, _) => {
if panhelper::is_class(attr, "file") || panhelper::is_class(attr, "example") {
let newlines: Vec<_> =
panhelper::find_attr_kv(attr, "add-newline").collect();
match newlines.len() {
0 => {}
1 => match newlines[0].to_ascii_lowercase().as_ref() {
"auto" | "yes" | "no" => {}
_ => self.issues.push(SubplotError::UnrecognisedAddNewline(
panhelper::get_filename(attr),
newlines[0].to_owned(),
)),
},
_ => self.issues.push(SubplotError::RepeatedAddNewlineAttribute(
panhelper::get_filename(attr),
)),
}
}
}
_ => {
self.visit_block(block);
}
}
}
}
}
|