pub struct ProjectConfig {Show 13 fields
pub extra_abbreviations: Vec<String>,
pub ignore_patterns: Vec<String>,
pub default_format: Option<String>,
pub max_width: Option<usize>,
pub long_threshold: Option<usize>,
pub clause_breaks: Option<bool>,
pub lang: Option<String>,
pub org: Option<FormatOverrides>,
pub latex: Option<FormatOverrides>,
pub markdown: Option<FormatOverrides>,
pub rst: Option<FormatOverrides>,
pub plaintext: Option<FormatOverrides>,
pub code: HashMap<String, CodeLang>,
}Expand description
Per-project configuration loaded from .snapperrc.toml.
Fields§
§extra_abbreviations: Vec<String>Additional abbreviations that should not trigger sentence breaks.
ignore_patterns: Vec<String>File patterns to ignore (glob syntax).
default_format: Option<String>Default format override.
max_width: Option<usize>Default max width.
long_threshold: Option<usize>Character threshold for advisory long diagnostics when max_width is
unset. Defaults to 120 when omitted.
clause_breaks: Option<bool>Prefer soft breaks after independent-clause punctuation. With
max_width = 0 this still inserts a newline after each mark that
is already followed by whitespace.
lang: Option<String>Default language for abbreviation sets.
org: Option<FormatOverrides>Per-format overrides.
latex: Option<FormatOverrides>§markdown: Option<FormatOverrides>§rst: Option<FormatOverrides>§plaintext: Option<FormatOverrides>§code: HashMap<String, CodeLang>Per-language code-block reflow and formatter configuration.
Key is the language identifier as it appears on the code fence
(e.g. rust, python, toml). Missing languages mean the code
block passes through unchanged.
Implementations§
Source§impl ProjectConfig
impl ProjectConfig
Sourcepub fn find_and_load(start_dir: &Path) -> Result<Self>
pub fn find_and_load(start_dir: &Path) -> Result<Self>
Search for .snapperrc.toml starting from start_dir and walking up
to the filesystem root. Returns the default config if none found.
Sourcepub fn resolve(explicit_path: Option<&Path>) -> Result<Self>
pub fn resolve(explicit_path: Option<&Path>) -> Result<Self>
Get the config file path if explicitly provided, otherwise search.
Sourcepub fn abbreviations_for_format(&self, format: &str) -> Vec<String>
pub fn abbreviations_for_format(&self, format: &str) -> Vec<String>
Get merged extra_abbreviations for a specific format, combining top-level abbreviations with per-format overrides.
Sourcepub fn max_width_for_format(&self, format: &str) -> Option<usize>
pub fn max_width_for_format(&self, format: &str) -> Option<usize>
Get max_width for a specific format (per-format overrides top-level).
Sourcepub fn latex_verbatim_envs(&self) -> Vec<String>
pub fn latex_verbatim_envs(&self) -> Vec<String>
Extra [latex].verbatim_envs names. Empty when the key is missing.
Sourcepub fn latex_structure_envs(&self) -> Vec<String>
pub fn latex_structure_envs(&self) -> Vec<String>
Extra [latex].structure_envs names. Empty when the key is missing.
Sourcepub fn latex_verbatim_commands(&self) -> Vec<String>
pub fn latex_verbatim_commands(&self) -> Vec<String>
Extra [latex].verbatim_commands names. Empty when the key is missing.
pub fn is_ignored(&self, path: &Path) -> bool
Trait Implementations§
Source§impl Debug for ProjectConfig
impl Debug for ProjectConfig
Source§impl Default for ProjectConfig
impl Default for ProjectConfig
Source§fn default() -> ProjectConfig
fn default() -> ProjectConfig
Source§impl<'de> Deserialize<'de> for ProjectConfigwhere
ProjectConfig: Default,
impl<'de> Deserialize<'de> for ProjectConfigwhere
ProjectConfig: Default,
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for ProjectConfig
impl RefUnwindSafe for ProjectConfig
impl Send for ProjectConfig
impl Sync for ProjectConfig
impl Unpin for ProjectConfig
impl UnsafeUnpin for ProjectConfig
impl UnwindSafe for ProjectConfig
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
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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