Crate rowan

source · []
Expand description

A generic library for lossless syntax trees. See examples/ for a tutorial.


pub use crate::api::Language;
pub use crate::api::SyntaxElement;
pub use crate::api::SyntaxElementChildren;
pub use crate::api::SyntaxNode;
pub use crate::api::SyntaxNodeChildren;
pub use crate::api::SyntaxToken;


Working with abstract syntax trees.

Implementation of the cursors – API for convenient access to syntax trees.


A checkpoint for maybe wrapping a node. See GreenNodeBuilder::checkpoint for details.

Internal node in the immutable tree. It has other nodes and tokens as children.

A builder for a green tree.

Leaf node in the immutable tree.

SyntaxKind is a type tag for each token or node.

A range in text, represented as a pair of TextSize.

A measure of text length. Also, equivalently, an index into text.


There might be zero, one or two leaves at a given offset.

WalkEvent describes tree walking process.


Primitives with a textual length that can be passed to TextSize::of.