Wrangler is an interactive refactoring tool for Erlang, integrated into Visual Studio Code and other LSP-compliant editors as the Wrangler language server, as well as emacs and Eclipse.

The refactorings in Wrangler 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.

We have written a paper on Refactoring tools for functional languages, which covers a lot of the background to the development of Wrangler and refactoring for Erlang. Our other publications about Wrangler are listed here.


The development of Wrangler has been supported by UK Research and Innovation, the 7th Framework Programme of the European Union, and the Erlang Ecosystem Foundation.

Getting Started with Wrangler

Wrangler for unix (Mac OS X and linux), which uses emacs as a front end, is available from github.

Wrangler installer for windows.

Wrangler can be used within Eclipse alongside Erlide, the Erlang plugin.

Details about installing and getting started with Wrangler are here.


Online Documentation.


Tutorial from EUC 2010