Skip to content

chore: small tweaks to add a few missing rules#13

Open
ScriptedAlchemy wants to merge 315 commits intomainfrom
cursor/remaining-typescript-eslint-rules-b4ce
Open

chore: small tweaks to add a few missing rules#13
ScriptedAlchemy wants to merge 315 commits intomainfrom
cursor/remaining-typescript-eslint-rules-b4ce

Conversation

@ScriptedAlchemy
Copy link
Copy Markdown
Owner

@ScriptedAlchemy ScriptedAlchemy commented Feb 9, 2026

Summary

This PR is the integration branch for the TypeScript ESLint porting/parity effort in rslint.

It includes:

  • Porting the remaining missing @typescript-eslint rules in Go.
  • Registering those rules in configuration.
  • Adding/updating Go unit tests and rule docs for the added rules.
  • Enabling and hardening many upstream rstest suites and snapshots.
  • Supporting CI/dogfooding stabilization updates (including warning-level dogfood overrides for currently noisy rules and CI timeout/format/spellcheck fixes).

Rules added on this branch (vs main)

  • @typescript-eslint/explicit-module-boundary-types
  • @typescript-eslint/max-params
  • @typescript-eslint/method-signature-style
  • @typescript-eslint/naming-convention
  • @typescript-eslint/no-confusing-non-null-assertion
  • @typescript-eslint/no-deprecated
  • @typescript-eslint/no-dupe-class-members
  • @typescript-eslint/no-dynamic-delete
  • @typescript-eslint/no-empty-object-type
  • @typescript-eslint/no-import-type-side-effects
  • @typescript-eslint/no-invalid-this
  • @typescript-eslint/no-loop-func
  • @typescript-eslint/no-magic-numbers
  • @typescript-eslint/no-redeclare
  • @typescript-eslint/no-restricted-imports
  • @typescript-eslint/no-restricted-types
  • @typescript-eslint/no-shadow
  • @typescript-eslint/no-type-alias
  • @typescript-eslint/no-unnecessary-condition
  • @typescript-eslint/no-unnecessary-parameter-property-assignment
  • @typescript-eslint/no-unnecessary-qualifier
  • @typescript-eslint/no-unnecessary-type-constraint
  • @typescript-eslint/no-unnecessary-type-conversion
  • @typescript-eslint/no-unnecessary-type-parameters
  • @typescript-eslint/no-unsafe-declaration-merging
  • @typescript-eslint/no-unsafe-function-type
  • @typescript-eslint/no-unused-expressions
  • @typescript-eslint/no-unused-private-class-members
  • @typescript-eslint/no-use-before-define
  • @typescript-eslint/no-useless-constructor
  • @typescript-eslint/no-wrapper-object-types
  • @typescript-eslint/parameter-properties
  • @typescript-eslint/prefer-destructuring
  • @typescript-eslint/prefer-enum-initializers
  • @typescript-eslint/prefer-find
  • @typescript-eslint/prefer-for-of
  • @typescript-eslint/prefer-function-type
  • @typescript-eslint/prefer-includes
  • @typescript-eslint/prefer-literal-enum-member
  • @typescript-eslint/prefer-namespace-keyword
  • @typescript-eslint/prefer-nullish-coalescing
  • @typescript-eslint/prefer-optional-chain
  • @typescript-eslint/prefer-regexp-exec
  • @typescript-eslint/prefer-string-starts-ends-with
  • @typescript-eslint/prefer-ts-expect-error
  • @typescript-eslint/sort-type-constituents
  • @typescript-eslint/strict-boolean-expressions
  • @typescript-eslint/typedef

Current status

  • Large portions of upstream parity suites are enabled and passing.
  • Remaining parity-heavy suites are being iteratively hardened where still needed.
  • Local dogfooding currently passes with selected noisy rules set to warning in root rslint.json.

@cursor
Copy link
Copy Markdown

cursor bot commented Feb 9, 2026

Cursor Agent can help with this pull request. Just @cursor in comments and I'll start working on changes in this branch.
Learn more about Cursor Agents

@changeset-bot
Copy link
Copy Markdown

changeset-bot bot commented Feb 9, 2026

⚠️ No Changeset found

Latest commit: 6b9bb3f

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

cursoragent and others added 28 commits February 10, 2026 00:39
Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
cursoragent and others added 12 commits February 13, 2026 05:23
Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
Re-enable previously skipped test scenarios and tighten rule-tester message-id matching so missing behavior is no longer masked. Update the affected TypeScript rules to satisfy those restored cases and keep CLI format checks strict without disabling rules.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
Move API language-option matching/merging onto shared config helpers, harden no-deprecated matching away from regex-heavy import detection, and restore out-of-scope files to main-equivalent content to reduce review noise.

Co-authored-by: Cursor <cursoragent@cursor.com>
Add stronger no-deprecated import/allow-path coverage and reason checks, enforce output assertions in the rule-tester autofix path, and include the newly enabled strict-void-return/no-useless-default-assignment suite wiring.

Co-authored-by: Cursor <cursoragent@cursor.com>
Replace the dedicated member-ordering variant suite files with new strict-void-return and no-useless-default-assignment rule implementations and parity test wiring so the branch tracks the active rule port scope.

Co-authored-by: Cursor <cursoragent@cursor.com>
Revert low-value package and harness churn, restore deleted member-ordering variant suites, and keep the checker shim change minimal to required behavior. Also correct ban-ts-comment multiline parsing and consistent-type-assertions precedence so rule diagnostics stay parity-consistent.

Co-authored-by: Cursor <cursoragent@cursor.com>
Treat Foo[] index-signature value types as reportable instead of circular and update rule tests to match the migrated upstream parity cases.

Co-authored-by: Cursor <cursoragent@cursor.com>
Avoid calling node.Text on unsupported declaration-name nodes in no-deprecated so destructuring patterns no longer panic during parity runs, and make the CLI github-format test assert required diagnostics without assuming no additional annotations.

Co-authored-by: Cursor <cursoragent@cursor.com>
@ramicats
Copy link
Copy Markdown

very small tweaks indeed!

ScriptedAlchemy and others added 3 commits February 13, 2026 13:21
Include all missing member-ordering and no-unused-vars parity artifacts in rstest, and resolve upstream suite aliases to canonical rule IDs so imported test files execute against the intended rslint rule.

Co-authored-by: Cursor <cursoragent@cursor.com>
…overage

Add autofix behavior and stronger invalid-case coverage for no-useless-default-assignment in Go tests, align JS parity expectations, and introduce missing no-loss-of-precision Go tests to close the reported coverage hole.

Co-authored-by: Cursor <cursoragent@cursor.com>
Restore JS output assertions and Go coverage for no-useless-default-assignment so both parity layers validate autofix behavior. Update core diagnostic typing with optional fix metadata to align the RuleTester fix pipeline.

Co-authored-by: Cursor <cursoragent@cursor.com>
Repository owner deleted a comment from NiHaiden Feb 13, 2026
Use UTF-8 byte lengths for IPC framing and align apply-fixes handling with upstream-style single-pass semantics to avoid corrupted or unstable outputs. Also add no-import-type-side-effects autofix support with matching Go test assertions to restore parity expectations.

Co-authored-by: Cursor <cursoragent@cursor.com>
Repository owner deleted a comment from tokiory Feb 14, 2026
Improve rule parity for the newly added TypeScript rules by tightening edge-case handling in autofixes and option parsing. This keeps fixes stable across repeated passes and aligns diagnostics/output expectations with the rule test harness.

Co-authored-by: Cursor <cursoragent@cursor.com>
@ScriptedAlchemy ScriptedAlchemy changed the base branch from cursor/typescript-eslint-rules-port-3ef1 to main February 14, 2026 08:49
Copy link
Copy Markdown

@pkasarda pkasarda left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

…script-eslint-rules-b4ce

# Conflicts:
#	internal/config/config.go
#	internal/plugins/typescript/rules/prefer_namespace_keyword/prefer_namespace_keyword.go
#	internal/plugins/typescript/rules/prefer_namespace_keyword/prefer_namespace_keyword.md
#	internal/plugins/typescript/rules/prefer_namespace_keyword/prefer_namespace_keyword_test.go
#	internal/plugins/typescript/rules/prefer_string_starts_ends_with/prefer_string_starts_ends_with.go
#	packages/rslint-test-tools/rstest.config.mts
#	packages/rslint-test-tools/tests/typescript-eslint/rules/__snapshots__/prefer-namespace-keyword.test.ts.snap
#	packages/rslint-test-tools/tests/typescript-eslint/rules/__snapshots__/prefer-string-starts-ends-with.test.ts.snap
#	packages/rslint/src/node.ts
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants