blob: dc5a63332bc14c1f861c69fc09387dc4ea99b512 (
plain)
use miette::Diagnostic;
use thiserror::Error;
use crate::{
diagnostics::AstDiagnostic,
tokenize::{Span, TokenType},
};
#[derive(Error, Debug, Diagnostic)]
#[error("image tags is not allowed in kuht")]
#[diagnostic(code(ImageTag), severity(Error))]
pub struct ImageTag {
#[label(primary, "invalid image tag")]
tag: Span,
}
impl AstDiagnostic for ImageTag {
fn handle_element(element: &crate::parse::Element<'_>) -> Option<Self> {
let TokenType::Tag {
lowercase_tag_name, ..
} = element.start_tag.ty
else {
return None;
};
if lowercase_tag_name != "image" {
return None;
}
Some(Self {
tag: element.start_tag.span,
})
}
}
|