resyntax
resyntax copied to clipboard
A Racket refactoring engine
Resyntax can be asked to only make suggestions on specific lines and line ranges, as opposed to whole files. There are various places in Resyntax's core engine where this is...
Detects manual file I/O patterns using `call-with-output-file` with `display`/`displayln` and suggests the more concise `display-to-file`/`display-lines-to-file` functions. ## Changes - **Two new refactoring rules in `file-io-suggestions.rkt`:** - `manual-display-to-file`: `call-with-output-file` + `display`...
### Rule summary Code using `call-with-output-file` and `display` / `displayln` can use `display-to-file` / `display-lines-to-file` instead. ### Test case ```scheme #lang resyntax/test test: "original code should be refactorable to new...
Expansion analyzers can take excessive time on large files. This adds load tests to catch performance regressions. ## Changes - **`test/analyzer-load-test.rkt`**: Load tests for all four expansion analyzers (`identifier-usage`, `variable-mutability`,...
Expansion analyzers can easily take much longer than expected on large files. There should be a load test for each analyzer that asserts that the analyzer is capable of analyzing...
Implementing support for warning-only refactoring rules (rules that can warn without fixing). **Plan:** - [x] Explore codebase structure - [x] Extend `define-refactoring-rule` to support warning-only rules - [x] Update `refactoring-rule`...