ExactoKnife
Refactoring tools for elixir!
Refactorings
Refactoring: Sort aliases
mix refactor sort_aliases [FILE]Sort all aliases in a file:
alias Alpha
alias Alpha.Bravo
alias Alpha.Charlie
alias DeltaRefactoring: Expand aliases
mix refactor expand_aliases [FILE]Expand out all aliases in a file:
alias Foo.Bar.Baz
alias Foo.Bar.BoomRefactoring: Consolidate aliases
mix refactor consolidate_aliases [FILE]Sort and combine all aliases in a file:
alias Foo.Bar.{Baz, Boom}More to come...
Installation
Exacto Knife can be installed by adding exacto_knife to your list of dependencies in mix.exs:
def deps do
[
{:exacto_knife, "~> 0.1.2"}
]
endDocs can be found at https://hexdocs.pm/exacto_knife.
Contributing
- Clone the repo
- Write a failing test for your change
- Make sure all tests pass
- Submit a PR
- We all win!!!
Links
- Elixir Syntax Reference has a good intro to the AST.
- Sourceror Docs are pretty great, understanding their zippers is essential.
- AST Ninja will show you the ast for specific code.