aboutsummaryrefslogtreecommitdiff
path: root/docs/architecture.txt
diff options
context:
space:
mode:
Diffstat (limited to 'docs/architecture.txt')
-rw-r--r--docs/architecture.txt38
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 @@
1architecture
2============
3
4statix 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
11bin
12---
13
14This is the main point of interaction between `statix` and
15the end user. It's output is human-readable and should also
16support JSON/errorfmt outputs for external tools to use.
17
18
19lib
20---
21
22A library of AST-based lints and utilities to help write
23those lints. It should be easy for newcomers to write lints
24without being familiar with the rest of the codebase.
25
26
27vfs
28---
29
30VFS is an in-memory filesystem. It provides cheap-to-copy
31handles (`FileId`s) to access paths and file contents.
32
33
34macros
35------
36
37This crate intends to be a helper layer to declare lints and
38their metadata.