= Welcome to the manual page of !RefactorErl! [http://plc.inf.elte.hu/erlang RefactorErl] is a source code analyser and transformer tool for [http://www.erlang.org/ Erlang], developed at [http://www.elte.hu/en Eötvös Loránd University], [http://en.wikipedia.org/wiki/Budapest Budapest], [http://en.wikipedia.org/wiki/Hungary Hungary]. This wiki aims to help our users understand the main features of the tool and to guide their everyday use. If you are new to !RefactorErl, you can find some installation and configuration instructions. == Getting started * [wiki:Install How to install the tool] * How to start the tool in [StartUp#Normalmode normal] / [StartUp#Servermode server] / [StartUp#Clientmode client] mode * [wiki:ManagingFiles How to manage your files and applications within RefactorErl?] * How to configure GUIs: [WebInterface#Startingup Web] / [EmacsInterface#ConfigurationinXEmacsEmacs Emacs] / [VimInterface#Installation Vim] * How to change token positioning modes: [wiki:PosModes Positioning modes] (What is token positioning? What is it good for?) * How to restrict the enabled user-level operations? (What is [wiki:ConfigurableJobServer configurable job server]? How to use?) {{{#!comment [EclipseInterface#Configuration Eclipse] }}} {{{#!comment == Analysing Source Code * HowtoAddFiles * HowtoAddIncludePaths * [InitialLoadingError Handling errors at initial loading] }}} == Feature highlights * Static analysis * Side effects * Data-flow, Control-flow * [DynamicCallAnalysis Dynamic function calls] (e.g. apply) * [wiki:Dependency Module and function dependencies] * [InterfaceLayers Interface layer] consistency check * [wiki:DuplicateCodeAnalysis Duplicate code analysis] * Program comprehension (code inspection, grokking) * [SemanticQuery Custom (ad-hoc) semantic queries] (see the reference of [SemanticQuery/Components available components]) * [PreDefinedSemanticQuery Pre-defined semantic queries] (available via the web interface) * [MetricQuery Metric queries] * Multiple storage back-ends: [wiki:MnesiaDB Mnesia] and [wiki:NifDB C++ graph based] and [wiki:kcmini KyotoCabinet based graph] * Code refactoring: 24 different [RefactoringSteps refactoring steps] * [wiki:Clustering Module and function clustering] == User interfaces * [ErlangShellInterface Interactive] and [ScriptableInterface scriptable] Erlang shell * [WebInterface Web based] {{{#! * [wiki:web2 New web interface] * [CommandLineInterface Linux shell (CLI)] * [EmacsInterface Emacs/XEmacs integration] * [VimInterface Vim plugin] {{{#!comment * [WxInterface Wx interface] [EclipseInterface Eclipse], }}}