From 1552fb6228621e5a48a0b897de15669ecec8d36f Mon Sep 17 00:00:00 2001 From: Farid Zakaria Date: Tue, 27 May 2025 09:21:59 -0700 Subject: [PATCH] Make it only bugprone check --- .clang-tidy | 1 - doc/manual/source/development/building.md | 10 ++++++++++ maintainers/flake-module.nix | 10 ++++++++-- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/.clang-tidy b/.clang-tidy index dd997c771..9eac06fe1 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -1,6 +1,5 @@ # We use pointers to aggregates in a couple of places, intentionally. # void * would look weird. Checks: ' - misc-include-cleaner, -bugprone-sizeof-expression ' \ No newline at end of file diff --git a/doc/manual/source/development/building.md b/doc/manual/source/development/building.md index 167463837..8a2bfb8ca 100644 --- a/doc/manual/source/development/building.md +++ b/doc/manual/source/development/building.md @@ -291,6 +291,16 @@ To refresh pre-commit hook's config file, do the following: 1. Exit the development shell and start it again by running `nix develop`. 2. If you also use the pre-commit hook, also run `pre-commit-hooks-install` again. +#### Hooks + +##### clang-tidy + +Portions of the codebase are checked with [clang-tidy](https://clang.llvm.org/extra/clang-tidy/). + +> clang-tidy is a clang-based C++ “linter” tool. + +The current build system, Meson, by default outputs a `compile_commands.json` file which is used by all Clang tooling (clang-tidy, clangd etc..). + ### VSCode Insert the following json into your `.vscode/settings.json` file to configure `nixfmt`. diff --git a/maintainers/flake-module.nix b/maintainers/flake-module.nix index bdc7edab9..a2bcee8db 100644 --- a/maintainers/flake-module.nix +++ b/maintainers/flake-module.nix @@ -70,8 +70,14 @@ # TODO: this requires meson to have been configured # we could optionally wrap this in a script that runs meson first # but for now let us keep it simple - entry = "${pkgs.clang-tools}/bin/clang-tidy --fix -p ./build"; - files = ''^src/libstore''; + # + # clang-tidy doesn't work well running it on multiple files + # TODO: change this to use run-clang-tidy.py + entry = "${pkgs.writeShellScript "clang-tidy-wrapper" '' + for file in "$@"; do + "${pkgs.clang-tools}/bin/clang-tidy" --fix -p ./build "$file" + done + ''}"; }; clang-format = { enable = true;