diff options
Diffstat (limited to 'docs/architecture.txt')
-rw-r--r-- | docs/architecture.txt | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/docs/architecture.txt b/docs/architecture.txt new file mode 100644 index 0000000..fb2d724 --- /dev/null +++ b/docs/architecture.txt | |||
@@ -0,0 +1,38 @@ | |||
1 | architecture | ||
2 | ============ | ||
3 | |||
4 | statix has the following components: | ||
5 | * bin: the CLI/entrypoint | ||
6 | * lib: library of lints and utilities to define these lints | ||
7 | * vfs: virtual filesystem | ||
8 | * macros: procedural macros to help define a lint | ||
9 | |||
10 | |||
11 | bin | ||
12 | --- | ||
13 | |||
14 | This is the main point of interaction between `statix` and | ||
15 | the end user. It's output is human-readable and should also | ||
16 | support JSON/errorfmt outputs for external tools to use. | ||
17 | |||
18 | |||
19 | lib | ||
20 | --- | ||
21 | |||
22 | A library of AST-based lints and utilities to help write | ||
23 | those lints. It should be easy for newcomers to write lints | ||
24 | without being familiar with the rest of the codebase. | ||
25 | |||
26 | |||
27 | vfs | ||
28 | --- | ||
29 | |||
30 | VFS is an in-memory filesystem. It provides cheap-to-copy | ||
31 | handles (`FileId`s) to access paths and file contents. | ||
32 | |||
33 | |||
34 | macros | ||
35 | ------ | ||
36 | |||
37 | This crate intends to be a helper layer to declare lints and | ||
38 | their metadata. | ||