pub struct BufferContent { /* private fields */ }Implementations§
Source§impl BufferContent
impl BufferContent
pub fn new() -> Self
pub fn text(&self) -> String
pub fn len_bytes(&self) -> usize
pub fn len_chars(&self) -> usize
pub fn is_empty(&self) -> bool
Sourcepub fn byte_at(&self, offset: usize) -> Option<u8>
pub fn byte_at(&self, offset: usize) -> Option<u8>
Get a single byte at the given offset, if it exists.
pub fn rope(&self) -> &Rope
pub fn tree(&self) -> Option<&MarkdownTree>
pub fn lines(&self) -> &[LineMarkers]
Sourcepub fn render_snapshot(&mut self) -> RenderSnapshot
pub fn render_snapshot(&mut self) -> RenderSnapshot
Create a render snapshot for efficient virtualized rendering. Ensures code highlight cache is valid before creating the snapshot. All Rc clones are O(1). LineMarkers are computed lazily per-line.
Sourcepub fn inline_styles_for_range(&self, range: &Range<usize>) -> Vec<StyledRegion>
pub fn inline_styles_for_range(&self, range: &Range<usize>) -> Vec<StyledRegion>
Get inline styles that overlap with a byte range. Uses binary search for efficient O(log n) lookup.
pub fn byte_to_line(&self, byte_offset: usize) -> usize
pub fn line_to_byte(&self, line: usize) -> usize
pub fn line_count(&self) -> usize
Sourcepub fn is_line_empty(&self, line_idx: usize) -> bool
pub fn is_line_empty(&self, line_idx: usize) -> bool
Returns true if the line has no content (only markers or whitespace). Code fences are always considered content.
pub fn line_byte_range(&self, line_idx: usize) -> Range<usize>
Sourcepub fn slice_cow(&self, range: Range<usize>) -> Cow<'_, str>
pub fn slice_cow(&self, range: Range<usize>) -> Cow<'_, str>
Get a byte slice from the rope, borrowing if possible. Returns a Cow that borrows if the slice fits in one chunk, allocates otherwise.
pub fn code_highlights_for_range( &mut self, range: Range<usize>, ) -> Vec<HighlightSpan>
Sourcepub fn normalize_document(&mut self) -> bool
pub fn normalize_document(&mut self) -> bool
Normalize the document. Currently does nothing - we preserve the file as-is.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for BufferContent
impl RefUnwindSafe for BufferContent
impl !Send for BufferContent
impl !Sync for BufferContent
impl Unpin for BufferContent
impl UnwindSafe for BufferContent
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
Mutably borrows from an owned value. Read more
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>
Convert
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>
Convert
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)
Convert
&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)
Convert
&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> 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>
Converts
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>
Converts
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
Read this value from the supplied reader. Same as
ReadEndian::read_from_little_endian().