Struct deno_ast::SourceTextInfo
source · [−]pub struct SourceTextInfo { /* private fields */ }
Expand description
Stores the source text along with other data such as where all the lines occur in the text.
Note: This struct is cheap to clone.
Implementations
sourceimpl SourceTextInfo
impl SourceTextInfo
sourcepub fn new(text: Arc<str>) -> SourceTextInfo
pub fn new(text: Arc<str>) -> SourceTextInfo
Creates a new SourceTextInfo
from the provided source text.
sourcepub fn new_with_pos(start_pos: SourcePos, text: Arc<str>) -> SourceTextInfo
pub fn new_with_pos(start_pos: SourcePos, text: Arc<str>) -> SourceTextInfo
Creates a new SourceTextInfo
from the provided source start position
and source text.
Note: When bundling swc will keep increasing the start position for each source file.
sourcepub fn new_with_indent_width(
start_pos: SourcePos,
text: Arc<str>,
indent_width: usize
) -> SourceTextInfo
pub fn new_with_indent_width(
start_pos: SourcePos,
text: Arc<str>,
indent_width: usize
) -> SourceTextInfo
Creates a new SourceTextInfo
from the provided start position,
source text, and indentation width.
The indentation width determines the number of columns to use
when going over a tab character. For example, an indent width
of 2 will mean each tab character will represent 2 columns.
The default indentation width used in the other methods is 2
to match the default indentation used by deno fmt
.
sourcepub fn from_string(text: String) -> SourceTextInfo
pub fn from_string(text: String) -> SourceTextInfo
Creates a new SourceTextInfo
from the provided source text.
Generally, prefer using SourceTextInfo::new
to provide a
string already in an std::sync::Arc
.
sourcepub fn as_string_input(&self) -> StringInput<'_>
pub fn as_string_input(&self) -> StringInput<'_>
Gets an swc StringInput
for this text information that can be
used with parsing.
sourcepub fn range(&self) -> SourceRange<StartSourcePos>
pub fn range(&self) -> SourceRange<StartSourcePos>
Gets the range—start and end byte position—of the source text.
sourcepub fn lines_count(&self) -> usize
pub fn lines_count(&self) -> usize
Gets the number of lines in the source text.
sourcepub fn line_index(&self, pos: SourcePos) -> usize
pub fn line_index(&self, pos: SourcePos) -> usize
Gets the 0-indexed line index at the provided byte position.
Note that this will panic when providing a byte position outside the range of the source text.
sourcepub fn line_start(&self, line_index: usize) -> SourcePos
pub fn line_start(&self, line_index: usize) -> SourcePos
Gets the line start byte position of the provided 0-indexed line index.
Note that this will panic if providing a line index outside the bounds of the number of lines.
sourcepub fn line_end(&self, line_index: usize) -> SourcePos
pub fn line_end(&self, line_index: usize) -> SourcePos
Gets the line end byte position of the provided 0-indexed line index.
Note that this will panic if providing a line index outside the bounds of the number of lines.
sourcepub fn line_and_column_index(&self, pos: SourcePos) -> LineAndColumnIndex
pub fn line_and_column_index(&self, pos: SourcePos) -> LineAndColumnIndex
Gets the 0-indexed line and column index of the provided byte position.
Note that this will panic when providing a byte position outside the range of the source text.
sourcepub fn line_and_column_display(&self, pos: SourcePos) -> LineAndColumnDisplay
pub fn line_and_column_display(&self, pos: SourcePos) -> LineAndColumnDisplay
Gets the 1-indexed line and column index of the provided byte position taking into account the default indentation width.
Note that this will panic when providing a byte position outside the range of the source text.
sourcepub fn line_and_column_display_with_indent_width(
&self,
pos: SourcePos,
indent_width: usize
) -> LineAndColumnDisplay
pub fn line_and_column_display_with_indent_width(
&self,
pos: SourcePos,
indent_width: usize
) -> LineAndColumnDisplay
Gets the 1-indexed line and column index of the provided byte position with a custom indentation width.
Note that this will panic when providing a byte position outside the range of the source text.
sourcepub fn loc_to_source_pos(
&self,
line_and_column_index: LineAndColumnIndex
) -> SourcePos
pub fn loc_to_source_pos(
&self,
line_and_column_index: LineAndColumnIndex
) -> SourcePos
Gets the source position of the provided line and column index.
Note that this will panic if providing a line index outside the bounds of the number of lines, but will clip the the line end byte index when exceeding the line length.
sourcepub fn line_text(&self, line_index: usize) -> &str
pub fn line_text(&self, line_index: usize) -> &str
Gets a reference to the text slice of the line at the provided 0-based index.
Note that this will panic if providing a line index outside the bounds of the number of lines.
sourcepub fn range_text(&self, range: &SourceRange<SourcePos>) -> &str
pub fn range_text(&self, range: &SourceRange<SourcePos>) -> &str
Gets the source text located within the provided range.
Trait Implementations
sourceimpl Clone for SourceTextInfo
impl Clone for SourceTextInfo
sourcefn clone(&self) -> SourceTextInfo
fn clone(&self) -> SourceTextInfo
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl Debug for SourceTextInfo
impl Debug for SourceTextInfo
sourceimpl<'a> SourceTextInfoProvider<'a> for &'a SourceTextInfo
impl<'a> SourceTextInfoProvider<'a> for &'a SourceTextInfo
fn text_info(&self) -> &'a SourceTextInfo
Auto Trait Implementations
impl RefUnwindSafe for SourceTextInfo
impl Send for SourceTextInfo
impl Sync for SourceTextInfo
impl Unpin for SourceTextInfo
impl UnwindSafe for SourceTextInfo
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more