Nim Lint is a planned JavaScript and TypeScript linter with its own rule engine, diagnostic format, configuration, CLI, and safe autofix pipeline. The goal is a small, understandable tool whose rules explain why they report a problem and whose output works equally well for people and editors.
Status: design stage. This repository does not yet contain a runnable linter or a published package. The commands below describe the target interface.
- Start with a useful baseline for
.js,.jsx,.ts, and.tsxfiles. - Make each diagnostic precise: rule ID, severity, location, explanation, and optional safe fix.
- Let projects configure or disable rules without writing code.
- Keep parsing, rule execution, fixing, and output as separate parts so the engine can evolve without changing the public rule API every time.
This is an independent linter, not an ESLint configuration package. The first version may use a maintained parser to obtain an AST; parsing a language and owning the lint engine are different responsibilities.
nim-lint .
nim-lint src --format json
nim-lint src --fixThe first release should include a small set of reliable rules, for example
no-debugger, no-unreachable, and no-duplicate-imports. Rule names and CLI
flags are proposals until the first implementation is merged.
Nim Lint is a standalone developer tool. It can eventually provide recommended
rules for nimjs and ui, but neither project should be required to use it.
- Architecture: pipeline, module boundaries, and data contracts.
- Roadmap: implementation sequence and release criteria.
- AI task briefs: ready-to-use, scoped implementation prompts.
- Agent instructions: rules for automated contributors.
Start with the parser and diagnostic contract in the architecture document, then implement one end-to-end rule. A usable vertical slice is more valuable than a large list of rule stubs.