# ls-lint
An extremely fast directory and filename linter - Bring some structure to your project filesystem
[](https://github.com/loeffel-io/ls-lint/actions/workflows/bazel.yml)
[](https://goreportcard.com/report/github.com/loeffel-io/ls-lint)


- Minimal setup with simple rules managed in one single or multiple `.ls-lint.yml` files
- Works for directory and file names - all extensions supported - full unicode support
- Incredibly fast - lints thousands of files and directories in milliseconds
- Support for Windows, MacOS and Linux + [NPM Package](https://www.npmjs.com/package/@ls-lint/ls-lint) + [GitHub Action](https://github.com/ls-lint/action) + [Homebrew](https://formulae.brew.sh/formula/ls-lint) + Docker
- Trusted by [Renovate](https://github.com/renovatebot/renovate/blob/main/.ls-lint.yml), [Terser](https://github.com/terser/terser/blob/master/.ls-lint.yml) and many more
- Almost zero third-party dependencies (only [go-yaml](https://github.com/go-yaml/yaml)
and [doublestar](https://github.com/bmatcuk/doublestar))
## Documentation
The full documentation can be found at [ls-lint.org](https://ls-lint.org)
- [Installation](https://ls-lint.org/2.2/getting-started/installation.html#curl)
- [The Basics](https://ls-lint.org/2.2/configuration/the-basics.html)
- [The Rules](https://ls-lint.org/2.2/configuration/the-basics.html)
- [Contributions](https://ls-lint.org/2.2/prologue/contributions.html)
## Demo
### Configuration `.ls-lint.yml`
```yaml
ls:
packages/*/{src,__tests__}:
.js: kebab-case
.ts: camelCase | PascalCase
.d.ts: camelCase
.spec.ts: camelCase | PascalCase
.mock.ts: camelCase
components/*:
.ts: regex:${0}
tests:
.*: exists:0
.test.ts: regex:${1}
ignore:
- node_modules
```
### Result
## Logo
Logo created by [Studio Ajot](https://www.studio-ajot.de/)
## License
ls-lint is open-source software licensed under the MIT license.
[](https://app.fossa.com/projects/git%2Bgithub.com%2Floeffel-io%2Fls-lint?ref=badge_large)