2023-10-27 10:02:07 +00:00
|
|
|
# tidyfox
|
|
|
|
outfoxxed's clang-tidy lint collection. Lints I end up needing will go here.
|
|
|
|
|
|
|
|
# Installation
|
|
|
|
There is a nix package in `default.nix` which can be used to install tidyfox in `lib/libtidyfox.so`.
|
|
|
|
|
|
|
|
If you aren't running nix, use the provided Justfile.
|
|
|
|
Run `just release` to make a release build. You must have llvm and clang 16 dev packages in $PATH. (`FindClang.cmake` must exist)
|
|
|
|
|
|
|
|
# Usage
|
2023-10-27 10:10:01 +00:00
|
|
|
Tidyfox lints are supplied under the `tidyfox-` namespace.
|
|
|
|
The plugin can be loaded via `clang-tidy -load=/path/to/libtidyfox.so`.
|
|
|
|
|
|
|
|
## Lints
|
|
|
|
`tidyfox-explicit-thisptr` - requires that `this->` is used unconditionally for class members.
|
2023-10-27 10:02:07 +00:00
|
|
|
|
|
|
|
# Contributing
|
|
|
|
There is a `shell.nix` file which will load all the necessary dependencies.
|
|
|
|
If not using nix the requirements are the same as in [Installation](#installation) above.
|
|
|
|
|
|
|
|
Run `just build` to create a debug build and a clang compilation database.
|
|
|
|
|
|
|
|
Run `just fmt` to format the sources.
|
|
|
|
|
|
|
|
Run `just lint` to run clang-tidy on tidyfox, with tidyfox itself as a plugin.
|
|
|
|
|
|
|
|
Run `just release` to create a release build.
|
|
|
|
|
|
|
|
Run `just pre-commit` before committing to catch anything.
|
|
|
|
|
|
|
|
When committing, follow [conventional commits](https://www.conventionalcommits.org).
|