- Implemented the first version of Organize Extensions refactoring.
- Improving error handling and documentation
- Solved memory leaks in the case of successive refactorings.
- Solved various errors related to code generate, reloading.
- CLI now uses daemon as a backend. Functionalities are merged.
- Command-line interfaces refined
- File system modifications are now detected by the daemon.
- The daemon now can create unified diffs for showing changes.
- The daemon now can undo refactorings it did before.
- The tool now handles Main modules.
- Only those modules are loaded that cabal would load.
- Multiple improvements for the handling of Template Haskell.
- Some minor fixes in loading and refactoring.
- Implemented a complete handling of conditional compilation preprocessor pragmas.
- Fixed problems about the scope-checking for validity.
- Rename is now able to rename module aliases.
- Removed unnecessary changes during re-loading.
- Version checking between the client and the daemon.
- Fixed a number of project-related bugs discovered from stackage testing.
- Polished the editor support
- New Refactoring: Float Out
- Enhancements of existing refactorings:
- Organize imports had been extended
- Now recognizes import groups and does not reorder them
- Uses a heuristics for removing imports
- Extract binding now can extract operator sections, and recognizes known associative operators
- Organize imports had been extended
- Daemon: support for package DBs, automatically find cabal-sandbox and stack DBs
- Created automatic testing for hackage and stackage, found and fixed a few problems (mostly transformation errors on edge cases)
- Resolved formatting failures by defaulting to relative indentation for newly generated elements
- Minor features for CLI
- Inline Binding refactoring
- Solved various issues of other refactorings:
- Renaming a module produce a new module in the original module's source dir
- Error for GenerateSignature when bindings have complex pattern left-hand-side
- Resolved ExtractBinding indentation conflicts with case alternatives
- Error for inline binding if the binding is not used
- Generate type signature: detect when the generated signature needs type variables fixed
- Elements now keep their indentation relative to parents when a binding is extracted out
- Load compilation options from cabal file
- Enable relative indentation for newly generated AST elements
- Major API changes for refactorings. Refactorings are defined on the pure syntax tree instead of the annotated one.
- Support for extensions:
TemplateHaskell
,RecordWildcards
,EmptyCase
- Support for transformation of multiple modules
- Updates for the Rename Definition refactoring
- Unified API for code generation
- Command-line executable
- Fixed performance-related issues.
- Extract binding now generates a local binding. Fewer values must be passed as arguments.
- Extract binding have better checks for when does it need to put values in parentheses.
- Extract binding creates functions with arguments from lambdas.
- Imported names are now present in the scope. Rename and extract binding is aware of them and prevents name clashes.