mirror of
https://github.com/typst/typst
synced 2025-08-24 03:34:14 +08:00
refactor: Loaded err_at to err_in_text
This commit is contained in:
parent
3879d0826a
commit
2e2f646f2a
@ -593,5 +593,5 @@ pub fn format_xml_like_error(
|
||||
err => err.to_string(),
|
||||
};
|
||||
|
||||
data.err_at(pos, msg, err)
|
||||
data.err_in_text(pos, msg, err)
|
||||
}
|
||||
|
@ -176,12 +176,12 @@ fn format_csv_error(
|
||||
})
|
||||
.unwrap_or(LineCol::one_based(line, 1).into());
|
||||
match err.kind() {
|
||||
::csv::ErrorKind::Utf8 { .. } => data.err_at(pos, msg, "file is not valid utf-8"),
|
||||
::csv::ErrorKind::Utf8 { .. } => data.err_in_text(pos, msg, "file is not valid utf-8"),
|
||||
::csv::ErrorKind::UnequalLengths { expected_len, len, .. } => {
|
||||
let err =
|
||||
format!("found {len} instead of {expected_len} fields in line {line}");
|
||||
data.err_at(pos, msg, err)
|
||||
data.err_in_text(pos, msg, err)
|
||||
}
|
||||
_ => data.err_at(pos, "failed to parse CSV", err),
|
||||
_ => data.err_in_text(pos, "failed to parse CSV", err),
|
||||
}
|
||||
}
|
||||
|
@ -57,7 +57,7 @@ pub fn json(
|
||||
let data = source.load(engine.world)?;
|
||||
serde_json::from_slice(data.bytes.as_slice()).map_err(|err| {
|
||||
let pos = LineCol::one_based(err.line(), err.column());
|
||||
data.err_at(pos, "failed to parse JSON", err)
|
||||
data.err_in_text(pos, "failed to parse JSON", err)
|
||||
})
|
||||
}
|
||||
|
||||
|
@ -145,12 +145,12 @@ impl Loaded {
|
||||
// TODO: should the error even be reported in the file if it's possibly binary?
|
||||
let start = err.valid_up_to();
|
||||
let end = start + err.error_len().unwrap_or(0);
|
||||
self.err_at(start..end, "failed to convert to string", FileError::from(err))
|
||||
self.err_in_text(start..end, "failed to convert to string", FileError::from(err))
|
||||
})
|
||||
}
|
||||
|
||||
/// Report an error, possibly in an external file.
|
||||
pub fn err_at(
|
||||
pub fn err_in_text(
|
||||
&self,
|
||||
pos: impl Into<ReportPos>,
|
||||
msg: impl std::fmt::Display,
|
||||
|
@ -71,5 +71,5 @@ impl toml {
|
||||
/// Format the user-facing TOML error message.
|
||||
fn format_toml_error(data: &Loaded, error: ::toml::de::Error) -> EcoVec<SourceDiagnostic> {
|
||||
let pos = error.span().map(ReportPos::Range).unwrap_or_default();
|
||||
data.err_at(pos, "failed to parse TOML", error.message())
|
||||
data.err_in_text(pos, "failed to parse TOML", error.message())
|
||||
}
|
||||
|
@ -88,5 +88,5 @@ pub fn format_yaml_error(
|
||||
ReportPos::Full(range, line_col)
|
||||
})
|
||||
.unwrap_or_default();
|
||||
data.err_at(pos, "failed to parse YAML", error)
|
||||
data.err_in_text(pos, "failed to parse YAML", error)
|
||||
}
|
||||
|
@ -425,7 +425,7 @@ fn format_biblatex_error(
|
||||
// TODO: return multiple errors?
|
||||
let Some(error) = errors.into_iter().next() else {
|
||||
// TODO: can this even happen, should we just unwrap?
|
||||
return data.err_at(ReportPos::None, "failed to parse BibLaTeX", "???");
|
||||
return data.err_in_text(ReportPos::None, "failed to parse BibLaTeX", "???");
|
||||
};
|
||||
|
||||
let (range, msg) = match error {
|
||||
@ -433,7 +433,7 @@ fn format_biblatex_error(
|
||||
BibLaTeXError::Type(error) => (error.span, error.kind.to_string()),
|
||||
};
|
||||
|
||||
data.err_at(range, "failed to parse BibLaTeX", msg)
|
||||
data.err_in_text(range, "failed to parse BibLaTeX", msg)
|
||||
}
|
||||
|
||||
/// A loaded CSL style.
|
||||
@ -480,7 +480,7 @@ impl CslStyle {
|
||||
typst_utils::hash128(&(TypeId::of::<Bytes>(), data)),
|
||||
)))
|
||||
})
|
||||
.map_err(|err| data.err_at(ReportPos::None, "failed to load CSL style", err))
|
||||
.map_err(|err| data.err_in_text(ReportPos::None, "failed to load CSL style", err))
|
||||
}
|
||||
|
||||
/// Get the underlying independent style.
|
||||
|
@ -19,7 +19,7 @@ use crate::foundations::{
|
||||
};
|
||||
use crate::html::{tag, HtmlElem};
|
||||
use crate::layout::{BlockBody, BlockElem, Em, HAlignment};
|
||||
use crate::loading::{Loaded, DataSource, LineCol, Load, ReportPos};
|
||||
use crate::loading::{DataSource, LineCol, Load, Loaded, ReportPos};
|
||||
use crate::model::{Figurable, ParElem};
|
||||
use crate::text::{FontFamily, FontList, LinebreakElem, LocalName, TextElem, TextSize};
|
||||
use crate::visualize::Color;
|
||||
@ -568,9 +568,12 @@ impl RawSyntax {
|
||||
}
|
||||
}
|
||||
|
||||
fn format_syntax_error(data: &Loaded, error: ParseSyntaxError) -> EcoVec<SourceDiagnostic> {
|
||||
fn format_syntax_error(
|
||||
data: &Loaded,
|
||||
error: ParseSyntaxError,
|
||||
) -> EcoVec<SourceDiagnostic> {
|
||||
let pos = syntax_error_pos(&error);
|
||||
data.err_at(pos, "failed to parse syntax", error)
|
||||
data.err_in_text(pos, "failed to parse syntax", error)
|
||||
}
|
||||
|
||||
fn syntax_error_pos(error: &ParseSyntaxError) -> ReportPos {
|
||||
@ -624,7 +627,7 @@ fn format_theme_error(
|
||||
syntect::LoadingError::ParseSyntax(err, _) => syntax_error_pos(err),
|
||||
_ => ReportPos::None,
|
||||
};
|
||||
data.err_at(pos, "failed to parse theme", error)
|
||||
data.err_in_text(pos, "failed to parse theme", error)
|
||||
}
|
||||
|
||||
/// A highlighted line of raw text.
|
||||
|
@ -137,7 +137,7 @@ fn format_usvg_error(error: usvg::Error) -> EcoString {
|
||||
usvg::Error::ParsingFailed(error) => {
|
||||
format_xml_like_error("SVG", &Loaded::dummy(), error)
|
||||
.pop()
|
||||
.unwrap()
|
||||
.expect("at least one error")
|
||||
.message
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user