diff --git a/src/diagnostic.rs b/src/diagnostic.rs index fc016c461..1bf9f42f7 100644 --- a/src/diagnostic.rs +++ b/src/diagnostic.rs @@ -4,17 +4,9 @@ //! layout on a best effort process, generating diagnostics for incorrect //! things. -#[cfg(feature = "serialize")] -use serde::Serialize; - -use crate::syntax::SpanVec; - -/// A list of spanned diagnostics. -pub type Diagnostics = SpanVec; - /// A diagnostic that arose in parsing or layouting. #[derive(Debug, Clone, Eq, PartialEq, Ord, PartialOrd)] -#[cfg_attr(feature = "serialize", derive(Serialize))] +#[cfg_attr(feature = "serialize", derive(serde::Serialize))] pub struct Diagnostic { /// How severe / important the diagnostic is. pub level: Level, @@ -24,7 +16,7 @@ pub struct Diagnostic { /// How severe / important a diagnostic is. #[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)] -#[cfg_attr(feature = "serialize", derive(Serialize))] +#[cfg_attr(feature = "serialize", derive(serde::Serialize))] #[cfg_attr(feature = "serialize", serde(rename_all = "camelCase"))] pub enum Level { Warning, diff --git a/src/lib.rs b/src/lib.rs index 7681f5b78..10e1f8108 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -46,11 +46,11 @@ use std::pin::Pin; use crate::compute::scope::Scope; use crate::compute::value::Value; -use crate::diagnostic::Diagnostics; +use crate::diagnostic::Diagnostic; use crate::font::SharedFontLoader; use crate::layout::{Commands, MultiLayout}; use crate::style::{LayoutStyle, PageStyle, TextStyle}; -use crate::syntax::{Decorations, Offset, Pos, SyntaxTree}; +use crate::syntax::{Decoration, Offset, Pos, SpanVec, SyntaxTree}; /// Transforms source code into typesetted layouts. /// @@ -166,9 +166,9 @@ impl Pass { #[derive(Debug, Default, Clone, Eq, PartialEq)] pub struct Feedback { /// Diagnostics about the source code. - pub diagnostics: Diagnostics, + pub diagnostics: SpanVec, /// Decorations of the source code for semantic syntax highlighting. - pub decorations: Decorations, + pub decorations: SpanVec, } impl Feedback { diff --git a/src/syntax/decoration.rs b/src/syntax/decoration.rs deleted file mode 100644 index fe961be39..000000000 --- a/src/syntax/decoration.rs +++ /dev/null @@ -1,26 +0,0 @@ -//! Decorations for semantic syntax highlighting. - -#[cfg(feature = "serialize")] -use serde::Serialize; - -use super::span::SpanVec; - -/// A list of spanned decorations. -pub type Decorations = SpanVec; - -/// Decorations for semantic syntax highlighting. -#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)] -#[cfg_attr(feature = "serialize", derive(Serialize))] -#[cfg_attr(feature = "serialize", serde(rename_all = "camelCase"))] -pub enum Decoration { - /// Text in italics. - Italic, - /// Text in bold. - Bold, - /// A valid, successfully resolved name. - Resolved, - /// An invalid, unresolved name. - Unresolved, - /// The key part of a key-value entry in a table. - TableKey, -} diff --git a/src/syntax/mod.rs b/src/syntax/mod.rs index 1b9f8ba8f..fe887c2fe 100644 --- a/src/syntax/mod.rs +++ b/src/syntax/mod.rs @@ -1,11 +1,26 @@ //! Syntax types. -mod decoration; mod span; mod token; mod tree; -pub use decoration::*; pub use span::*; pub use token::*; pub use tree::*; + +/// Decorations for semantic syntax highlighting. +#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)] +#[cfg_attr(feature = "serialize", derive(serde::Serialize))] +#[cfg_attr(feature = "serialize", serde(rename_all = "camelCase"))] +pub enum Decoration { + /// Text in italics. + Italic, + /// Text in bold. + Bold, + /// A valid, successfully resolved name. + Resolved, + /// An invalid, unresolved name. + Unresolved, + /// The key part of a key-value entry in a table. + TableKey, +} diff --git a/src/syntax/span.rs b/src/syntax/span.rs index 9357c3452..6f5420d44 100644 --- a/src/syntax/span.rs +++ b/src/syntax/span.rs @@ -6,9 +6,6 @@ use std::ops::{Add, Sub}; #[cfg(test)] use std::cell::Cell; -#[cfg(feature = "serialize")] -use serde::Serialize; - #[cfg(test)] thread_local! { static CMP_SPANS: Cell = Cell::new(true); @@ -34,7 +31,7 @@ impl Offset for SpanVec { /// A value with the span it corresponds to in the source code. #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)] -#[cfg_attr(feature = "serialize", derive(Serialize))] +#[cfg_attr(feature = "serialize", derive(serde::Serialize))] pub struct Spanned { pub span: Span, pub v: T, @@ -92,7 +89,7 @@ impl Debug for Spanned { /// Locates a slice of source code. #[derive(Copy, Clone, Ord, PartialOrd, Hash)] -#[cfg_attr(feature = "serialize", derive(Serialize))] +#[cfg_attr(feature = "serialize", derive(serde::Serialize))] pub struct Span { /// The inclusive start position. pub start: Pos, @@ -164,7 +161,7 @@ impl Debug for Span { /// Zero-indexed line-column position in source code. #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)] -#[cfg_attr(feature = "serialize", derive(Serialize))] +#[cfg_attr(feature = "serialize", derive(serde::Serialize))] pub struct Pos { /// The zero-indexed line. pub line: usize, diff --git a/src/syntax/tree.rs b/src/syntax/tree.rs index f243e67aa..8c4270e2f 100644 --- a/src/syntax/tree.rs +++ b/src/syntax/tree.rs @@ -2,8 +2,8 @@ use std::fmt::{self, Debug, Formatter}; -use super::decoration::Decoration; use super::span::{SpanVec, Spanned}; +use super::Decoration; use crate::color::RgbaColor; use crate::compute::table::{SpannedEntry, Table}; use crate::compute::value::{TableValue, Value};