aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAkshay <[email protected]>2022-01-30 07:09:38 +0000
committerAkshay <[email protected]>2022-01-30 07:09:38 +0000
commitade09b4d172ff649b716a05ce597d2da864a3623 (patch)
treef5e032dbf1f5f1780e16c5097d6ba3996deb9a46
parent7457498ea64c4542b501d4c03ec2ff617763b070 (diff)
rework docs and readme
-rw-r--r--docs/architecture.txt38
-rw-r--r--docs/notes.txt (renamed from notes.txt)0
-rw-r--r--docs/release.txt (renamed from release.txt)0
-rw-r--r--readme.md44
4 files changed, 48 insertions, 34 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.
diff --git a/notes.txt b/docs/notes.txt
index bba644c..bba644c 100644
--- a/notes.txt
+++ b/docs/notes.txt
diff --git a/release.txt b/docs/release.txt
index 8cc56ef..8cc56ef 100644
--- a/release.txt
+++ b/docs/release.txt
diff --git a/readme.md b/readme.md
index 1cdadb5..e60d38d 100644
--- a/readme.md
+++ b/readme.md
@@ -48,6 +48,12 @@ nix run git+https://git.peppe.rs/languages/statix -- --help
48cachix use statix 48cachix use statix
49``` 49```
50 50
51Install from nixpkgs:
52
53```shell
54nix run nixpkgs#statix -- help
55```
56
51Install with [brew/linuxbrew](https://brew.sh) 57Install with [brew/linuxbrew](https://brew.sh)
52 58
53```bash 59```bash
@@ -130,45 +136,15 @@ empty_pattern
130redundant_pattern_bind 136redundant_pattern_bind
131unquoted_uri 137unquoted_uri
132deprecated_is_null 138deprecated_is_null
139empty_inherit
140faster_groupby
141faster_zipattrswith
142deprecated_to_path
133``` 143```
134 144
135All lints are enabled by default. 145All lints are enabled by default.
136 146
137## Architecture
138
139`statix` has the following components:
140
141- `bin`: the CLI/entrypoint
142- `lib`: library of lints and utilities to define these
143 lints
144- `vfs`: virtual filesystem
145- `macros`: procedural macros to help define a lint
146
147### `bin`
148
149This is the main point of interaction between `statix`
150and the end user. It's output is human-readable and should
151also support JSON/errorfmt outputs for external tools to
152use.
153
154### `lib`
155
156A library of AST-based lints and utilities to help write
157those lints. It should be easy for newcomers to write lints
158without being familiar with the rest of the codebase.
159
160### `vfs`
161
162VFS is an in-memory filesystem. It provides cheap-to-copy
163handles (`FileId`s) to access paths and file contents.
164
165### `macros`
166
167This crate intends to be a helper layer to declare lints and
168their metadata.
169
170## TODO 147## TODO
171 148
172- Test suite for lints and suggestions
173- Resolve imports and scopes for better lints 149- Resolve imports and scopes for better lints
174- Add silent flag that exits with status 150- Add silent flag that exits with status