pub struct FormatConfig {Show 17 fields
pub format: Format,
pub max_width: usize,
pub use_neural: bool,
pub neural_lang: String,
pub neural_model_path: Option<PathBuf>,
pub extra_abbreviations: Vec<String>,
pub use_pandoc: bool,
pub pandoc_format: Option<String>,
pub pandoc_backend: PandocBackend,
pub code: HashMap<String, CodeLang>,
pub format_code: bool,
pub clause_breaks: bool,
pub fixpoint_backstop: bool,
pub render_backstop: bool,
pub latex_verbatim_envs: Vec<String>,
pub latex_structure_envs: Vec<String>,
pub latex_verbatim_commands: Vec<String>,
}Expand description
Configuration for the formatting pipeline.
Fields§
§format: Format§max_width: usize§use_neural: bool§neural_lang: String§neural_model_path: Option<PathBuf>§extra_abbreviations: Vec<String>§use_pandoc: bool§pandoc_format: Option<String>Pandoc input format string (for pandoc backend).
pandoc_backend: PandocBackendHow to obtain the pandoc AST when use_pandoc is set.
Ffi uses in-process Haskell/C bindings; Cli uses a subprocess.
code: HashMap<String, CodeLang>Per-language code-block configuration loaded from [code] in
.snapperrc.toml. Empty by default; an empty map disables all
per-language code-block behaviour (block passes through untouched).
format_code: boolWhen true, the reflow stage invokes each language’s formatter
after comment reflow. Default false preserves v0.7.7 behaviour
(no subprocess is spawned).
clause_breaks: boolPrefer soft breaks after independent-clause punctuation (sembr
rule 5). When max_width is 0, every such mark that is already
followed by whitespace starts a new line. When max_width is
greater than 0, overflowing sentences prefer those marks.
Default false keeps one sentence per line (greedy wrap only
under max_width).
fixpoint_backstop: boolRun format_text to a byte fixpoint (cap 4). Production default
true; tests set false so a planner that needs the backstop fails.
render_backstop: boolAfter the fixpoint, a format-local oracle mismatch returns the
original document. Production default true; tests set false
and assert the oracle themselves.
latex_verbatim_envs: Vec<String>Extra LaTeX environments treated as code (no reflow), added to minted/lstlisting/verbatim. Empty keeps the built-in list.
latex_structure_envs: Vec<String>Extra LaTeX environments treated as structure (no reflow), added
to NON_PROSE_ENVS. Empty keeps the built-in list.
latex_verbatim_commands: Vec<String>Extra LaTeX command names tokenized like \verb before split.
Empty keeps verb/lstinline.
Implementations§
Source§impl FormatConfig
impl FormatConfig
Sourcepub fn without_safety_backstops(self) -> Self
pub fn without_safety_backstops(self) -> Self
Tests that assert planner properties (idempotence, oracle, splice) must disable both backstops so a planner that needs them fails.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for FormatConfig
impl RefUnwindSafe for FormatConfig
impl Send for FormatConfig
impl Sync for FormatConfig
impl Unpin for FormatConfig
impl UnsafeUnpin for FormatConfig
impl UnwindSafe for FormatConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more