Replies: 11 comments 101 replies
-
Use case: FormatterDo you think Biome's formatter should support plugins? If so, what kind of things you want to use it for? Please keep in mind we cannot format anything we cannot parse. Does that mean our parser should support plugins too? Speak your mind! |
Beta Was this translation helpful? Give feedback.
-
Use case: LinterDo you think Biome's linter should support plugins? If so, do you have specific rules in mind? What kind of API do you think we could use to report diagnostics? How would we support fixers? Let us know! |
Beta Was this translation helpful? Give feedback.
-
Use case: TransformerDo you think Biome's upcoming transformer functionality (see roadmap) should support plugins? Or maybe it should even be built around plugins from the ground up? Your ideas are appreciated! |
Beta Was this translation helpful? Give feedback.
-
Use case: Query engineLinter and Formatter are too task-specific. What underlies each of them is querying, and querying is a desirable ability even in the absence of the need to change formatting or detect known mistakes. If Biome is the thing tasked with understanding conceptual overlays on your code, I would definitely hope that I respond to queries without requiring me to define a lint rule or a formatter plugin. |
Beta Was this translation helpful? Give feedback.
-
Use case: Codemodhttps://github.com/facebookarchive/codemod Codemods can be used to help migrate codebases or adopt new patterns. |
Beta Was this translation helpful? Give feedback.
This comment has been hidden.
This comment has been hidden.
-
Use Case: Tailwind Class SortingPrettier just had an update that handles tailwind class sorting, which would be a nice addition to biomejs. https://tailwindcss.com/blog/automatic-class-sorting-with-prettier |
Beta Was this translation helpful? Give feedback.
-
In parallel to the work @arendjr is doing on enabling GritQL in Biome, I've also started working on a TypeScript interface for the Grit engine. I think this will likely end up being very useful to Biome plugins because it allows logic to be written/compose in TypeScript while the actual processing happens mostly in Rust. I'd love feedback from the Biome community on the API before I go too far into implementation: getgrit/gritql#403 |
Beta Was this translation helpful? Give feedback.
-
I think Rust plugins should be consider as well, to avoid getting to the same position we are currently in with slow eslint plugins |
Beta Was this translation helpful? Give feedback.
-
I'm not entirely convinced on the idea of Biome plugins. I realize that might be a controvesial take, but hear me out. :D Many "ESLint refugees" found Biome appealing because of its simplicity, performance, and ease of use largely thanks to "batteries included" approach. ESLint is not a pleasant tool to use. The maintainers were met with a rather mixed community response regarding the introduction of Flat config, which although may have had good intentions, resulted in even more burden on developers' backs. With all due respect to the ESLint maintainers; the switch to Flat config was communicated literally years before it happened, it was widely discussed, and it was a much needed change. But it was "much needed" because of what ESLint has become over the years - a highly configurable, extensible, but also an incredibly complex linting tool. The community just never stops wanting more, and ESLint maintainers, were not in a position to say no: ESLint without its plugins is completely useless nowadays. I would not like it for Biome to repeat the same story. With the introduction of plugins:
|
Beta Was this translation helpful? Give feedback.
-
I think Linting is the primary place, where some extra rules can be easier to add. But beyond that, the most important would actually be full language support. Or at least these Framework things, like Svelte and Vue or Astro. Being able to inform Biome how to treat these kinds of "multi language" files. I think favoring WASM as the starting point would be smart, with JS/TS simple as a second. Like using a direct Rust JS Engine that may lack many features, but can process the AST. |
Beta Was this translation helpful? Give feedback.
-
Update 2: Plugins are coming to Biome 2.0: #4428
Update: A follow-up RFC, based on the results and discussions here, has been presented: #1762
As many of you are aware, Biome's roadmap for 2024 includes the goal to develop a plugin system. But as the post mentioned, we don't yet know what those plugins will look like, what use cases they will cover and/or what technology we will use to implement them. What we do know, is there are plenty of ideas out there :)
So rather than proposing a specific solution, this RFC is intended to gather your input: What functionality do you miss in Biome, and do you think a plugin might help to cover it? What are you looking forward to in plugins the most? What will make or break our plugin system in your mind? This is the place to speak up!
I have attached a poll to take people's votes on preferred technology choices, and I will also create a few threads to help guide the discussion around various use cases. If you think anything is missing, feel free to create your own! You can also upvote use cases you think should be prioritized.
646 votes ·
Beta Was this translation helpful? Give feedback.
All reactions