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

Linter Product Plan and Progress #481

Open
Boshen opened this issue Jun 26, 2023 · 22 comments
Open

Linter Product Plan and Progress #481

Boshen opened this issue Jun 26, 2023 · 22 comments
Labels
A-linter Area - Linter

Comments

@Boshen
Copy link
Member

Boshen commented Jun 26, 2023

Product Plan

Create a linter that is

  • zero-config
  • only checks for correctness errors (code that is outright wrong or useless) - definition from Rust Clippy

See also: Oxlint General Availability Annoucement

Plugins

For plugins, the goal is to port most of the popular ones. The community has implemented 270 rules and the list is growing. Any form of contribution is much appreciated!

Tasks

Contributing

oxc-project.github.io contains both learning materials and contribution guides:

Note

Oxlint does not implement any stylistic / formatting rules due to

  • eslint removed them from the core.
  • all stylistic rules are moved to the https://eslint.style community.
@Boshen Boshen pinned this issue Jun 26, 2023
@Boshen Boshen unpinned this issue Oct 26, 2023
@Boshen Boshen pinned this issue Oct 26, 2023
@Boshen Boshen changed the title Linter Roadmap Linter Product Plan Oct 26, 2023
@manzt

This comment was marked as outdated.

@Boshen Boshen closed this as completed Jan 13, 2024
@Boshen Boshen unpinned this issue Jan 13, 2024
@Boshen Boshen reopened this Jan 13, 2024
@Boshen Boshen pinned this issue Jan 13, 2024
@roman-petrov
Copy link

Any plans to add eslint-plugin-perfectionist rules? It is becoming quite popular, 1.5 K stars. Just looking forward to fully migrate to amazing and promising OXC stack!

@Boshen
Copy link
Member Author

Boshen commented Jan 26, 2024

Any plans to add eslint-plugin-perfectionist rules? It is becoming quite popular, 1.5 K stars. Just looking forward to fully migrate to amazing and promising OXC stack!

This rule fits well in the formatter but not the linter. Its documentation says "I love Prettier. However, this is not his area of responsibility." But we are an integrated toolchain, things differ a little :-)

So the answer to your question "Any plans to add eslint-plugin-perfectionist rules" is currently no, but it's doable once we have more manpower and also the formatter ready.

@Boshen Boshen changed the title Linter Product Plan Linter Product Plan and Progress Jan 26, 2024
@roman-petrov
Copy link

So the answer to your question "Any plans to add eslint-plugin-perfectionist rules" is currently no, but it's doable once we have more manpower and also the formatter ready.

Thanks! Hopefully after the OXC linter core will be ready, we will be able to use some AI tools to convert ESLint linters to OXC/Rust :)

@alxpsr
Copy link

alxpsr commented Jan 27, 2024

Appreciate your efforts. Your tool is incredible. Looking forward to use it.
What about this plugins:

  1. @angular-eslint
  2. eslint-plugin-unused-imports
  3. @nrwl/eslint-plugin-nx
  4. eslint-plugin-filename-rules

Ready for testing to help you implement this (since i dont know Rust yet ;D)
Thanks in advance

@matthew-dean
Copy link

matthew-dean commented Feb 12, 2024

I would love love it if eslint-plugin-vue got added. Vue has to employ unique parsing for SFCs.

@heyitsarpit
Copy link

heyitsarpit commented May 24, 2024

very useful plugin for react dev time performance - eslint-plugin-react-refresh

@DonIsaac
Copy link
Contributor

#4445

@tobiasdiez
Copy link

Graphql support would be nice as well: https://the-guild.dev/graphql/eslint/rules

tobiasdiez added a commit to JabRef/JabRefOnline that referenced this issue Oct 2, 2024
<!--
☝️ PR title should follow conventional commits
(https://conventionalcommits.org).
In particular, the title should start with one of the following types:

- docs: 📖 Documentation (updates to the documentation or readme)
- fix: 🐞 Bug fix (a non-breaking change that fixes an issue)
- feat: ✨ New feature/enhancement (a non-breaking change that adds
functionality or improves existing one)
- feat!/fix!: ⚠️ Breaking change (fix or feature that would cause
existing functionality to change)
- chore: 🧹 Chore (updates to the build process or auxiliary tools and
libraries)
-->

### 🔗 Linked issue

<!-- If it resolves an open issue, please link the issue here. For
example "Resolves #123" -->

### 📚 Description

Doesn't support super many rules yet, but is amazingly fast (and easier
to config). We can investigate to remove eslint once typescript, vue and
graphql rules are supported. Refs
oxc-project/oxc#481

<!-- Describe your changes in detail -->
<!-- Why is this change required? What problem does it solve? -->
@OskarLebuda
Copy link

Have you consider to add support for eslint-plugin-airbnb? There are a lot of useful rules that a lot of project uses.

@matschik
Copy link

matschik commented Oct 6, 2024

I would love if eslint-plugin-svelte got added. Svelte has to employ unique parsing for *.svelte files.

@xaddict
Copy link

xaddict commented Oct 8, 2024

oxc looks nice. I have copied over all rules from my .eslintrc.json file. Will there be a future addition where oxlint will log which rules aren't supported from the rules property? Possibly because some of them belong in the formatter category instead of the linter one?

@pumano
Copy link
Contributor

pumano commented Oct 12, 2024

@Boshen @DonIsaac I suggest to add to tasks from first post one column to table with "fixer" yes/no.

because rule may exist, but fixer not implemented for example and that case is only found problems, but not help to fix it, which eslint did. That "fixer" column help to understand support of fixers for rules

@TheElegantCoding
Copy link

I will like to see @stylistic/eslint-plugin
, eslint-plugin-tailwindcss And also eslint-plugin-astro

@MattisAbrahamsson
Copy link

Would be great to see eslint-plugin-react-compiler make it into oxlint, this is the slowest rule in our project right now

@kbrilla
Copy link

kbrilla commented Nov 14, 2024

What about nrwl/nx boundries plugin?

@pumano
Copy link
Contributor

pumano commented Nov 14, 2024

What about nrwl/nx boundries plugin?

I would love to dig into it, to check how they implement it, I personally need it too)

UPD: enforce-module-boundaries use underlying nx graph API, which is accessible inside eslint rule from @nx/devkit package. Currently not possible to use that API from rust, but NX team have plans to move their core to rust in 2025. After that happened we can try back to understand it's possible or not, or try to propose feature request to nx team.

@jozefvodicka
Copy link

Also NestJS related:
@darraghor/eslint-plugin-nestjs-typed
eslint-plugin-nestjs

and Nuxt related
@nuxt/eslint - Nuxt module generating project-aware ESLint config
@nuxt/eslint-config - Static ESLint Config
@nuxt/eslint-plugin - ESLint Plugin

@Spoutnik97
Copy link
Contributor

When will oxlint considered as stable and usable in production ?
When all the eslint recommended rules of the above categories will be implemented ?

@DonIsaac
Copy link
Contributor

When will oxlint considered as stable and usable in production ?

When all the eslint recommended rules of the above categories will be implemented ?

Oxlint is usable right now.

It's subject to further breaking changes but it's quite ready for production use.

@Spoutnik97
Copy link
Contributor

The website alerts :
"

At the current stage, oxlint is not intended to fully replace ESLint; it serves as an enhancement when ESLint's slowness becomes a bottleneck in your workflow.

We recommend running oxlint before ESLint in your lint-staged or CI setup for a quicker feedback loop, considering it only takes a few seconds to run on large codebases.
"

When is it planned oxlint could replace eslint ? (Except for custom plugins, pr specific ones)

@robw-mercury
Copy link

robw-mercury commented Dec 18, 2024

Are there plans to support a JS config file, ideally that follows some of the ESLint flat config patterns? Our repos are using the flat config and it would be very helpful to share some config and settings between ESLint and OXLint.

Thank you for creating this amazing tool. We're looking forward to using all of the Oxc tools as they become available.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-linter Area - Linter
Projects
None yet
Development

No branches or pull requests