Crate ra_ap_span

Source
Expand description

File and span related types.

Structs§

AstIdMap
Maps items’ SyntaxNodes to ErasedFileAstIds and back.
EditionedFileId
A FileId and Edition bundled up together. The MSB is reserved for HirFileId encoding, more upper bits are used to then encode the edition.
ErasedFileAstId
See crates\hir-expand\src\ast_id_map.rs This is a type erased FileAstId.
FileAstId
AstId points to an AST node in a specific file.
FileId
Handle to a file in Vfs
HirFileId
Input to the analyzer is a set of files, where each file is identified by FileId and contains source code. However, another source of source code in Rust are macros: each macro can be thought of as producing a “temporary file”. To assign an id to such a file, we use the id of the macro call that produced the file. So, a HirFileId is either a FileId (source code written by user), or a MacroCallId (source code produced by macro).
MacroCallId
MacroCallId identifies a particular macro invocation, like println!("Hello, {}", world).
MacroFileId
RealSpanMap
SpanAnchor
SpanData
Spans represent a region of code, used by the IDE to be able link macro inputs and outputs together. Positions in spans are relative to some SpanAnchor to make them more incremental friendly.
SpanMap
Maps absolute text ranges for the corresponding file to the relevant span data.
SyntaxContext
A syntax context describes a hierarchy tracking order of macro definitions.
TextRange
A range in text, represented as a pair of TextSize.
TextSize
A measure of text length. Also, equivalently, an index into text.
TokenId
Legacy span type, only defined here as it is still used by the proc-macro server. While rust-analyzer doesn’t use this anymore at all, RustRover relies on the legacy type for proc-macro expansion.

Enums§

Edition
HirFileIdRepr
Transparency
A property of a macro expansion that determines how identifiers produced by that expansion are resolved.

Constants§

FIXUP_ERASED_FILE_AST_ID_MARKER
FileId used as the span for syntax node fixups. Any Span containing this file id is to be considered fake.
ROOT_ERASED_FILE_AST_ID
The root ast id always points to the encompassing file, using this in spans is discouraged as any range relative to it will be effectively absolute, ruining the entire point of anchored relative text ranges.

Traits§

AstIdNode

Type Aliases§

Span