UNPKG

pi-lens

Version:

Real-time code feedback for pi — LSP, linters, formatters, type-checking, structural analysis & booboo

31 lines (30 loc) • 1.22 kB
/** * Fact-rules runner — executes all registered FactRule instances against * the populated fact store. Each FactRule has its own appliesTo() guard * so this runner can be registered broadly; rules self-select. * * Severity semantics follow each rule's own diagnostic output. * Blocking rules surface on every write; warning-tier rules surface * only during full scans (blockingOnly === false). */ import { PRIORITY } from "../priorities.js"; import { evaluateRules } from "../fact-rule-runner.js"; const factRulesRunner = { id: "fact-rules", appliesTo: ["jsts", "python", "go", "rust", "ruby", "shell", "cmake"], priority: PRIORITY.GENERAL_ANALYSIS + 1, enabledByDefault: true, async run(ctx) { const diagnostics = evaluateRules(ctx); if (diagnostics.length === 0) { return { status: "succeeded", diagnostics: [], semantic: "none" }; } const hasBlocking = diagnostics.some((d) => d.semantic === "blocking" || d.severity === "error"); return { status: hasBlocking ? "failed" : "succeeded", diagnostics, semantic: hasBlocking ? "blocking" : "warning", }; }, }; export default factRulesRunner;