pub struct LineIndex<'a> { /* private fields */ }Implementations§
Source§impl<'a> LineIndex<'a>
impl<'a> LineIndex<'a>
pub fn new(content: &'a str) -> Self
Sourcepub fn with_line_starts(content: &'a str, line_starts: Vec<usize>) -> Self
pub fn with_line_starts(content: &'a str, line_starts: Vec<usize>) -> Self
Create a LineIndex from pre-computed line start byte offsets.
Each entry is the byte offset of the first character on that line.
The first entry must be 0 (start of content).
Sourcepub fn with_line_starts_and_code_blocks(
content: &'a str,
line_starts: Vec<usize>,
code_block_byte_ranges: &[(usize, usize)],
) -> Self
pub fn with_line_starts_and_code_blocks( content: &'a str, line_starts: Vec<usize>, code_block_byte_ranges: &[(usize, usize)], ) -> Self
Create a LineIndex from pre-computed line starts and code block byte ranges.
Instead of re-scanning content to find code blocks, this converts the already-detected byte ranges into line-level information.
pub fn line_col_to_byte_range(&self, line: usize, column: usize) -> Range<usize> ⓘ
Sourcepub fn line_col_to_byte_range_with_length(
&self,
line: usize,
column: usize,
length: usize,
) -> Range<usize> ⓘ
pub fn line_col_to_byte_range_with_length( &self, line: usize, column: usize, length: usize, ) -> Range<usize> ⓘ
Calculate a proper byte range for replacing text with a specific length This is the correct function to use for LSP fixes
§Safety
This function correctly handles multi-byte UTF-8 characters by converting character positions (columns) to byte positions.
Sourcepub fn whole_line_range(&self, line: usize) -> Range<usize> ⓘ
pub fn whole_line_range(&self, line: usize) -> Range<usize> ⓘ
Calculate byte range for entire line replacement (including newline) This is ideal for rules that need to replace complete lines
Sourcepub fn multi_line_range(
&self,
start_line: usize,
end_line: usize,
) -> Range<usize> ⓘ
pub fn multi_line_range( &self, start_line: usize, end_line: usize, ) -> Range<usize> ⓘ
Calculate byte range spanning multiple lines (from start_line to end_line inclusive) Both lines are 1-indexed. This is useful for replacing entire blocks like tables.
Sourcepub fn line_text_range(
&self,
line: usize,
start_col: usize,
end_col: usize,
) -> Range<usize> ⓘ
pub fn line_text_range( &self, line: usize, start_col: usize, end_col: usize, ) -> Range<usize> ⓘ
Calculate byte range for text within a line (excluding newline) Useful for replacing specific parts of a line
§Safety
This function correctly handles multi-byte UTF-8 characters by converting character positions (columns) to byte positions.
Sourcepub fn line_content_range(&self, line: usize) -> Range<usize> ⓘ
pub fn line_content_range(&self, line: usize) -> Range<usize> ⓘ
Calculate byte range from start of line to end of line content (excluding newline) Useful for replacing line content while preserving line structure
Sourcepub fn get_line_start_byte(&self, line_num: usize) -> Option<usize>
pub fn get_line_start_byte(&self, line_num: usize) -> Option<usize>
Get the global start byte offset for a given 1-based line number.
Sourcepub fn is_code_block(&self, line: usize) -> bool
pub fn is_code_block(&self, line: usize) -> bool
Check if the line at the given index is within a code block
Sourcepub fn is_code_fence(&self, line: usize) -> bool
pub fn is_code_fence(&self, line: usize) -> bool
Check if the line is a code fence marker (``` or ~~~)
Sourcepub fn is_tilde_code_block(&self, line: usize) -> bool
pub fn is_tilde_code_block(&self, line: usize) -> bool
Check if the line is a tilde code fence marker (~~~)
Sourcepub fn get_content(&self) -> &str
pub fn get_content(&self) -> &str
Get a reference to the content
Trait Implementations§
Auto Trait Implementations§
impl<'a> Freeze for LineIndex<'a>
impl<'a> RefUnwindSafe for LineIndex<'a>
impl<'a> Send for LineIndex<'a>
impl<'a> Sync for LineIndex<'a>
impl<'a> Unpin for LineIndex<'a>
impl<'a> UnsafeUnpin for LineIndex<'a>
impl<'a> UnwindSafe for LineIndex<'a>
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> 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<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read more