Overview Version History Q & A Rating & Review
RefactorEx
RefactorEx is a powerful editor extension that simplifies and accelerates code refactoring for Elixir projects. It introduces intuitive code actions to help you refactor Elixir code efficiently and confidently.
With RefactorEx, you can perform common refactorings like extracting functions, renaming variables, and more — all within a few clicks.
You can check all supported editors in our installation guide .
Available refactorings
How to use each refactoring
Alias: expand aliases
▲ top
Description
Extract the module full name into an alias and use it
Target
Selection of module full name
Inverse of
Inline alias
Example
▲ top
Alias: inline alias
Description
Replace the alias usage by the module full name
Target
Selection of alias usage
Inverse of
Extract alias
Notes
1. alias must be declared on the same module 2. alias declaration will not be removed
Example
▲ top
Alias: merge aliases
Description
Merge the group of aliases into a nested alias
Target
Selection of two or more mergeable aliases
Inverse of
Expand aliases
Example
▲ top
Alias: sort nested aliases
Description
Sort all nested aliases alphabetically
Target
Line of alias with unsorted nested aliases
Example
▲ top
Case: convert from with
Description
Convert with statement to case statement
Target
Line of with statement
Inverse of
Convert to with
Notes
with statement cannot have multiple clauses
Example
▲ top
Case: convert to with
Description
Convert case statement to with statement
Target
Line of case statement
Inverse of
Convert from with
Notes
case statement cannot have an assignment in the expression
Example
▲ top
▲ top
Constant: inline constant
Description
Replace a constant usage by its value
Target
Selection of constant
Inverse of
Extract constant
Notes
1. constant must be declared on the same module 2. constant declaration will not be removed
Example
▲ top
Constant: rename constant
Description
Replace the name of constant in all its usages
Target
Cursor at constant definition or usage
Read more
Catalog of Elixir refactorings
Example
▲ top
Function: collapse anonymous function
Description
Collapse a fn function into a & function
Target
Selection of fn function
Inverse of
Expand anonymous function
Example
▲ top
Function: expand anonymous function
▲ top
▲ top
▲ top
Function: inline function
▲ top
Function: rename function
Description
Replace the name of function in all its calls
Target
Cursor at function definition or usage
Read more
Catalog of Elixir refactorings
Notes
⚠️ Renaming a public function only affects the current file
Example
▲ top
Function: use keyword syntax
Description
Rewrite the function using keyword syntax
Target
Line of function definition using regular syntax
Inverse of
Use regular syntax
Notes
function body must have a single statement
Example
▲ top
Function: use regular syntax
Description
Rewrite the function using regular syntax
Target
Line of function definition using keyword syntax
Inverse of
Use keyword syntax
Example
▲ top
Description
Extract a when statement into a guard
Target
Selection of when statement or part of one
Inverse of
Inline guard
Example
▲ top
Guard: inline guard
Description
Replace a guard call by its when statement
Target
Selection of guard call
Inverse of
Extract guard
Notes
1. guard must be defined on the same module 2. guard definition will not be removed
Example
▲ top
Guard: rename guard
Description
Replace the name of guard in all its calls
Target
Cursor at guard definition or usage
Read more
Catalog of Elixir refactorings
Notes
⚠️ Renaming a public guard only affects the current file
Example
▲ top
If else: use keyword syntax
Description
Rewrite the if else using keyword syntax
Target
Line of if using regular syntax
Inverse of
Use regular syntax
Notes
Clauses must have a single statement
Example
▲ top
If else: use regular syntax
Description
Rewrite the if else using regular syntax
Target
Line of if using keyword syntax
Inverse of
Use keyword syntax
Example
▲ top
Pipeline: introduce IO.inspect
Description
Pipe a piece of code into an IO.inspect
Target
Selection of any code
Inverse of
Remove IO.inspect
Example
▲ top
Pipeline: introduce pipe
Description
Pipe the first arg into function call or case condition
Target
Line of function call or case condition
Inverse of
Remove pipe
Example
▲ top
Pipeline: remove IO.inspect
Description
Remove IO.inspect call
Target
Line of IO.inspect call
Inverse of
Introduce IO.inspect
Example
▲ top
Pipeline: remove pipe
▲ top
▲ top
Variable: inline variable
▲ top
Variable: rename variable
▲ top
Variable: underscore not used
Description
Place a _ in front of variables defined but not used
Target
Line of unused variable
Example
▲ top