jackfirth / jackfirth/resyntax

Targeted suggestion suppression

Open
#436 0 comments 1 reaction 1 assignee View on GitHub

Nobody has claimed this yet.

autopilot-candidate enhancement existing lint
Dominant language
Racket
Stars
70
Forks
11
PR merge metrics
No merged PRs in 30d

Description

Sometimes a suggestion from Resyntax makes sense generally, but is unhelpful in a specific context. See this comment for an example. Currently, this situation requires users to repeatedly ignore Autofixer pull requests that try to fix the issue they don't care about. Usually in this situation I prefer to just get rid of the suggestion entirely, or otherwise rework it so that it only targets the high-value cases. I don't see a way to do that with the linked issue, since it's very dependent on the surrounding context.

As a last resort, Resyntax may need to provide a way to handle these sorts of issues. I can think of a few approaches:

  • Make the autofixer somehow magically "just know" that a suggestion shouldn't be made because it's been made before and was disregarded.
  • Add a way to annotate code that suppresses refactoring rules for that code alone, e.g. (resyntax-suppress zero-comparison-to-positive? (some-code ...)).
  • Add a way to annotate packages or collections to suppress refactoring rules for that entire package or collection, e.g. in an info.rkt file.
  • Add a way for refactoring rules to inspect their surrounding context, so that the zero-comparison-to-positive? rule can see that a > or < form is being used alongside a = form like in the example from the comment above. Then that rule could silence itself in cases where it would break "visual symmetry".

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.