pub struct ProseRange {
pub start_byte: usize,
pub end_byte: usize,
pub exclusions: Vec<(usize, usize)>,
}Fields§
§start_byte: usize§end_byte: usize§exclusions: Vec<(usize, usize)>Byte ranges (document-level) within this prose range that should be excluded from grammar checking (e.g. display math). These regions are replaced with spaces when extracting text, preserving byte offsets.
Implementations§
Source§impl ProseRange
impl ProseRange
Sourcepub fn extract_text<'a>(&self, text: &'a str) -> Cow<'a, str>
pub fn extract_text<'a>(&self, text: &'a str) -> Cow<'a, str>
Extract the prose text from the full document, replacing any excluded regions with spaces so that byte offsets remain stable.
Sourcepub fn overlaps_exclusion(&self, local_start: u32, local_end: u32) -> bool
pub fn overlaps_exclusion(&self, local_start: u32, local_end: u32) -> bool
Check whether a local byte range (relative to this prose range) overlaps with any exclusion zone.
Sourcepub fn exclusion_adjacency(
&self,
text: &str,
local_start: u32,
local_end: u32,
) -> ExclusionAdjacency
pub fn exclusion_adjacency( &self, text: &str, local_start: u32, local_end: u32, ) -> ExclusionAdjacency
Classify how a diagnostic (range-local byte span) sits relative to the
skipped (excluded) segments in this range. Excluded segments are blanked
to spaces before checking, which breaks the surrounding sentence and
provokes false positives on the flanking text — this drives which of
those to suppress (see Self::suppresses_diagnostic).
Sourcepub fn suppresses_diagnostic(
&self,
text: &str,
local_start: u32,
local_end: u32,
unified_id: &str,
) -> bool
pub fn suppresses_diagnostic( &self, text: &str, local_start: u32, local_end: u32, unified_id: &str, ) -> bool
Whether a diagnostic should be dropped as a skip-induced false positive.
- Overlapping a skip, or glued to one with no character between them (blanking split a real word into a fragment): always suppressed.
- Separated from a skip by whitespace only (a real word flanking the cut): suppressed unless it is a spelling diagnostic. Removing a neighbour cannot misspell a real word, so genuine typos beside formulas are kept; the structural grammar/typography/style noise is dropped.
- Otherwise: kept.
Sourcepub fn adopt_diagnostics(&self, text: &str, diagnostics: &mut Vec<Diagnostic>)
pub fn adopt_diagnostics(&self, text: &str, diagnostics: &mut Vec<Diagnostic>)
Take ownership of an engine’s findings for this range: drop the skip-induced false positives, then rebase the survivors from range-local onto document byte offsets.
Trait Implementations§
Source§impl Clone for ProseRange
impl Clone for ProseRange
Source§fn clone(&self) -> ProseRange
fn clone(&self) -> ProseRange
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ProseRange
impl Debug for ProseRange
impl Eq for ProseRange
Source§impl PartialEq for ProseRange
impl PartialEq for ProseRange
impl StructuralPartialEq for ProseRange
Auto Trait Implementations§
impl Freeze for ProseRange
impl RefUnwindSafe for ProseRange
impl Send for ProseRange
impl Sync for ProseRange
impl Unpin for ProseRange
impl UnsafeUnpin for ProseRange
impl UnwindSafe for ProseRange
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> GetSetFdFlags for T
impl<T> GetSetFdFlags for T
Source§fn get_fd_flags(&self) -> Result<FdFlags, Error>where
T: AsFilelike,
fn get_fd_flags(&self) -> Result<FdFlags, Error>where
T: AsFilelike,
self file descriptor.Source§fn new_set_fd_flags(&self, fd_flags: FdFlags) -> Result<SetFdFlags<T>, Error>where
T: AsFilelike,
fn new_set_fd_flags(&self, fd_flags: FdFlags) -> Result<SetFdFlags<T>, Error>where
T: AsFilelike,
Source§fn set_fd_flags(&mut self, set_fd_flags: SetFdFlags<T>) -> Result<(), Error>where
T: Sized + AsFilelike,
fn set_fd_flags(&mut self, set_fd_flags: SetFdFlags<T>) -> Result<(), Error>where
T: Sized + AsFilelike,
self file descriptor. Read moreSource§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