Wrangler is an interactive refactoring tool for Erlang, integrated into both emacs and Eclipse.

Wrangler’s refactorings cover structural changes such as function, variable and module renaming, function extraction and generalisation. Wrangler recognises macros in code, and can be used on a single file or across a whole project.

Wrangler can also be used to locate and remove code clones, and to improve the module structure of projects.

Wrangler is extensible, with an API for writing new refactorings and a DSL for scripting complex refactoring combinations.

Wrangler also supports testing in EUnit, QuickCheck and Common Test, so your tests are refactored automatically when you refactor your code.

Obtaining Wrangler

The latest snapshot of Wrangler

Wrangler is part of Erlide, the Erlang plugin for Eclipse.


- Getting started with Wrangler

- Basic refactorings in Wrangler

  1. -Structural refactorings in Wrangler

  2. -Refactoring and Clone Detection in Wrangler

  3. -InfoQ interview with Huiqing and Simon on refactoring

Tutorial (Erlang User Conf 2010)

Slides: ppt pdf

Exercises: doc pdf

Example code: gz


ProTest project 

HaRe: the Haskell refactorer

Simon Thompson 

Huiqing Li


The development of Wrangler was supported by EPSRC and the European Commission through the 7th Framework Programme.