mirror of
https://github.com/oppiliappan/statix.git
synced 2024-09-11 09:15:45 +03:00
39 lines
821 B
Plaintext
39 lines
821 B
Plaintext
architecture
|
|
============
|
|
|
|
statix has the following components:
|
|
* bin: the CLI/entrypoint
|
|
* lib: library of lints and utilities to define these lints
|
|
* vfs: virtual filesystem
|
|
* macros: procedural macros to help define a lint
|
|
|
|
|
|
bin
|
|
---
|
|
|
|
This is the main point of interaction between `statix` and
|
|
the end user. It's output is human-readable and should also
|
|
support JSON/errorfmt outputs for external tools to use.
|
|
|
|
|
|
lib
|
|
---
|
|
|
|
A library of AST-based lints and utilities to help write
|
|
those lints. It should be easy for newcomers to write lints
|
|
without being familiar with the rest of the codebase.
|
|
|
|
|
|
vfs
|
|
---
|
|
|
|
VFS is an in-memory filesystem. It provides cheap-to-copy
|
|
handles (`FileId`s) to access paths and file contents.
|
|
|
|
|
|
macros
|
|
------
|
|
|
|
This crate intends to be a helper layer to declare lints and
|
|
their metadata.
|