View Source Igniter.Code.List (igniter v0.3.33)

Utilities for working with lists.

Summary

Functions

Appends quoted to the list unless it is already present, determined by equality_pred.

Appends quoted to the list

Finds the index of the first list item that satisfies pred

Returns true if the zipper is at a list literal

Moves to the list item matching the given predicate

Prepends quoted to the list unless it is already present, determined by equality_pred.

Prepends quoted to the list

Removes the item at the given index, returning :error if nothing is at that index

Types

@type equality_pred() :: (Sourceror.Zipper.t(), Macro.t() -> boolean())

Functions

Link to this function

append_new_to_list(zipper, quoted, equality_pred \\ &Common.nodes_equal?/2)

View Source
@spec append_new_to_list(Sourceror.Zipper.t(), quoted :: Macro.t(), equality_pred()) ::
  {:ok, Sourceror.Zipper.t()} | :error

Appends quoted to the list unless it is already present, determined by equality_pred.

Link to this function

append_to_list(zipper, quoted)

View Source
@spec append_to_list(Sourceror.Zipper.t(), quoted :: Macro.t()) ::
  {:ok, Sourceror.Zipper.t()} | :error

Appends quoted to the list

Link to this function

find_list_item_index(zipper, pred)

View Source
@spec find_list_item_index(Sourceror.Zipper.t(), (Sourceror.Zipper.t() -> boolean())) ::
  integer() | nil

Finds the index of the first list item that satisfies pred

@spec list?(Sourceror.Zipper.t()) :: boolean()

Returns true if the zipper is at a list literal

Link to this function

move_to_list_item(zipper, pred)

View Source
@spec move_to_list_item(Sourceror.Zipper.t(), (Sourceror.Zipper.t() -> boolean())) ::
  {:ok, Sourceror.Zipper.t()} | :error

Moves to the list item matching the given predicate

Link to this function

prepend_new_to_list(zipper, quoted, equality_pred \\ &Common.nodes_equal?/2)

View Source
@spec prepend_new_to_list(Sourceror.Zipper.t(), quoted :: Macro.t(), equality_pred()) ::
  {:ok, Sourceror.Zipper.t()} | :error

Prepends quoted to the list unless it is already present, determined by equality_pred.

Link to this function

prepend_to_list(zipper, quoted)

View Source
@spec prepend_to_list(Sourceror.Zipper.t(), quoted :: Macro.t()) ::
  {:ok, Sourceror.Zipper.t()} | :error

Prepends quoted to the list

Link to this function

remove_from_list(zipper, predicate)

View Source
@spec remove_from_list(
  Sourceror.Zipper.t(),
  predicate :: (Sourceror.Zipper.t() -> boolean())
) ::
  {:ok, Sourceror.Zipper.t()} | :error
Link to this function

remove_index(zipper, index)

View Source
@spec remove_index(Sourceror.Zipper.t(), index :: non_neg_integer()) ::
  {:ok, Sourceror.Zipper.t()} | :error

Removes the item at the given index, returning :error if nothing is at that index