-
-
Notifications
You must be signed in to change notification settings - Fork 685
Closed
Labels
A-LinterArea: linterArea: linterA-PluginsArea: pluginsArea: pluginsS-Help-wantedStatus: you're familiar with the code base and want to help the projectStatus: you're familiar with the code base and want to help the project
Description
Description
This issue tracks development of plugin configuration for the linter. This is merely about extending our configuration format and settings so that plugins can be configured. The actual loading or executing of plugins is considered out of scope here.
To see how this issue fits into our plugin efforts, please look at the overview here: #2463
How to Contribute
Everyone is welcome to contribute pieces here! If you'd like to tackle something, please leave a comment below this issue for which item(s) of the checklist below you'd like to pick up. We will create a separate issue and assign it to you to simplify tracking.
If you need any help or have any questions about our plugin efforts in Biome, feel free to ask in the #plugins
channel in Discord.
Tasks
- Add a
linter.rulePlugins
section to the configuration.- In a first iteration, this can probably be a single array of strings, each being the path to an individual plugin file.
- Implement plugin resolution.
- We probably want to use
oxc_resolver
so that package names can be used in place of direct paths to the plugins.
- We probably want to use
- Extend configuration to include rule options.
- We can probably take inspiration from how rule options are configured for built-in rules.
- Keep in mind that the JSON schema cannot verify options for plugins, unlike built-in rules where we know the types.
Discussion
- Do we want support for individual plugins that enable multiple rules? It seems unnecessary for a first release, but there might be advantages to supporting this. A downside would be the configuration would become more complex if we need to be able to enable/disable rules per plugin.
Metadata
Metadata
Assignees
Labels
A-LinterArea: linterArea: linterA-PluginsArea: pluginsArea: pluginsS-Help-wantedStatus: you're familiar with the code base and want to help the projectStatus: you're familiar with the code base and want to help the project