module

Ignorelint::FormatLinterRegistry

Registry that maps FileType values to their FormatLinter instances.

This is the bridge between the file-type system and the linting system. When the Linter needs format-specific checks, it calls FormatLinterRegistry.for(file_type) and gets back the appropriate adapter.

Many file types share the GitignoreStyleLinter because they follow gitignore semantics (e.g. .claudeignore, .stylelintignore, .rgignore). Only formats with unique semantics get their own linter.

The LINTERS hash is a private module constant — it is created once at program startup and reused for every file. Each value is a struct instance (no allocation overhead).

Class methods

for(type : FileType) : FormatLinter

Look up the format-specific linter for a given file type.

Returns NullFormatLinter.new for unrecognized types, so the caller always gets a valid object and never needs to check for nil.