Skip to content

Flint Plugin

Rules for writing third-party Flint plugins and custom rules. Meta!
This plugin is provided in a standalone @flint.fyi/plugin-flint npm package.

Terminal window
npm install @flint.fyi/plugin-flint

Rules that find bugs and enforce good practices for Flint plugins and rules.

flint.config.ts
import { flint } from "@flint.fyi/plugin-flint";
import { defineConfig, ts } from "flint";
export default defineConfig({
use: [
{
files: ts.files.all,
rules: flint.presets.logical,
},
],
});

Additional logical rules that enforce best practices which are not always straightforward to implement. These rules are recommended for projects where a majority of developers are experienced with both JavaScript/TypeScript and writing plugins for a linter.

flint.config.ts
import { flint } from "@flint.fyi/plugin-flint";
import { defineConfig, ts } from "flint";
export default defineConfig({
use: [
{
files: ts.files.all,
rules: flint.presets.logicalStrict,
},
],
});

This preset’s rules are a superset of those in logical.

Rules that enforce consistent styling and best stylistic practices for most-to-all Flint plugins.

flint.config.ts
import { flint } from "@flint.fyi/plugin-flint";
import { defineConfig, ts } from "flint";
export default defineConfig({
use: [
{
files: ts.files.all,
rules: flint.presets.stylistic,
},
],
});
Implemented: 2 of 12 (16.6%)
Flint RulePreset
invalidCodeLinesReports cases for invalid code that isn't formatted across lines.logical
missingPlaceholderslogical
nodePropertyInCheckslogical
ruleDescriptionslogical
rulePresetslogical
ruleURLslogical
testCaseDuplicatesReports test cases that are identical to previous test cases.logical
testCaseOnlieslogical
unusedMessageIdslogical
unusedPlaceholderslogical
messagePhraseslogical (strict)
testShorthandsstylistic
Made with ❤️‍🔥 in Boston by Josh Goldberg and contributors.