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 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 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 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