Commit graph

105 commits

Author SHA1 Message Date
Zach Daniel
bfe50c6cac fix: use length of path for insertion point, instead of node equality 2024-07-22 13:59:32 -04:00
Zach Daniel
5fd15d0311 improvement: better map key setting
improvement: detect strings as non extendable blocks
improvement: add option to ignore already present phoenix scopes
2024-07-19 17:27:09 -04:00
Zach Daniel
df67d92eeb fix: improve add_code by modifying the supertree 2024-07-19 15:07:19 -04:00
Zach Daniel
bff6275c24 fix: properly scope configuration modification code
fix: properly add blocks of code together
2024-07-19 12:33:07 -04:00
Zach Daniel
e2a24475b1 improvement: add blocks together more fluidly in add_code 2024-07-19 10:36:02 -04:00
Zach Daniel
a234998886 fix: properly move to pattern matches in scope 2024-07-19 10:28:36 -04:00
Igor Barakaiev
8f9a94c449
fix: configures?/3 -> configures_key & configures_root_key (#54) 2024-07-19 08:54:41 -04:00
Igor Barakaiev
61e75fe2e3
improvement: include config in include_all_elixir_files (#55)
Some checks are pending
CI / ash-ci (push) Waiting to run
2024-07-18 16:39:03 -04:00
Igor Barakaiev
ca9ece1316
improvement: add Function.argument_equals?/3 (#53)
* improvement: add Function.argument_equals?/3

* add @doc and @spec

* return false when zipper is not a function call

Co-authored-by: Zach Daniel <zachary.s.daniel@gmail.com>

---------

Co-authored-by: Zach Daniel <zachary.s.daniel@gmail.com>
2024-07-18 13:34:31 -04:00
Zach Daniel
eaa1a779e0 improvement: fix function typespecs & add inflex dependency 2024-07-18 11:39:47 -04:00
Igor Barakaiev
d01cf95456
improvement: only show executed installers (#50)
Some checks are pending
CI / ash-ci (push) Waiting to run
2024-07-17 14:33:48 -04:00
Igor Barakaiev
ba8d2ff5f9
improvement: support tuple dependencies in igniter.install (#49) 2024-07-17 12:03:23 -04:00
Igor Barakaiev
2a96a8ae87
chore: remove :kind from docs (#48)
Some checks are pending
CI / ash-ci (push) Waiting to run
Seems like we forgot to remove `:kind` from the documentation for `find_and_update_or_create_module/5` when we went with the `:path` option only.
2024-07-16 15:37:30 -04:00
Zach Daniel
9eb5c52fc6 chore: get build passing 2024-07-15 21:11:58 -04:00
Zach Daniel
9210907a3b fix: when adding code to surrounding block, don't go up multiple blocks 2024-07-15 21:05:39 -04:00
Zach Daniel
d00dd671c7 improvement: Add Igniter.Libs.Phoenix for working with Phoenix
improvement: deprecate duplicate `Igniter.Code.Module.move_to_use` function
improvement: `Igniter.Project.Config.configures?/4` that takes a config file
improvement: Add `Igniter.Util.Warning` for formatting code in warnings
2024-07-15 14:06:25 -04:00
Zach Daniel
4494e426a3 improvement: make apply_and_fetch_dependencies only change deps/0 2024-07-14 19:22:37 -04:00
Zach Allaun
43a2f39943
refactor: simplify zipper usage (#45)
* build: add otp version to elixir in .tool-versions

* refactor: don't make subtree zippers unless needed in `Igniter.Code.Common`

* refactor: internal function in `Igniter.Code.Common`

* docs: add docstring for `Igniter.Code.Common.use_aliases/2`

* refactor: simplify zipper usage

Refactored using these two general rules:

1. Don't make subtrees unnecessarily

    zipper
    |> Zipper.subtree()
    |> Zipper.root()

    # is equivalent to
    zipper
    |> Zipper.node()

2. Access `zipper.node` when appropriate

    zipper
    |> Zipper.node()
    |> case do
      ...
    end

    # is equivalent to
    case zipper.node do
      ...
    end

* fix: remove redundant case clause in `Igniter.Code.Common`
2024-07-11 14:25:20 -04:00
Zach Daniel
772a916684 chore: get build passing 2024-07-11 13:43:39 -04:00
Zach Daniel
00161f7b0e improvement: remove a bunch of dependencies by using :inets & :httpc 2024-07-11 13:21:42 -04:00
Zach Daniel
66b886cdc7 fix: fix dialyzer warnings about info/2 never being nil 2024-07-10 10:56:34 -04:00
Zach Daniel
0ba0c5a375 chore: remove error check 2024-07-10 08:48:56 -04:00
Zach Daniel
e79a384549 fix: prevent crash on specific cases with igniter.new
improvement: more consistent initial impl of `elixirc_paths`

chore: share deps_compile code with installer
2024-07-10 08:42:41 -04:00
Zach Daniel
c3e1a16b66 chore: clean up test support addition code 2024-07-09 20:43:52 -04:00
Igor Barakaiev
8e71283ab1
improvement: support :kind in find_and_update_or_create_module/5 (#38) 2024-07-09 20:31:50 -04:00
Zach Daniel
a56346f329 chore: fix credo 2024-07-09 20:25:10 -04:00
Zach Daniel
7fcf6a6143 improvement: ensure test/support is in elixirc paths automatically when necessary 2024-07-09 20:23:15 -04:00
Zach Daniel
73f489369f fix: simplify how we get tasks to run
fix: don't try to format after editing `mix.exs`
2024-07-09 17:41:24 -04:00
Zach Daniel
0aed000bbf fix: fix deps compilation issues by vendoring deps.compile
fix: honor `--yes` flag when installing deps always
2024-07-09 16:38:57 -04:00
Zach Daniel
f81fd85d6e improvement: small tweaks to output
Some checks are pending
CI / ash-ci (push) Waiting to run
2024-07-09 12:05:15 -04:00
Zach Daniel
a6fb8ec1dc fix: remove shortnames for global options, to reduce conflicts 2024-07-09 09:00:53 -04:00
Rebecca Le
913945bb33
docs: Add protocol to config doc link to make it usable (#39)
Having a fully-qualified URL lets you cmd+click and go there from your editor! (on macOS - its probably ctrl+click on Windows)
2024-07-09 08:37:18 -04:00
Zach Daniel
27b6808408 fix: remove erroneous warning while composing tasks
Some checks are pending
CI / ash-ci (push) Waiting to run
2024-07-08 15:58:38 -04:00
Igor Barakaiev
a7e1397940
fix: pass file_path to ensure_default_configs_exist (#36)
Some checks failed
CI / ash-ci (push) Has been cancelled
2024-07-07 12:05:23 -04:00
Igor Barakaiev
90b23e898d
improvement: support an optional append? flag for add_dep/3 (#34) 2024-07-07 12:05:01 -04:00
Zach Daniel
7eba812020 chore: cleanup
Some checks are pending
CI / ash-ci (push) Waiting to run
2024-07-06 13:28:08 -04:00
Zach Daniel
1303e0f394 improvement: add add_dep/2-3, that accepts a full dep specification
improvement: deprecate `add_dependency/3-4`

closes #35
2024-07-06 13:28:08 -04:00
Igor Barakaiev
df409b00fd
fix: preserve original ordering in Util.Install (#33)
Some checks failed
CI / ash-ci (push) Has been cancelled
2024-07-04 07:52:48 -04:00
Igor Barakaiev
dc04861ca1
fix: include only "mix.exs" in the actual run in apply_and_fetch_dependencies (#32) 2024-07-04 06:51:45 -04:00
Igor Barakaiev
2f3e3065f3
fix: always return {:ok, zipper} in append_new_to_list/2 (#31) 2024-07-04 06:37:02 -04:00
Zach Daniel
b2ab78d681 chore: pass credo
Some checks failed
CI / ash-ci (push) Has been cancelled
2024-07-02 23:29:04 -04:00
Zach Daniel
8937710de9 improvement: make module moving much smarter
improvement: add configurations for not moving certain modules
improvement: make `source_folders` configurable
2024-07-02 23:26:39 -04:00
Zach Daniel
77003e2d34 chore: remove debug
Some checks are pending
CI / ash-ci (push) Waiting to run
2024-07-02 17:21:18 -04:00
Zach Daniel
44ebb4d7b0 chore: cleanup code addition 2024-07-02 17:20:50 -04:00
Zach Daniel
5e5e11633f improvement: properly find nested modules again
improvement: make igniter tests much faster by not searching our own project
2024-07-02 16:33:08 -04:00
Zach Daniel
0a7aa522fe chore: small changes to recently added function interfaces 2024-07-02 14:07:48 -04:00
Zach Daniel
be6051b523 improvement: add include_all_elixir_files/1
improvement: add `module_exists?/2`
improvement: add `find_and_update_module/3`
2024-07-02 13:50:06 -04:00
Zach Daniel
d7613a2438 improvement: only require rejecting mix deps.get one time & remember that choice
improvement: simpler messages signaling a mix deps.get
2024-07-02 13:22:22 -04:00
Zach Daniel
b13d58a4f3 improvement: move_modules -> move_files 2024-07-01 20:45:14 -04:00
Zach Daniel
2c2a2e35e3 improvement: move some files around and update config names 2024-07-01 20:43:39 -04:00