resyntax icon indicating copy to clipboard operation
resyntax copied to clipboard

A Racket refactoring engine

Results 150 resyntax issues
Sort by recently updated
recently updated
newest added

It should be possible to tell Resyntax to keep specific collections in sorted order. This could be done with a `keep-sorted` macro by making a Resyntax rule that looks for...

new lint
autopilot-candidate

Adds statistics mode for analyzing rule usefulness across large codebases. Addresses #28. ## Changes - Add `--output-summary-stats-only` flag to `resyntax analyze` command - When no `--refactoring-rule` filter: prints matches grouped...

See https://github.com/jackfirth/resyntax/blob/43f5fc6153b1d1dc9fff65a23391c4aac604fb22/default-recommendations/syntax-parse-shortcuts.rkt#L48 and https://github.com/benknoble/frosthaven-manager/pull/126

bug
existing lint
autopilot-candidate

The identifier-usage-analyzer was not counting identifier uses recorded in the `'disappeared-use` syntax property, which macros use to mark identifiers referenced during expansion but not appearing in the expanded code. ##...

The implementation of `identifier-usage-analyzer` currently doesn't see disappeared uses, as recorded by macros in [the `'disappeared-use` syntax property](https://docs.racket-lang.org/tools/Check_Syntax.html#(part._.Syntax_.Properties_that_.Check_.Syntax_.Looks_.For)). This test should pass: ```scheme #lang resyntax/test header: - #lang racket/base analysis-test:...

bug
existing lint
autopilot-candidate

No more than 3 should be open at a time.

Adds a refactoring rule to extract complex multi-line initialization expressions from named `let` loops into separate `define` bindings, improving readability by reducing nesting. ## Implementation - **Rule**: Extracts multi-line named...

### Rule summary Old scheme code that doesn't use internal definitions sometimes uses complex named `let` loops with very large expressions used as the initial values for the named `let`'s...

new lint
autopilot-candidate

Refactoring suggestions sometimes make sense generally but break intentional code patterns (e.g., visual symmetry in comparisons). Users currently must repeatedly ignore autofixer PRs for these cases. ## Changes - **Added...

Resyntax currently filters syntax objects during analysis by checking if their source locations fall within requested line ranges. As more of the codebase has moved to work with syntax paths,...