mirror of
https://github.com/ash-project/igniter.git
synced 2024-09-19 13:02:51 +12:00
chore: improvements/renames
This commit is contained in:
parent
062d46a7ef
commit
680526c685
8 changed files with 60 additions and 31 deletions
|
@ -122,9 +122,8 @@ defmodule Igniter.Application do
|
|||
{:ok, zipper} ->
|
||||
zipper
|
||||
|> Zipper.rightmost()
|
||||
|> Igniter.Debug.puts_ast_at_node()
|
||||
|> Igniter.Code.Keyword.set_keyword_key(:mod, {application, []}, fn z ->
|
||||
{:ok, Zipper.replace(z, {application, []})}
|
||||
{:ok, Common.replace_code(z, {application, []})}
|
||||
end)
|
||||
|
||||
_ ->
|
||||
|
|
|
@ -44,7 +44,7 @@ defmodule Igniter.Code.Common do
|
|||
quote do
|
||||
ast =
|
||||
unquote(zipper)
|
||||
|> Igniter.Code.Common.maybe_move_to_singleton_block()
|
||||
|> Igniter.Code.Common.maybe_move_to_single_child_block()
|
||||
|> Zipper.subtree()
|
||||
|> Zipper.root()
|
||||
|
||||
|
@ -184,6 +184,20 @@ defmodule Igniter.Code.Common do
|
|||
end
|
||||
end
|
||||
|
||||
def replace_code(zipper, code) when is_binary(code) do
|
||||
add_code(zipper, Sourceror.parse_string!(code))
|
||||
end
|
||||
|
||||
def replace_code(zipper, code) do
|
||||
current_code =
|
||||
zipper
|
||||
|> Zipper.subtree()
|
||||
|
||||
code = use_aliases(code, current_code)
|
||||
|
||||
Zipper.replace(zipper, code)
|
||||
end
|
||||
|
||||
defp highest_adjacent_block(zipper) do
|
||||
case Zipper.up(zipper) do
|
||||
nil ->
|
||||
|
@ -205,7 +219,7 @@ defmodule Igniter.Code.Common do
|
|||
end
|
||||
end
|
||||
|
||||
defp use_aliases(new_code, current_code) do
|
||||
def use_aliases(new_code, current_code) do
|
||||
case env_at_cursor(current_code) do
|
||||
{:ok, env} ->
|
||||
Macro.prewalk(new_code, fn
|
||||
|
@ -222,7 +236,7 @@ defmodule Igniter.Code.Common do
|
|||
node
|
||||
end)
|
||||
|
||||
:error ->
|
||||
_ ->
|
||||
new_code
|
||||
end
|
||||
end
|
||||
|
@ -300,10 +314,10 @@ defmodule Igniter.Code.Common do
|
|||
Enters a block with a single child, and moves to that child,
|
||||
or returns the zipper unmodified
|
||||
"""
|
||||
@spec maybe_move_to_singleton_block(Zipper.t()) :: Zipper.t()
|
||||
def maybe_move_to_singleton_block(nil), do: nil
|
||||
@spec maybe_move_to_single_child_block(Zipper.t()) :: Zipper.t()
|
||||
def maybe_move_to_single_child_block(nil), do: nil
|
||||
|
||||
def maybe_move_to_singleton_block(zipper) do
|
||||
def maybe_move_to_single_child_block(zipper) do
|
||||
zipper
|
||||
|> Zipper.subtree()
|
||||
|> Zipper.root()
|
||||
|
@ -316,7 +330,7 @@ defmodule Igniter.Code.Common do
|
|||
zipper
|
||||
|
||||
zipper ->
|
||||
maybe_move_to_singleton_block(zipper)
|
||||
maybe_move_to_single_child_block(zipper)
|
||||
end
|
||||
|
||||
_ ->
|
||||
|
@ -419,7 +433,7 @@ defmodule Igniter.Code.Common do
|
|||
end
|
||||
|
||||
defp do_move_right(zipper, pred) do
|
||||
zipper_in_block = maybe_move_to_singleton_block(zipper)
|
||||
zipper_in_block = maybe_move_to_single_child_block(zipper)
|
||||
|
||||
cond do
|
||||
pred.(zipper_in_block) ->
|
||||
|
@ -560,8 +574,12 @@ defmodule Igniter.Code.Common do
|
|||
{:ok, struct(Macro.Env, cursor_env)}
|
||||
end)
|
||||
rescue
|
||||
_e ->
|
||||
:error
|
||||
e ->
|
||||
# if Application.get_env(:igniter, :testing) do
|
||||
reraise e, __STACKTRACE__
|
||||
# else
|
||||
# {:error, e}
|
||||
# end
|
||||
end
|
||||
|
||||
@doc """
|
||||
|
@ -628,7 +646,7 @@ defmodule Igniter.Code.Common do
|
|||
end
|
||||
end)
|
||||
|
||||
:error ->
|
||||
_ ->
|
||||
zipper
|
||||
end
|
||||
end
|
||||
|
|
|
@ -57,7 +57,7 @@ defmodule Igniter.Code.Function do
|
|||
@spec function_call?(Zipper.t(), atom, non_neg_integer()) :: boolean()
|
||||
def function_call?(%Zipper{} = zipper, name, arity) do
|
||||
zipper
|
||||
|> Common.maybe_move_to_singleton_block()
|
||||
|> Common.maybe_move_to_single_child_block()
|
||||
|> Zipper.subtree()
|
||||
|> Zipper.root()
|
||||
|> case do
|
||||
|
@ -82,7 +82,7 @@ defmodule Igniter.Code.Function do
|
|||
@spec function_call?(Zipper.t(), atom) :: boolean()
|
||||
def function_call?(%Zipper{} = zipper, name) do
|
||||
zipper
|
||||
|> Common.maybe_move_to_singleton_block()
|
||||
|> Common.maybe_move_to_single_child_block()
|
||||
|> Zipper.subtree()
|
||||
|> Zipper.root()
|
||||
|> case do
|
||||
|
@ -107,7 +107,7 @@ defmodule Igniter.Code.Function do
|
|||
@spec function_call?(Zipper.t()) :: boolean()
|
||||
def function_call?(%Zipper{} = zipper) do
|
||||
zipper
|
||||
|> Common.maybe_move_to_singleton_block()
|
||||
|> Common.maybe_move_to_single_child_block()
|
||||
|> Zipper.subtree()
|
||||
|> Zipper.root()
|
||||
|> case do
|
||||
|
@ -329,7 +329,7 @@ defmodule Igniter.Code.Function do
|
|||
|
||||
{:ok, zipper} ->
|
||||
zipper
|
||||
|> Common.maybe_move_to_singleton_block()
|
||||
|> Common.maybe_move_to_single_child_block()
|
||||
|> func.()
|
||||
end
|
||||
end
|
||||
|
@ -351,7 +351,7 @@ defmodule Igniter.Code.Function do
|
|||
|
||||
{:ok, zipper} ->
|
||||
zipper
|
||||
|> Common.maybe_move_to_singleton_block()
|
||||
|> Common.maybe_move_to_single_child_block()
|
||||
|> func.()
|
||||
end
|
||||
end
|
||||
|
|
|
@ -81,7 +81,7 @@ defmodule Igniter.Code.Keyword do
|
|||
) ::
|
||||
{:ok, Zipper.t()} | :error
|
||||
def put_in_keyword(zipper, path, value, updater \\ nil) do
|
||||
updater = updater || fn zipper -> {:ok, Zipper.replace(zipper, value)} end
|
||||
updater = updater || fn zipper -> {:ok, Common.replace_code(zipper, value)} end
|
||||
|
||||
do_put_in_keyword(zipper, path, value, updater)
|
||||
end
|
||||
|
@ -112,6 +112,8 @@ defmodule Igniter.Code.Keyword do
|
|||
|> Sourceror.to_string()
|
||||
|> Sourceror.parse_string!()
|
||||
|
||||
value = Common.use_aliases(value, zipper)
|
||||
|
||||
to_append =
|
||||
zipper
|
||||
|> Zipper.subtree()
|
||||
|
@ -148,7 +150,7 @@ defmodule Igniter.Code.Keyword do
|
|||
{:ok, Zipper.t()} | :error
|
||||
def set_keyword_key(zipper, key, value, updater) do
|
||||
if Common.node_matches_pattern?(zipper, value when is_list(value)) do
|
||||
zipper = Common.maybe_move_to_singleton_block(zipper)
|
||||
zipper = Common.maybe_move_to_single_child_block(zipper)
|
||||
|
||||
case Igniter.Code.List.move_to_list_item(zipper, fn item ->
|
||||
if Igniter.Code.Tuple.tuple?(item) do
|
||||
|
@ -173,6 +175,10 @@ defmodule Igniter.Code.Keyword do
|
|||
|> Sourceror.to_string()
|
||||
|> Sourceror.parse_string!()
|
||||
|
||||
Common.env_at_cursor(zipper) |> IO.inspect()
|
||||
|
||||
value = Common.use_aliases(value, zipper)
|
||||
|
||||
if meta[:format] do
|
||||
{{:__block__, [format: meta[:format]], [key]}, value}
|
||||
else
|
||||
|
|
|
@ -48,7 +48,7 @@ defmodule Igniter.Code.List do
|
|||
|> case do
|
||||
nil ->
|
||||
zipper
|
||||
|> Common.maybe_move_to_singleton_block()
|
||||
|> Common.maybe_move_to_single_child_block()
|
||||
|> Zipper.append_child(quoted)
|
||||
|
||||
_ ->
|
||||
|
@ -65,7 +65,7 @@ defmodule Igniter.Code.List do
|
|||
if list?(zipper) do
|
||||
{:ok,
|
||||
zipper
|
||||
|> Common.maybe_move_to_singleton_block()
|
||||
|> Common.maybe_move_to_single_child_block()
|
||||
|> Zipper.insert_child(quoted)}
|
||||
else
|
||||
:error
|
||||
|
@ -78,7 +78,7 @@ defmodule Igniter.Code.List do
|
|||
if list?(zipper) do
|
||||
{:ok,
|
||||
zipper
|
||||
|> Common.maybe_move_to_singleton_block()
|
||||
|> Common.maybe_move_to_single_child_block()
|
||||
|> Zipper.append_child(quoted)}
|
||||
else
|
||||
:error
|
||||
|
@ -139,7 +139,7 @@ defmodule Igniter.Code.List do
|
|||
def find_list_item_index(zipper, pred) do
|
||||
# go into first list item
|
||||
zipper
|
||||
|> Common.maybe_move_to_singleton_block()
|
||||
|> Common.maybe_move_to_single_child_block()
|
||||
|> Zipper.down()
|
||||
|> case do
|
||||
nil ->
|
||||
|
@ -155,7 +155,7 @@ defmodule Igniter.Code.List do
|
|||
def move_to_list_item(zipper, pred) do
|
||||
# go into first list item
|
||||
zipper
|
||||
|> Common.maybe_move_to_singleton_block()
|
||||
|> Common.maybe_move_to_single_child_block()
|
||||
|> Zipper.down()
|
||||
|> case do
|
||||
nil ->
|
||||
|
@ -167,7 +167,7 @@ defmodule Igniter.Code.List do
|
|||
end
|
||||
|
||||
defp find_index_right(zipper, pred, index) do
|
||||
if pred.(Common.maybe_move_to_singleton_block(zipper)) do
|
||||
if pred.(Common.maybe_move_to_single_child_block(zipper)) do
|
||||
index
|
||||
else
|
||||
case Zipper.right(zipper) do
|
||||
|
|
|
@ -16,7 +16,7 @@ defmodule Igniter.Code.Map do
|
|||
) ::
|
||||
{:ok, Zipper.t()} | :error
|
||||
def put_in_map(zipper, path, value, updater \\ nil) do
|
||||
updater = updater || fn zipper -> {:ok, Zipper.replace(zipper, value)} end
|
||||
updater = updater || fn zipper -> {:ok, Common.replace_code(zipper, value)} end
|
||||
|
||||
do_put_in_map(zipper, path, value, updater)
|
||||
end
|
||||
|
@ -28,6 +28,8 @@ defmodule Igniter.Code.Map do
|
|||
defp do_put_in_map(zipper, [key | rest], value, updater) do
|
||||
cond do
|
||||
Common.node_matches_pattern?(zipper, {:%{}, _, []}) ->
|
||||
value = Common.use_aliases(value, zipper)
|
||||
|
||||
{:ok,
|
||||
Zipper.append_child(
|
||||
zipper,
|
||||
|
@ -50,6 +52,7 @@ defmodule Igniter.Code.Map do
|
|||
end)
|
||||
|> case do
|
||||
:error ->
|
||||
value = Common.use_aliases(value, zipper)
|
||||
format = map_keys_format(zipper)
|
||||
value = mappify(rest, value)
|
||||
|
||||
|
@ -82,6 +85,8 @@ defmodule Igniter.Code.Map do
|
|||
def set_map_key(zipper, key, value, updater) do
|
||||
cond do
|
||||
Common.node_matches_pattern?(zipper, {:%{}, _, []}) ->
|
||||
value = Common.use_aliases(value, zipper)
|
||||
|
||||
{:ok,
|
||||
Zipper.append_child(
|
||||
zipper,
|
||||
|
@ -104,6 +109,7 @@ defmodule Igniter.Code.Map do
|
|||
end)
|
||||
|> case do
|
||||
:error ->
|
||||
value = Common.use_aliases(value, zipper)
|
||||
format = map_keys_format(zipper)
|
||||
|
||||
{:ok,
|
||||
|
|
|
@ -22,12 +22,12 @@ defmodule Igniter.Code.Tuple do
|
|||
@spec tuple_elem(Zipper.t(), elem :: non_neg_integer()) :: {:ok, Zipper.t()} | :error
|
||||
def tuple_elem(item, elem) do
|
||||
item
|
||||
|> Common.maybe_move_to_singleton_block()
|
||||
|> Common.maybe_move_to_single_child_block()
|
||||
|> Zipper.down()
|
||||
|> Common.nth_right(elem)
|
||||
|> case do
|
||||
{:ok, nth} ->
|
||||
{:ok, Common.maybe_move_to_singleton_block(nth)}
|
||||
{:ok, Common.maybe_move_to_single_child_block(nth)}
|
||||
|
||||
:error ->
|
||||
:error
|
||||
|
|
|
@ -32,7 +32,7 @@ defmodule Igniter.Config do
|
|||
value -> Macro.escape(value)
|
||||
end
|
||||
|
||||
updater = updater || fn zipper -> {:ok, Zipper.replace(zipper, value)} end
|
||||
updater = updater || fn zipper -> {:ok, Common.replace_code(zipper, value)} end
|
||||
|
||||
igniter
|
||||
|> ensure_default_configs_exist(file_name)
|
||||
|
@ -93,7 +93,7 @@ defmodule Igniter.Config do
|
|||
(Zipper.t() -> {:ok, Zipper.t()} | :error) | nil
|
||||
) :: Zipper.t()
|
||||
def modify_configuration_code(zipper, config_path, app_name, value, updater \\ nil) do
|
||||
updater = updater || fn zipper -> {:ok, Zipper.replace(zipper, value)} end
|
||||
updater = updater || fn zipper -> {:ok, Common.replace_code(zipper, value)} end
|
||||
|
||||
case try_update_three_arg(zipper, config_path, app_name, value, updater) do
|
||||
{:ok, zipper} ->
|
||||
|
|
Loading…
Reference in a new issue