Skip to content

☂️ Linter plugin configuration #2458

@arendjr

Description

@arendjr

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.
  • 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

No one assigned

    Labels

    A-LinterArea: linterA-PluginsArea: pluginsS-Help-wantedStatus: you're familiar with the code base and want to help the project

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions