···11+architecture
22+============
33+44+statix has the following components:
55+ * bin: the CLI/entrypoint
66+ * lib: library of lints and utilities to define these lints
77+ * vfs: virtual filesystem
88+ * macros: procedural macros to help define a lint
99+1010+1111+bin
1212+---
1313+1414+This is the main point of interaction between `statix` and
1515+the end user. It's output is human-readable and should also
1616+support JSON/errorfmt outputs for external tools to use.
1717+1818+1919+lib
2020+---
2121+2222+A library of AST-based lints and utilities to help write
2323+those lints. It should be easy for newcomers to write lints
2424+without being familiar with the rest of the codebase.
2525+2626+2727+vfs
2828+---
2929+3030+VFS is an in-memory filesystem. It provides cheap-to-copy
3131+handles (`FileId`s) to access paths and file contents.
3232+3333+3434+macros
3535+------
3636+3737+This crate intends to be a helper layer to declare lints and
3838+their metadata.
notes.txt
docs/notes.txt
+10-34
readme.md
···4848cachix use statix
4949```
50505151+Install from nixpkgs:
5252+5353+```shell
5454+nix run nixpkgs#statix -- help
5555+```
5656+5157Install with [brew/linuxbrew](https://brew.sh)
52585359```bash
···130136redundant_pattern_bind
131137unquoted_uri
132138deprecated_is_null
139139+empty_inherit
140140+faster_groupby
141141+faster_zipattrswith
142142+deprecated_to_path
133143```
134144135145All lints are enabled by default.
136146137137-## Architecture
138138-139139-`statix` has the following components:
140140-141141-- `bin`: the CLI/entrypoint
142142-- `lib`: library of lints and utilities to define these
143143- lints
144144-- `vfs`: virtual filesystem
145145-- `macros`: procedural macros to help define a lint
146146-147147-### `bin`
148148-149149-This is the main point of interaction between `statix`
150150-and the end user. It's output is human-readable and should
151151-also support JSON/errorfmt outputs for external tools to
152152-use.
153153-154154-### `lib`
155155-156156-A library of AST-based lints and utilities to help write
157157-those lints. It should be easy for newcomers to write lints
158158-without being familiar with the rest of the codebase.
159159-160160-### `vfs`
161161-162162-VFS is an in-memory filesystem. It provides cheap-to-copy
163163-handles (`FileId`s) to access paths and file contents.
164164-165165-### `macros`
166166-167167-This crate intends to be a helper layer to declare lints and
168168-their metadata.
169169-170147## TODO
171148172172-- Test suite for lints and suggestions
173149- Resolve imports and scopes for better lints
174150- Add silent flag that exits with status