# IDF Clang-Tidy

[中文]

The IDF Clang Tidy is a tool that uses clang-tidy to run static analysis on your current app.

Warning

This functionality and the toolchain it relies on are still under development. There may be breaking changes before a final release.

Only clang based toolchain is currently supported. It has to be activated by setting `IDF_TOOLCHAIN=clang` in the environment or in CMake cache before configuring the project.

Warning

This tool does not support RISC-V based chips yet. For now, we do not provide clang based toolchain for RISC-V.

## Prerequisites

If you have never run this tool before, take the following steps to get this tool prepared.

1. Run `idf_tools.py install esp-clang` to install the clang-tidy required binaries

   Note

   This toolchain is still under development. After the final release, you do not have to install them manually.

2. Run the export scripts (`export.sh` / `export.bat` / ... ) again to refresh the environment variables.

## Extra Commands

### `clang-check`

Run `idf.py clang-check` to re-generate the compilation database and run `clang-tidy` under your current project folder. The output would be written to `<project_dir>/warnings.txt`.

Run `idf.py clang-check --help` to see the full documentation.

### `clang-html-report`

1. Run `pip install codereport` to install the additional dependency.

2. Run `idf.py clang-html-report` to generate an HTML report in folder `<project_dir>/html_report` according to the `warnings.txt`. Please open the `<project_dir>/html_report/index.html` in your browser to check the report.

## Bug Report

This tool is hosted in espressif/clang-tidy-runner. If you were to face any bugs or have any feature request, please report them via Github issues

Provide feedback about this document