Expand description

Collection of assorted algorithms for syntax trees.

Structs

Functions

Returns ancestors of the node at the offset, sorted by length. This should do the right thing at an edge, e.g. when searching for expressions at { $0foo } we will get the name reference instead of the whole block, which we would get if we just did find_token_at_offset(...).flat_map(|t| t.parent().ancestors()).

Finds a (potentially minimal) diff, which, applied to from, will result in to.

Finds a node of specific Ast type at offset. Note that this is slightly imprecise: if the cursor is strictly between two nodes of the desired type, as in

Finds the first sibling in the given direction which is not trivia

Skip to next non trivia token

Skip to next non whitespace token