(find-at-pos zloc row col)
Find the deepest zloc whose node is at the given row
and col
, seeking
from initial zipper location zloc
.
This is similar to z/find-last-by-pos, but is faster, and doesn't require {:track-position? true}.
Find the deepest zloc whose node is at the given `row` and `col`, seeking from initial zipper location `zloc`. This is similar to z/find-last-by-pos, but is faster, and doesn't require {:track-position? true}.
(find-by-heritability start-zloc inherits?)
Find the leftmost deepest zloc from start-zloc
that satisfies inherits?
.
inherits?
must be a function such that if zloc satisifies it then so will
all of its ancestors.
If a parent node satisifies inherits?
but none of its children do, then this
returns the parent, on the assumption that the parent is the last in its
lineage with the trait.
If a parent node doesn't satisfy inherits?
then none of its descendants will
be inspected. Instead, the search will continue with its sibling to the
z/right*. As such, this algoritihm can be much faster than ones based on
z/next*, which must inspect all descendants, even if information in the parent
excludes the entire family.
Find the leftmost deepest zloc from `start-zloc` that satisfies `inherits?`. `inherits?` must be a function such that if zloc satisifies it then so will all of its ancestors. If a parent node satisifies `inherits?` but none of its children do, then this returns the parent, on the assumption that the parent is the last in its lineage with the trait. If a parent node doesn't satisfy `inherits?` then none of its descendants will be inspected. Instead, the search will continue with its sibling to the z/right*. As such, this algoritihm can be much faster than ones based on z/next*, which must inspect all descendants, even if information in the parent excludes the entire family.
(in-range? {:keys [row col end-row end-col] :as _a}
{r :row c :col er :end-row ec :end-col :as _b})
True if b is contained within a.
True if b is contained within a.
(join-let let-loc)
if a let is directly above a form, will join binding forms and remove the inner let
if a let is directly above a form, will join binding forms and remove the inner let
(raise zloc)
Delete siblings and raise node at zloc one level up
[1 [2 |3 4]] => [1 |3]
Delete siblings and raise node at zloc one level up - `[1 [2 |3 4]] => [1 |3]`
(to-root loc)
Returns the loc of the root :forms
node.
Returns the loc of the root `:forms` node.
(to-top loc)
Returns the loc for the top-level form above the loc, or the loc itself if it
is top-level, or nil if the loc is at the :forms
node.
Returns the loc for the top-level form above the loc, or the loc itself if it is top-level, or nil if the loc is at the `:forms` node.
(to-top-or-subzip-top loc)
to-top will return nil within a subzip, sometimes that is unwanted
to-top will return nil within a subzip, sometimes that is unwanted
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close