= 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 ==== Installation * [http://www.erlang.org/doc/installation_guide/users_guide.html How to install Erlang] * [wiki:Install How to install the tool] * [http://yaws.hyber.org/configuration.yaws How to install Yaws] (required for the web UI) * HowtoConfigureRefactorErl * HowtoConfigureEmacs * HowtoConfigureEclipse * HowtoConfigureVim * HowtoSetupWebInterface ==== Starting up * [FirstUsage How to start the tool] * HowtoStartAsStandaloneServer == Analysing Source Code * HowtoAddFiles * HowtoAddIncludePaths * [InitialLoadingError Handling errors at initial loading] == Feature Highlights * Static Analysis * [SideEffects Side effects] * [DataFlow Data-flow] and [DynamicCallAnalysis dynamic function calls] * [wiki:Dependency Module and function dependencies] * [InterfaceLayers Interface layer] consistency check * Comprehension (getting syntactic and semantic information about the source code) * [SemanticQuery Custom semantic queries] (see the reference of [wiki:QueryComponents available components]) and [MetricQuery metric queries] * [PreDefinedSemanticQuery Pre-defined semantic queries] (available via the web interface) * Code refactoring: 24 different [RefactoringSteps refactoring steps] * [ModuleFunctionClustering Module and function clustering] * Multiple storage back-ends: [wiki:MnesiaDB Mnesia] and [wiki:NifDB C++ graph based] == User Interfaces * [ErlangShellInterface Interactive] and [ScriptableInterface scriptable] Erlang shell interface * [WebInterface Web interface] * [CommandLineInterface Linux shell interface (CLI)] * [EmacsInterface Emacs/XEmacs interface] * [EclipseInterface Eclipse], [VimInterface Vim plugin]