Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enhancement: [naming-convention] Add "override" modifier support #5310

Closed
4 tasks done
eliasm307 opened this issue Jul 5, 2022 · 0 comments · Fixed by #5610
Closed
4 tasks done

Enhancement: [naming-convention] Add "override" modifier support #5310

eliasm307 opened this issue Jul 5, 2022 · 0 comments · Fixed by #5610
Labels
accepting prs Go ahead, send a pull request that resolves this issue enhancement: plugin rule option New rule option for an existing eslint-plugin rule package: eslint-plugin Issues related to @typescript-eslint/eslint-plugin

Comments

@eliasm307
Copy link
Contributor

eliasm307 commented Jul 5, 2022

Before You File a Proposal Please Confirm You Have Done The Following...

My proposal is suitable for this project

  • I believe my proposal would be useful to the broader TypeScript community (meaning it is not a niche proposal).

Link to the rule's documentation

https://typescript-eslint.io/rules/naming-convention/#how-does-the-rule-automatically-order-selectors

Description

The rule currently supports a few class specific modifiers like 'static'|'public'|'protected'|'private'|'abstract' however it does not support override.

This would be useful in some cases, for example if you dont want private/protected class members to have a leading or trailing underscore in your code base but would like to allow them if you are extending third-party or legacy code class members with leading or trailing underscores where you cannot change them to suite the rule.

Currently, the above requires a lot of eslint ignore comments if the naming convention rule is to be strict (ie "error" level) or softening the rule to warnings.

Fail

// fail depends on what the naming convention is, but the following should trigger a selector with an `override` modifier

class Foo extends Bar {

    protected override attribute = '';

    protected override method() {}

}

Pass

// pass depends on what the naming convention is, but the following should NOT trigger a selector with an `override` modifier
class Foo extends Bar {

    protected attribute = '';

    protected method() {}

}

Additional Info

No response

@eliasm307 eliasm307 added enhancement: plugin rule option New rule option for an existing eslint-plugin rule package: eslint-plugin Issues related to @typescript-eslint/eslint-plugin triage Waiting for maintainers to take a look labels Jul 5, 2022
@bradzacher bradzacher added accepting prs Go ahead, send a pull request that resolves this issue and removed triage Waiting for maintainers to take a look labels Jul 5, 2022
eliasm307 added a commit to eliasm307/typescript-eslint that referenced this issue Sep 6, 2022
eliasm307 added a commit to eliasm307/typescript-eslint that referenced this issue Sep 7, 2022
eliasm307 added a commit to eliasm307/typescript-eslint that referenced this issue Sep 7, 2022
eliasm307 added a commit to eliasm307/typescript-eslint that referenced this issue Sep 7, 2022
JoshuaKGoldberg added a commit that referenced this issue Nov 7, 2022
…nd "async" modifiers (#5310) (#5610)

* feat(eslint-plugin): [naming-convention] add support for "override" and "async" modifiers (#5310)

* apply pr feedback ie remove test case util, split tests by type, remove abstract getter change, remove override for variable selector in docs

* remove async parameter logic which is impossible

Co-authored-by: Josh Goldberg <git@joshuakgoldberg.com>
crapStone pushed a commit to Calciumdibromid/CaBr2 that referenced this issue Nov 15, 2022
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint) | devDependencies | minor | [`5.42.1` -> `5.43.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/5.42.1/5.43.0) |
| [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint) | devDependencies | minor | [`5.42.1` -> `5.43.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/5.42.1/5.43.0) |

---

### Release Notes

<details>
<summary>typescript-eslint/typescript-eslint (@&#8203;typescript-eslint/eslint-plugin)</summary>

### [`v5.43.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#&#8203;5430-httpsgithubcomtypescript-eslinttypescript-eslintcomparev5421v5430-2022-11-14)

[Compare Source](typescript-eslint/typescript-eslint@v5.42.1...v5.43.0)

##### Bug Fixes

-   **eslint-plugin:** \[no-shadow] handle false positives on generics and parameters ([#&#8203;5902](typescript-eslint/typescript-eslint#5902)) ([769e8c8](typescript-eslint/typescript-eslint@769e8c8))
-   **eslint-plugin:** \[promise-function-async] handle keyword token ([#&#8203;5907](typescript-eslint/typescript-eslint#5907)) ([f25a94f](typescript-eslint/typescript-eslint@f25a94f))

##### Features

-   **eslint-plugin:** \[consistent-type-imports] support fixing to inline types ([#&#8203;5050](typescript-eslint/typescript-eslint#5050)) ([75dcdf1](typescript-eslint/typescript-eslint@75dcdf1))
-   **eslint-plugin:** \[naming-convention] add support for "override" and "async" modifiers ([#&#8203;5310](typescript-eslint/typescript-eslint#5310)) ([#&#8203;5610](typescript-eslint/typescript-eslint#5610)) ([c759da1](typescript-eslint/typescript-eslint@c759da1))
-   **eslint-plugin:** \[prefer-optional-chain] support suggesting `!foo || !foo.bar` as a valid match for the rule ([#&#8203;5594](typescript-eslint/typescript-eslint#5594)) ([923d486](typescript-eslint/typescript-eslint@923d486))

#### [5.42.1](typescript-eslint/typescript-eslint@v5.42.0...v5.42.1) (2022-11-07)

##### Bug Fixes

-   **eslint-plugin:** isTypeReadonly stack overflow ([#&#8203;5875](typescript-eslint/typescript-eslint#5875)) ([#&#8203;5876](typescript-eslint/typescript-eslint#5876)) ([2d9a33c](typescript-eslint/typescript-eslint@2d9a33c))

</details>

<details>
<summary>typescript-eslint/typescript-eslint (@&#8203;typescript-eslint/parser)</summary>

### [`v5.43.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#&#8203;5430-httpsgithubcomtypescript-eslinttypescript-eslintcomparev5421v5430-2022-11-14)

[Compare Source](typescript-eslint/typescript-eslint@v5.42.1...v5.43.0)

**Note:** Version bump only for package [@&#8203;typescript-eslint/parser](https://github.com/typescript-eslint/parser)

#### [5.42.1](typescript-eslint/typescript-eslint@v5.42.0...v5.42.1) (2022-11-07)

**Note:** Version bump only for package [@&#8203;typescript-eslint/parser](https://github.com/typescript-eslint/parser)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these updates again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4yNC4wIiwidXBkYXRlZEluVmVyIjoiMzQuMjQuMSJ9-->

Co-authored-by: cabr2-bot <cabr2.help@gmail.com>
Reviewed-on: https://codeberg.org/Calciumdibromid/CaBr2/pulls/1639
Reviewed-by: Epsilon_02 <epsilon_02@noreply.codeberg.org>
Co-authored-by: Calciumdibromid Bot <cabr2_bot@noreply.codeberg.org>
Co-committed-by: Calciumdibromid Bot <cabr2_bot@noreply.codeberg.org>
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Nov 17, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
accepting prs Go ahead, send a pull request that resolves this issue enhancement: plugin rule option New rule option for an existing eslint-plugin rule package: eslint-plugin Issues related to @typescript-eslint/eslint-plugin
Projects
None yet
2 participants