arendjr
Joined 13 years ago
Joined 13 years ago
We are now in the process of implementing TypeScript-like inference (not full type checking!) that allows us to enable type-informed lint rules. This is similar to typescript-eslint except instead of using tsc we attempt to implement the inference ourselves.
This post describes our progress thus far, with a detailed overview of our type architecture.
With this partnership, we aim to develop TypeScript-compatible type inference that works out of the box for use in our lint rules.
Biome is an integrated linter and formatter with support for JavaScript, TypeScript, CSS, and more.
Highlights of the release:
* Plugins: You can write custom lint rules using GritQL.
* Domains: Domains help to group lint rules by technology, framework, or well, domain. Thanks to domains, your default set of recommended lint rules will only include those that are relevant to your project.
* Multi-file analysis: Lint rules can now apply analysis based on information from other files, enabling rules such as noImportCycles.
* `noFloatingPromises`: Still a proof-of-concept, but our first type-aware lint rule is making an appearance.
* Our Import Organizer has seen a major revamp.
* Assists: Biome Assist can provide actions without diagnostics, such as sorting object keys.
* Improved suppressions: Suppress a rule in an entire file using // biome-ignore-all, or suppress a range using // biome-ignore-start and // biome-ignore-end.
* HTML formatter: Still in preview, this is the first time we ship an HTML formatter.
* Many, many, fixes, new lint rules, and other improvements.
As for Heraclitus vs. Plato, I think the lesson I’m trying to teach is to not pick a side until you understand each position’s implications and which of those might be more beneficial to the problem at hand ;)
In all seriousness though, you do hit a great point. The moment you stop being embarrassed about your mistakes and set your ego aside, is the moment that you can truly start learning from those same mistakes. At some point it even becomes the only way you can move forward, unless you want to stay boxed inside a niche of expertise defined by your own self-set boundaries.
Indeed if you pass by value/use immutability where feasible, you already avoid most of the issues I’m warning against, so it sounds like you found a sensible way to apply it while avoiding the pitfalls.
> If I have to give a taxi driver a jerrycan full of petrol, that's the definition of a leaky abstraction... Possibly literally in this case.
:D
Only tested on Linux for now, though Zed's support for other platforms should be (mostly?) intact.