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

Consider this code: ```scheme (define (f x) (do-some-stuff) (let ([y (whatever)]) (do-more-stuff))) ``` This is what the command line UI currently outputs: ``` Internal definitions are recommended instead of let...

enhancement

Rules produce _syntax replacements_. The `syntax-replacement?` type should be documented. This will also help me keep my head around the underlying data model that `resyntax` operates on.

documentation

At present, `resyntax` relies on the undocumented and deeply magic `current-expand-observe` parameter (intended for the macro stepper) to apply refactoring rules to visited syntax objects. This has a few problems:...

enhancement

It's hard to tell whether a rule will actually be useful. It should be possible to run rules over a large corpus of existing code and gather statistics about how...

enhancement
autopilot-candidate

The designer of a rule may know that the rhs of its rule may contain code that can be simplified. Then, if applying all existing rules is too expensive (though...

enhancement

Imagine someone writes the following rule: ```racket (define-refactoring-rule smurf #:literals (if begin) [(smurf x x y z) (if x y (void))]) ``` but, unbeknownst to the someone above, the following...

enhancement

The bare bones of `resyntax` are working, though [not very well](https://github.com/jackfirth/resyntax/issues?q=is%3Aissue+is%3Aopen+label%3Abug). It can refactor code by using [refactoring rules](https://github.com/jackfirth/resyntax/blob/master/refactoring-rule.rkt) written with the `syntax-parse` macro system like so: ```scheme (define-refactoring-rule vector-immutable/c-migration...

documentation
help wanted
good first issue

Many contracts use `->*` with `#:rest` to contract a function with a rest argument. However, `->*` is difficult to read. Since Racket 6.5, `->` supports `...`, which can be used...

new lint

When a library wants to rename an identifier, it has to keep the old name around to avoid breaking backward compatibility. This is usually achieved with `rename-out`. It would be...

new lint

The cause of #298 was improper handling of line range filtering in `source-analyze`. To avoid similar issues, I ought to augment `#lang resyntax/testing/refactoring-test` with the ability to specify that only...

testing