Commit graph

88 commits

Author SHA1 Message Date
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
Zach Daniel
b878903e26 chore: fix bugs/build
Some checks are pending
CI / ash-ci (push) Waiting to run
2024-07-01 18:27:41 -04:00
Zach Daniel
922178e9ff improvement: use %Info{} structs to compose and plan nested installers 2024-07-01 17:56:14 -04:00
Igor Barakaiev
05f52a9413
improvement: add Igniter.apply_and_fetch_dependencies/1 and Igniter.has_changes?/1 (#28)
---------

Co-authored-by: Zach Daniel <zach@zachdaniel.dev>
2024-07-01 15:29:51 -04:00
Zach Daniel
99ed483629 improvement: rename option_schema/2 -> info/2 2024-07-01 14:25:33 -04:00
Zach Daniel
4b8e519c10 improvement: only create default configs if an env-specific config is created 2024-07-01 14:16:07 -04:00
Zach Daniel
dd42d449f2 improvement: add an optional path argument to find_and_update_or_create_module/5 2024-06-28 18:59:34 -04:00
Zach Daniel
fd475c366a improvement: add option_schema/2 callback to Igniter.Mix.Task 2024-06-28 18:56:04 -04:00
Zach Daniel
615196235e fix: fix match error in append_new_to_list
Some checks are pending
CI / ash-ci (push) Waiting to run
2024-06-28 14:25:13 -04:00
Zach Daniel
ccb0984314 improvement: Module.find_and_update_or_create_module
Some checks are pending
CI / ash-ci (push) Waiting to run
2024-06-28 00:36:04 -04:00
Zach Daniel
0dc28d3e8b improvement: add a way to move files
improvement: add `.igniter.exs` file, and `mix igniter.setup` to create it
improvement: move files to configured location based on changes
2024-06-27 23:16:26 -04:00
Igor Barakaiev
e72aa1ee4a
fix: version string splitting (#25) 2024-06-27 17:53:44 -04:00
Igor Barakaiev
8077946d10
improvement: add fallback to compose_task (#19)
Some checks are pending
CI / ash-ci (push) Waiting to run
2024-06-26 11:40:58 -04:00
Igor Barakaiev
a6464db658
improvement: add proper_test_support_location/1 (#18)
Some checks are pending
CI / ash-ci (push) Waiting to run
2024-06-26 08:02:29 -04:00
Igor Barakaiev
1271a75e04
improvement: add proper_test_location/1 (#17)
Some checks are pending
CI / ash-ci (push) Waiting to run
2024-06-25 13:09:48 -04:00
Zach Daniel
fa3b0d5fb3 improvement: use override: true for git/github deps as well 2024-06-21 19:57:39 -04:00
Zach Daniel
0e82c3aebb fix: don't show unnecessary diff output
fix: don't compile before fetching deps
2024-06-21 18:06:00 -04:00
Zach Daniel
faff4590c5 chore: use override: true when installing for a path 2024-06-21 16:21:20 -04:00