pub struct SharedContext {
pub lifetime: u64,
pub world: LspWorld,
pub analysis: Analysis,
/* private fields */
}
Expand description
The shared analysis context for analyzers.
Fields§
§lifetime: u64
The caches lifetime tick for analysis.
world: LspWorld
The world surface for Typst compiler.
analysis: Analysis
The analysis data
Implementations§
Sourcepub fn to_typst_pos(&self, position: LspPosition, src: &Source) -> Option<usize>
pub fn to_typst_pos(&self, position: LspPosition, src: &Source) -> Option<usize>
Convert an LSP position to a Typst position.
Sourcepub fn to_typst_pos_offset(
&self,
source: &Source,
position: LspPosition,
shift: usize,
) -> Option<usize>
pub fn to_typst_pos_offset( &self, source: &Source, position: LspPosition, shift: usize, ) -> Option<usize>
Converts an LSP position with some offset.
Sourcepub fn to_lsp_pos(&self, typst_offset: usize, src: &Source) -> LspPosition
pub fn to_lsp_pos(&self, typst_offset: usize, src: &Source) -> LspPosition
Convert a Typst offset to an LSP position.
Sourcepub fn to_typst_range(
&self,
position: LspRange,
src: &Source,
) -> Option<Range<usize>>
pub fn to_typst_range( &self, position: LspRange, src: &Source, ) -> Option<Range<usize>>
Convert an LSP range to a Typst range.
Sourcepub fn to_lsp_range(&self, position: Range<usize>, src: &Source) -> LspRange
pub fn to_lsp_range(&self, position: Range<usize>, src: &Source) -> LspRange
Convert a Typst range to an LSP range.
Sourcepub fn to_lsp_range_(
&self,
position: Range<usize>,
fid: TypstFileId,
) -> Option<LspRange>
pub fn to_lsp_range_( &self, position: Range<usize>, fid: TypstFileId, ) -> Option<LspRange>
Convert a Typst range to an LSP range.
Sourcepub fn path_for_id(&self, id: TypstFileId) -> Result<PathResolution, FileError>
pub fn path_for_id(&self, id: TypstFileId) -> Result<PathResolution, FileError>
Resolve the real path for a file id.
Sourcepub fn uri_for_id(&self, fid: TypstFileId) -> Result<Url, FileError>
pub fn uri_for_id(&self, fid: TypstFileId) -> Result<Url, FileError>
Resolve the uri for a file id.
Sourcepub fn file_id_by_path(&self, path: &Path) -> FileResult<TypstFileId>
pub fn file_id_by_path(&self, path: &Path) -> FileResult<TypstFileId>
Get file’s id by its path
Sourcepub fn file_by_id(&self, fid: TypstFileId) -> FileResult<Bytes>
pub fn file_by_id(&self, fid: TypstFileId) -> FileResult<Bytes>
Get the content of a file by file id.
Sourcepub fn source_by_id(&self, fid: TypstFileId) -> FileResult<Source>
pub fn source_by_id(&self, fid: TypstFileId) -> FileResult<Source>
Get the source of a file by file id.
Sourcepub fn source_by_path(&self, path: &Path) -> FileResult<Source>
pub fn source_by_path(&self, path: &Path) -> FileResult<Source>
Get the source of a file by file path.
Sourcepub fn classify_span<'s>(
&self,
source: &'s Source,
span: Span,
) -> Option<SyntaxClass<'s>>
pub fn classify_span<'s>( &self, source: &'s Source, span: Span, ) -> Option<SyntaxClass<'s>>
Classifies the syntax under span that can be operated on by IDE functionality.
Sourcepub fn classify_for_decl<'s>(
&self,
source: &'s Source,
position: LspPosition,
) -> Option<SyntaxClass<'s>>
pub fn classify_for_decl<'s>( &self, source: &'s Source, position: LspPosition, ) -> Option<SyntaxClass<'s>>
Classifies the syntax under position that can be operated on by IDE functionality. It is preferred to select a decl if it is at the starts of some mark.
Sourcepub fn font_info(&self, font: Font) -> Option<Arc<DataSource>>
pub fn font_info(&self, font: Font) -> Option<Arc<DataSource>>
Resolve extra font information.
Sourcepub fn local_packages(&self) -> EcoVec<PackageSpec>
pub fn local_packages(&self) -> EcoVec<PackageSpec>
Get the local packages and their descriptions.
Sourcepub fn module_by_id(&self, fid: TypstFileId) -> SourceResult<Module>
pub fn module_by_id(&self, fid: TypstFileId) -> SourceResult<Module>
Get a module by file id.
Sourcepub fn module_by_str(&self, rr: String) -> Option<Module>
pub fn module_by_str(&self, rr: String) -> Option<Module>
Get a module by string.
Sourcepub fn module_by_src(&self, source: Source) -> SourceResult<Module>
pub fn module_by_src(&self, source: Source) -> SourceResult<Module>
Get (Create) a module by source.
Sourcepub fn module_by_syntax(&self, source: &SyntaxNode) -> Option<Value>
pub fn module_by_syntax(&self, source: &SyntaxNode) -> Option<Value>
Try to load a module from the current source file.
Sourcepub fn analyze_import(
&self,
source: &SyntaxNode,
) -> (Option<Value>, Option<Value>)
pub fn analyze_import( &self, source: &SyntaxNode, ) -> (Option<Value>, Option<Value>)
Try to find imported target from the current source file. This function will try to resolves target statically.
§Returns
The first value is the resolved source. The second value is the resolved scope.
Sourcepub fn analyze_expr(
&self,
source: &SyntaxNode,
) -> EcoVec<(Value, Option<Styles>)>
pub fn analyze_expr( &self, source: &SyntaxNode, ) -> EcoVec<(Value, Option<Styles>)>
Try to load a module from the current source file.
Sourcepub fn analyze_bib(&self, introspector: &Introspector) -> Option<Arc<BibInfo>>
pub fn analyze_bib(&self, introspector: &Introspector) -> Option<Arc<BibInfo>>
Get bib info of a source file.
Sourcepub fn tooltip(&self, source: &Source, cursor: usize) -> Option<Tooltip>
pub fn tooltip(&self, source: &Source, cursor: usize) -> Option<Tooltip>
Describe the item under the cursor.
Passing a document
(from a previous compilation) is optional, but
enhances the autocompletions. Label completions, for instance, are
only generated when the document is available.
Sourcepub fn get_manifest(&self, toml_id: TypstFileId) -> StrResult<PackageManifest>
pub fn get_manifest(&self, toml_id: TypstFileId) -> StrResult<PackageManifest>
Get the manifest of a package by file id.
Sourcepub fn compute_signature(
self: &Arc<Self>,
func: SignatureTarget,
compute: impl FnOnce(&Arc<Self>) -> Option<Signature> + Send + Sync + 'static,
) -> Option<Signature>
pub fn compute_signature( self: &Arc<Self>, func: SignatureTarget, compute: impl FnOnce(&Arc<Self>) -> Option<Signature> + Send + Sync + 'static, ) -> Option<Signature>
Compute the signature of a function.
Sourcepub fn remove_html(&self, markup: EcoString) -> EcoString
pub fn remove_html(&self, markup: EcoString) -> EcoString
Remove html tags from markup content if necessary.
Auto Trait Implementations§
Blanket Implementations§
Source§impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
Source§fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
Source§fn adapt_into(self) -> D
fn adapt_into(self) -> D
§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Source§impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
Source§fn arrays_from(colors: C) -> T
fn arrays_from(colors: C) -> T
Source§impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
Source§fn arrays_into(self) -> C
fn arrays_into(self) -> C
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<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
Source§type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
parameters
when converting.Source§fn cam16_into_unclamped(
self,
parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>,
) -> T
fn cam16_into_unclamped( self, parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>, ) -> T
self
into C
, using the provided parameters.Source§impl<T> CheckedAs for T
impl<T> CheckedAs for T
Source§fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
Source§impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
Source§fn checked_cast_from(src: Src) -> Option<Dst>
fn checked_cast_from(src: Src) -> Option<Dst>
Source§impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
Source§fn components_from(colors: C) -> T
fn components_from(colors: C) -> T
§impl<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<F, W, T, D> Deserialize<With<T, W>, D> for F
§fn deserialize(
&self,
deserializer: &mut D,
) -> Result<With<T, W>, <D as Fallible>::Error>
fn deserialize( &self, deserializer: &mut D, ) -> Result<With<T, W>, <D as Fallible>::Error>
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§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
.§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
.§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.§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.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<T> Filterable for T
impl<T> Filterable for T
Source§impl<T> FromAngle<T> for T
impl<T> FromAngle<T> for T
Source§fn from_angle(angle: T) -> T
fn from_angle(angle: T) -> T
angle
.Source§impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
Source§fn from_stimulus(other: U) -> T
fn from_stimulus(other: U) -> T
other
into Self
, while performing the appropriate scaling,
rounding and clamping.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> InternSize for T
impl<T> InternSize for T
const INTERN_SIZE: usize
Source§impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
Source§fn into_angle(self) -> U
fn into_angle(self) -> U
T
.Source§impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
Source§type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
parameters
when converting.Source§fn into_cam16_unclamped(
self,
parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>,
) -> T
fn into_cam16_unclamped( self, parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>, ) -> T
self
into C
, using the provided parameters.Source§impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
Source§fn into_color(self) -> U
fn into_color(self) -> U
Source§impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
Source§fn into_color_unclamped(self) -> U
fn into_color_unclamped(self) -> U
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 moreSource§impl<T> IntoStimulus<T> for T
impl<T> IntoStimulus<T> for T
Source§fn into_stimulus(self) -> T
fn into_stimulus(self) -> T
self
into T
, while performing the appropriate scaling,
rounding and clamping.§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Source§impl<T> OverflowingAs for T
impl<T> OverflowingAs for T
Source§fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
Source§impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
Source§fn overflowing_cast_from(src: Src) -> (Dst, bool)
fn overflowing_cast_from(src: Src) -> (Dst, bool)
§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> SaturatingAs for T
impl<T> SaturatingAs for T
Source§fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
Source§impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
Source§fn saturating_cast_from(src: Src) -> Dst
fn saturating_cast_from(src: Src) -> Dst
Source§impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
Source§type Error = <C as TryFromComponents<T>>::Error
type Error = <C as TryFromComponents<T>>::Error
try_into_colors
fails to cast.Source§fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
Source§impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
Source§fn try_into_color(self) -> Result<U, OutOfBounds<U>>
fn try_into_color(self) -> Result<U, OutOfBounds<U>>
OutOfBounds
error is returned which contains
the unclamped color. Read more